/** * Known email provider defaults. * Maps domain → IMAP/SMTP host + port + security. * Used by email-setup to auto-infer connection settings so the agent * does not need to ask the user for technical server details. * * Convention for port + security pairs: * 993 → "tls" (IMAP implicit TLS) * 143 → "starttls" (IMAP with STARTTLS upgrade) * 465 → "tls" (SMTP implicit TLS / legacy SSL) * 587 → "starttls" (SMTP submission with STARTTLS) */ export interface ProviderDefaults { imapHost: string; imapPort: number; imapSecurity: "tls" | "starttls"; smtpHost: string; smtpPort: number; smtpSecurity: "tls" | "starttls"; notes?: string; } /** * Look up provider defaults from an email address domain. Static map first, * then a Google-MX fallback for custom domains. Returns null for unknown * domains and for Microsoft addresses (no usable IMAP defaults — they route to * the outlook Graph plugin); the agent must ask the user for hosts only in the * genuinely-unknown case. */ export declare function inferProvider(email: string): Promise; /** * Get provider-specific setup notes for an email domain. * Returns null for unknown domains or providers without notes. */ export declare function getProviderNotes(email: string): Promise; /** * Result of classifying an email address before any password is requested. * * known → hosts inferred; `notes` carries the app-password / IMAP-enable * requirement to relay first (may be undefined for hosts with no gotcha). * redirect → a Microsoft address; the email-plugin IMAP path is dead, so * connect via the `outlook` Graph plugin's `registerTool`. * unsupported → the provider blocks IMAP/SMTP entirely; `reason` explains why. * unknown → no host mapping; the operator must supply hosts explicitly. */ export type ProviderInfo = { status: "known"; domain: string; defaults: ProviderDefaults; notes?: string; } | { status: "redirect"; domain: string; plugin: string; registerTool: string; reason: string; } | { status: "unsupported"; domain: string; reason: string; } | { status: "unknown"; domain: string | null; }; /** * Classify an email address from its domain alone — the deterministic * pre-password surface behind the `email-provider-info` tool. Resolves the * app-password / trusted-application requirement from the provider map, never * from the model's training memory of each provider. */ export declare function describeProvider(email: string): Promise; //# sourceMappingURL=providers.d.ts.map