/**
 * 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.
 * Returns null for unknown domains — the agent must ask the user for hosts.
 */
export declare function inferProvider(email: string): ProviderDefaults | null;
/**
 * Get provider-specific setup notes for an email domain.
 * Returns null for unknown domains or providers without notes.
 */
export declare function getProviderNotes(email: string): string | null;
/**
 * 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).
 *   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: "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): ProviderInfo;
//# sourceMappingURL=providers.d.ts.map