import { E as EmailOptions } from "./types.d-CyiC9uRC.js"; /** * Options for DKIM signing */ interface DkimOptions { /** * Signature algorithm. 'rsa-sha256' (default, RFC 6376) or 'ed25519-sha256' (RFC 8463). * Default: 'rsa-sha256' */ algorithm?: "ed25519-sha256" | "rsa-sha256"; /** * Body canonicalization algorithm ('simple' or 'relaxed') * Default: 'simple' */ bodyCanon?: "relaxed" | "simple"; /** * Domain name used for DKIM signing */ domainName: string; /** * Header canonicalization algorithm ('simple' or 'relaxed') * Default: 'simple' */ headerCanon?: "relaxed" | "simple"; /** * List of header names to ignore when signing */ headersToIgnore?: string[]; /** * Key selector used for DNS lookup */ keySelector: string; /** * Passphrase for the private key (if encrypted) */ passphrase?: string; /** * Private key for signing (PEM format) * Can be a string with the key content or a path prefixed with 'file://' */ privateKey: string; } /** * Options for S/MIME signing */ interface SmimeSignOptions { /** * Path to the certificate file (PEM format) */ certificate: string; /** * Path to intermediate certificates (optional) */ intermediateCerts?: string[]; /** * Signing options flags * Reserved for future use */ options?: number; /** * Passphrase for the private key (if encrypted) */ passphrase?: string; /** * Path to the private key file (PEM format) */ privateKey: string; } /** * Options for S/MIME encryption */ interface SmimeEncryptOptions { /** * Encryption algorithm (cipher) * Supported: 'aes-256-cbc', 'aes-192-cbc', 'aes-128-cbc' * Default: 'aes-256-cbc' */ algorithm?: string; /** * Certificate(s) for encryption * Can be a single certificate path or a map of email -> certificate path */ certificates: string | Record; } /** * Interface for email signers */ interface EmailSigner { /** * Sign an email message * @param email The email options to sign * @returns The signed email options (may include additional headers or modified content) */ sign: (email: EmailOptions) => Promise; } /** * Interface for email encrypters */ interface EmailEncrypter { /** * Encrypt an email message * @param email The email options to encrypt * @returns The encrypted email options (content will be encrypted) */ encrypt: (email: EmailOptions) => Promise; } export { DkimOptions as D, EmailEncrypter as E, SmimeEncryptOptions as S, SmimeSignOptions as a, EmailSigner as b };