import type { EmailDriver } from "../types.mjs"; import type { SuppressionStore } from "../suppression/index.mjs"; /** Behavior when a recipient is suppressed. * - `"error"` — return an `EmailError` with code `PROVIDER` and * suppression metadata. * - `"drop"` — strip the suppressed recipients and continue. If * every recipient is suppressed, behaves like `"error"`. */ export type SuppressionPolicy = "error" | "drop"; export interface SuppressionOptions { store: SuppressionStore; policy?: SuppressionPolicy; /** Hook fired for each suppressed recipient. */ onBlocked?: (recipient: string, reason: string) => void; } /** Wrap a driver so `send()` checks the suppression store before the * request leaves the process. */ export declare function withSuppression(driver: EmailDriver, options: SuppressionOptions): EmailDriver;