/** * Zod schemas for configuration validation. */ import { z } from 'zod'; export declare const ImapConfigSchema: z.ZodObject<{ host: z.ZodString; port: z.ZodDefault; tls: z.ZodDefault; starttls: z.ZodDefault; verify_ssl: z.ZodDefault; }, z.core.$strip>; export declare const SmtpConfigSchema: z.ZodObject<{ host: z.ZodString; port: z.ZodDefault; tls: z.ZodDefault; starttls: z.ZodDefault; verify_ssl: z.ZodDefault; pool: z.ZodDefault; max_connections: z.ZodDefault; max_messages: z.ZodDefault; }, z.core.$strip>>; }, z.core.$strip>; export declare const OAuth2ConfigSchema: z.ZodObject<{ provider: z.ZodEnum<{ custom: "custom"; google: "google"; microsoft: "microsoft"; }>; client_id: z.ZodString; client_secret: z.ZodString; refresh_token: z.ZodString; token_url: z.ZodOptional; auth_url: z.ZodOptional; scopes: z.ZodOptional>; }, z.core.$strip>; export declare const AccountConfigSchema: z.ZodObject<{ name: z.ZodString; email: z.ZodString; full_name: z.ZodOptional; username: z.ZodOptional; password: z.ZodOptional; oauth2: z.ZodOptional; client_id: z.ZodString; client_secret: z.ZodString; refresh_token: z.ZodString; token_url: z.ZodOptional; auth_url: z.ZodOptional; scopes: z.ZodOptional>; }, z.core.$strip>>; imap: z.ZodObject<{ host: z.ZodString; port: z.ZodDefault; tls: z.ZodDefault; starttls: z.ZodDefault; verify_ssl: z.ZodDefault; }, z.core.$strip>; smtp: z.ZodObject<{ host: z.ZodString; port: z.ZodDefault; tls: z.ZodDefault; starttls: z.ZodDefault; verify_ssl: z.ZodDefault; pool: z.ZodDefault; max_connections: z.ZodDefault; max_messages: z.ZodDefault; }, z.core.$strip>>; }, z.core.$strip>; max_attachment_mb: z.ZodOptional; }, z.core.$strip>; export declare const WatcherConfigSchema: z.ZodObject<{ enabled: z.ZodDefault; folders: z.ZodDefault>; idle_timeout: z.ZodDefault; }, z.core.$strip>; export declare const HookRuleMatchSchema: z.ZodObject<{ from: z.ZodOptional; to: z.ZodOptional; subject: z.ZodOptional; }, z.core.$strip>; export declare const HookRuleActionsSchema: z.ZodObject<{ labels: z.ZodOptional>; flag: z.ZodOptional; mark_read: z.ZodOptional; alert: z.ZodOptional; add_to_calendar: z.ZodOptional; }, z.core.$strip>; export declare const HookRuleSchema: z.ZodObject<{ name: z.ZodString; match: z.ZodObject<{ from: z.ZodOptional; to: z.ZodOptional; subject: z.ZodOptional; }, z.core.$strip>; actions: z.ZodObject<{ labels: z.ZodOptional>; flag: z.ZodOptional; mark_read: z.ZodOptional; alert: z.ZodOptional; add_to_calendar: z.ZodOptional; }, z.core.$strip>; }, z.core.$strip>; export declare const AlertsConfigSchema: z.ZodObject<{ desktop: z.ZodDefault; sound: z.ZodDefault; urgency_threshold: z.ZodDefault>; webhook_url: z.ZodDefault; webhook_events: z.ZodDefault>>; }, z.core.$strip>; export declare const HooksConfigSchema: z.ZodObject<{ on_new_email: z.ZodDefault>; preset: z.ZodDefault>; auto_label: z.ZodDefault; auto_flag: z.ZodDefault; batch_delay: z.ZodDefault; custom_instructions: z.ZodOptional; system_prompt: z.ZodOptional; rules: z.ZodDefault; to: z.ZodOptional; subject: z.ZodOptional; }, z.core.$strip>; actions: z.ZodObject<{ labels: z.ZodOptional>; flag: z.ZodOptional; mark_read: z.ZodOptional; alert: z.ZodOptional; add_to_calendar: z.ZodOptional; }, z.core.$strip>; }, z.core.$strip>>>; alerts: z.ZodDefault; sound: z.ZodDefault; urgency_threshold: z.ZodDefault>; webhook_url: z.ZodDefault; webhook_events: z.ZodDefault>>; }, z.core.$strip>>; auto_calendar: z.ZodDefault; calendar_name: z.ZodDefault; calendar_alarm_minutes: z.ZodDefault; calendar_confirm: z.ZodDefault; }, z.core.$strip>; /** * Local mirror settings. * * Defaults are deliberately conservative: mirroring INBOX only, 90 days back. * Measured against a real 170-message mailbox this costs well under a * megabyte, so `max_size_mb` is a backstop rather than an expected limit. * * Inspect and reclaim what this holds with `email-mcp cache status|clear`. */ export declare const CacheConfigSchema: z.ZodObject<{ enabled: z.ZodDefault; mailboxes: z.ZodDefault>; window_days: z.ZodDefault; body_messages: z.ZodDefault; max_size_mb: z.ZodDefault; sync_interval: z.ZodDefault; }, z.core.$strip>; /** * Verification-code / magic-link catching. * * The feature itself defaults on, but the ambient auto-copy path only runs * while the IMAP IDLE watcher is enabled (`[settings.watcher]`), which * defaults off — enabling the watcher is the consent moment. */ export declare const VerificationConfigSchema: z.ZodObject<{ enabled: z.ZodDefault; auto_copy: z.ZodDefault; confirm_copy: z.ZodDefault; notify: z.ZodDefault; copy_links: z.ZodDefault; link_action: z.ZodDefault>; clear_after_seconds: z.ZodDefault; max_age_minutes: z.ZodDefault; accounts: z.ZodDefault>; sender_allowlist: z.ZodDefault>; sender_denylist: z.ZodDefault>; }, z.core.$strip>; /** * Streamable HTTP server binding, used by `email-mcp http` and the * `email-mcp server` daemon commands. Precedence at runtime: * CLI flags → EMAIL_MCP_HTTP_* env → this section → built-in defaults. * `--insecure` is deliberately flag-only and cannot be persisted here. */ export declare const ServerConfigSchema: z.ZodObject<{ host: z.ZodDefault; port: z.ZodDefault; path: z.ZodDefault; token: z.ZodDefault; allowed_hosts: z.ZodDefault>; }, z.core.$strip>; /** * Outbound send settings. `max_attachment_mb` caps the base64-encoded total * of all attachments on one message (25 MB ~= the Gmail/common-provider * ceiling) so an oversized send fails locally with a per-file listing * instead of a provider-side 552. */ export declare const SendConfigSchema: z.ZodObject<{ max_attachment_mb: z.ZodDefault; save_to_sent: z.ZodDefault; }, z.core.$strip>; /** * Scheduler settings. `sent_retention_days` bounds the send history kept in * the scheduler's sent directory, which previously grew one file per sent * email forever. Age-based because the question is how far back a user can * look; 0 keeps everything. */ export declare const SchedulerConfigSchema: z.ZodObject<{ sent_retention_days: z.ZodDefault; }, z.core.$strip>; /** * Inbound attachment handling. `auto_download` controls whether attachments * are saved locally as a side effect of other actions — calendar events * created from emails (tools and watcher hooks) link saved copies in their * notes. Explicit `download_attachment` calls are never affected. */ export declare const AttachmentsConfigSchema: z.ZodObject<{ auto_download: z.ZodDefault; }, z.core.$strip>; export declare const SettingsSchema: z.ZodObject<{ rate_limit: z.ZodDefault; read_only: z.ZodDefault; server: z.ZodDefault; port: z.ZodDefault; path: z.ZodDefault; token: z.ZodDefault; allowed_hosts: z.ZodDefault>; }, z.core.$strip>>; verification: z.ZodDefault; auto_copy: z.ZodDefault; confirm_copy: z.ZodDefault; notify: z.ZodDefault; copy_links: z.ZodDefault; link_action: z.ZodDefault>; clear_after_seconds: z.ZodDefault; max_age_minutes: z.ZodDefault; accounts: z.ZodDefault>; sender_allowlist: z.ZodDefault>; sender_denylist: z.ZodDefault>; }, z.core.$strip>>; send: z.ZodDefault; save_to_sent: z.ZodDefault; }, z.core.$strip>>; attachments: z.ZodDefault; }, z.core.$strip>>; scheduler: z.ZodDefault; }, z.core.$strip>>; cache: z.ZodDefault; mailboxes: z.ZodDefault>; window_days: z.ZodDefault; body_messages: z.ZodDefault; max_size_mb: z.ZodDefault; sync_interval: z.ZodDefault; }, z.core.$strip>>; watcher: z.ZodDefault; folders: z.ZodDefault>; idle_timeout: z.ZodDefault; }, z.core.$strip>>; hooks: z.ZodDefault>; preset: z.ZodDefault>; auto_label: z.ZodDefault; auto_flag: z.ZodDefault; batch_delay: z.ZodDefault; custom_instructions: z.ZodOptional; system_prompt: z.ZodOptional; rules: z.ZodDefault; to: z.ZodOptional; subject: z.ZodOptional; }, z.core.$strip>; actions: z.ZodObject<{ labels: z.ZodOptional>; flag: z.ZodOptional; mark_read: z.ZodOptional; alert: z.ZodOptional; add_to_calendar: z.ZodOptional; }, z.core.$strip>; }, z.core.$strip>>>; alerts: z.ZodDefault; sound: z.ZodDefault; urgency_threshold: z.ZodDefault>; webhook_url: z.ZodDefault; webhook_events: z.ZodDefault>>; }, z.core.$strip>>; auto_calendar: z.ZodDefault; calendar_name: z.ZodDefault; calendar_alarm_minutes: z.ZodDefault; calendar_confirm: z.ZodDefault; }, z.core.$strip>>; }, z.core.$strip>; export declare const AppConfigFileSchema: z.ZodObject<{ settings: z.ZodDefault; read_only: z.ZodDefault; server: z.ZodDefault; port: z.ZodDefault; path: z.ZodDefault; token: z.ZodDefault; allowed_hosts: z.ZodDefault>; }, z.core.$strip>>; verification: z.ZodDefault; auto_copy: z.ZodDefault; confirm_copy: z.ZodDefault; notify: z.ZodDefault; copy_links: z.ZodDefault; link_action: z.ZodDefault>; clear_after_seconds: z.ZodDefault; max_age_minutes: z.ZodDefault; accounts: z.ZodDefault>; sender_allowlist: z.ZodDefault>; sender_denylist: z.ZodDefault>; }, z.core.$strip>>; send: z.ZodDefault; save_to_sent: z.ZodDefault; }, z.core.$strip>>; attachments: z.ZodDefault; }, z.core.$strip>>; scheduler: z.ZodDefault; }, z.core.$strip>>; cache: z.ZodDefault; mailboxes: z.ZodDefault>; window_days: z.ZodDefault; body_messages: z.ZodDefault; max_size_mb: z.ZodDefault; sync_interval: z.ZodDefault; }, z.core.$strip>>; watcher: z.ZodDefault; folders: z.ZodDefault>; idle_timeout: z.ZodDefault; }, z.core.$strip>>; hooks: z.ZodDefault>; preset: z.ZodDefault>; auto_label: z.ZodDefault; auto_flag: z.ZodDefault; batch_delay: z.ZodDefault; custom_instructions: z.ZodOptional; system_prompt: z.ZodOptional; rules: z.ZodDefault; to: z.ZodOptional; subject: z.ZodOptional; }, z.core.$strip>; actions: z.ZodObject<{ labels: z.ZodOptional>; flag: z.ZodOptional; mark_read: z.ZodOptional; alert: z.ZodOptional; add_to_calendar: z.ZodOptional; }, z.core.$strip>; }, z.core.$strip>>>; alerts: z.ZodDefault; sound: z.ZodDefault; urgency_threshold: z.ZodDefault>; webhook_url: z.ZodDefault; webhook_events: z.ZodDefault>>; }, z.core.$strip>>; auto_calendar: z.ZodDefault; calendar_name: z.ZodDefault; calendar_alarm_minutes: z.ZodDefault; calendar_confirm: z.ZodDefault; }, z.core.$strip>>; }, z.core.$strip>>; accounts: z.ZodArray; username: z.ZodOptional; password: z.ZodOptional; oauth2: z.ZodOptional; client_id: z.ZodString; client_secret: z.ZodString; refresh_token: z.ZodString; token_url: z.ZodOptional; auth_url: z.ZodOptional; scopes: z.ZodOptional>; }, z.core.$strip>>; imap: z.ZodObject<{ host: z.ZodString; port: z.ZodDefault; tls: z.ZodDefault; starttls: z.ZodDefault; verify_ssl: z.ZodDefault; }, z.core.$strip>; smtp: z.ZodObject<{ host: z.ZodString; port: z.ZodDefault; tls: z.ZodDefault; starttls: z.ZodDefault; verify_ssl: z.ZodDefault; pool: z.ZodDefault; max_connections: z.ZodDefault; max_messages: z.ZodDefault; }, z.core.$strip>>; }, z.core.$strip>; max_attachment_mb: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export type RawAccountConfig = z.infer; export type RawAppConfig = z.infer; //# sourceMappingURL=schema.d.ts.map