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<import("./builder/variants").UnionRes<{
    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">;
        }>;
    };
}>, 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<string, never>;
} | {
    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<SmtpSelection>;
/**
 * 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;
