import type { IApiTokenPolicy, TGatewayClientType } from './route-management.js'; export interface IGatewayClient { id: string; type: TGatewayClientType; name: string; description?: string; hostnamePatterns: string[]; allowedRouteTargets: NonNullable; capabilities: NonNullable; enabled: boolean; tokenCount?: number; policyGeneration: 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; } 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; }