import type { IApiTokenPolicy, TGatewayClientType } from './route-management.js';
export interface IGatewayClient {
    id: string;
    type: TGatewayClientType;
    name: string;
    description?: string;
    hostnamePatterns: string[];
    allowedRouteTargets: NonNullable<IApiTokenPolicy['allowedRouteTargets']>;
    capabilities: NonNullable<IApiTokenPolicy['capabilities']>;
    enabled: boolean;
    tokenCount?: number;
    createdAt: number;
    updatedAt: number;
    createdBy: string;
}
export interface IWorkAppMailOwnership {
    workHosterType: TGatewayClientType;
    workHosterId: string;
    workAppId: string;
}
export interface IWorkAppMailInboundRoute {
    enabled: boolean;
    targetHost: string;
    targetPort: number;
    preserveHeaders?: boolean;
    addHeaders?: Record<string, string>;
}
export interface IWorkAppMailIdentity {
    id: string;
    externalKey: string;
    ownership: IWorkAppMailOwnership;
    address: string;
    localPart: string;
    domain: string;
    enabled: boolean;
    displayName?: string;
    inbound?: IWorkAppMailInboundRoute;
    smtp: {
        enabled: boolean;
        username: string;
    };
    createdAt: number;
    updatedAt: number;
    createdBy: string;
}
export interface IWorkAppMailCredentials {
    username: string;
    password: string;
    host?: string;
    ports?: {
        smtp?: number;
        submission?: number;
        smtps?: number;
    };
}
export interface IWorkAppMailIdentitySyncResult {
    success: boolean;
    action?: 'created' | 'updated' | 'deleted' | 'unchanged';
    identity?: IWorkAppMailIdentity;
    smtpCredentials?: IWorkAppMailCredentials;
    message?: string;
}
