import { InputSpec } from './builder/inputSpec'; import { Value } from './builder/value'; import { Variants } from './builder/variants'; import { z } from 'zod'; /** * Base SMTP settings with no provider-specific defaults. */ export declare const customSmtp: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; /** * Provider presets for SMTP configuration. * Each variant has SMTP fields pre-filled with the provider's recommended settings. */ export declare const smtpProviderVariants: Variants<{ gmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; ses: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; sendgrid: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; mailgun: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; protonmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; other: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; }, unknown>; /** * System SMTP settings with provider presets. * Wraps smtpProviderVariants in a union for use by the system email settings page. */ export declare const systemSmtpSpec: InputSpec<{ provider: import("./builder/variants").UnionRes<{ gmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; ses: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; sendgrid: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; mailgun: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; protonmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; other: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; }, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">; }, { provider: import("./builder/variants").UnionResStaticValidatedAs<{ gmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; ses: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; sendgrid: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; mailgun: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; protonmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; other: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; }, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">; }>; /** * For service inputSpec. Gives users 3 options for SMTP: (1) disabled, (2) use system SMTP settings, (3) use custom SMTP settings with provider presets */ export declare const smtpInputSpec: Value; }; system: { name: string; spec: InputSpec<{ customFrom: string | null; }, { customFrom: string | null; }>; }; custom: { name: string; spec: InputSpec<{ provider: import("./builder/variants").UnionRes<{ gmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; ses: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; sendgrid: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; mailgun: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; protonmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; other: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; }, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">; }, { provider: import("./builder/variants").UnionResStaticValidatedAs<{ gmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; ses: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; sendgrid: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; mailgun: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; protonmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; other: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; }, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">; }>; }; }>, import("./builder/variants").UnionResStaticValidatedAs<{ disabled: { name: string; spec: InputSpec<{}, {}>; }; system: { name: string; spec: InputSpec<{ customFrom: string | null; }, { customFrom: string | null; }>; }; custom: { name: string; spec: InputSpec<{ provider: import("./builder/variants").UnionRes<{ gmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; ses: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; sendgrid: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; mailgun: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; protonmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; other: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; }, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">; }, { provider: import("./builder/variants").UnionResStaticValidatedAs<{ gmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; ses: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; sendgrid: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; mailgun: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; protonmail: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; other: { name: string; spec: InputSpec<{ host: string; security: import("./builder/variants").UnionRes<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }, { host: string; security: import("./builder/variants").UnionResStaticValidatedAs<{ tls: { name: string; spec: InputSpec<{ port: string; }, { port: string | null; }>; }; starttls: { name: string; spec: InputSpec<{ port: "587" | "25" | "2525"; }, { port: "587" | "25" | "2525"; }>; }; }, "starttls" | "tls">; from: string; username: string; password: string | null; }>; }; }, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">; }>; }; }>, unknown>; export type SmtpSelection = { selection: 'disabled'; value: Record; } | { selection: 'system'; value: { customFrom?: string | null; }; } | { selection: 'custom'; value: { provider: { selection: string; value: { host: string; from: string; username: string; password?: string | null; security: { selection: 'tls' | 'starttls'; value: { port: string; }; }; }; }; }; }; /** * Zod schema for persisting SMTP selection in a store file model. * Use this instead of `smtpInputSpec.validator` to avoid cross-zod-instance issues. */ export declare const smtpShape: z.ZodType; /** * Convert a stored SmtpSelection to a value suitable for prefilling smtpInputSpec. * * The stored type (SmtpSelection from smtpShape) uses flat unions for provider/security * selection, while the input spec (smtpInputSpec) uses distributed discriminated unions * (UnionRes). These are structurally incompatible in TypeScript's type system, even * though the runtime values are identical. This function bridges the two types so that * service code doesn't need `as any`. */ export declare function smtpPrefill(smtp: SmtpSelection | null | undefined): any;