import type { Settings } from "@opengeni/config"; import type { ManagedEmailDeliveryResult, ManagedEmailMessage, ManagedEmailTransport } from "@opengeni/core"; export type CapturedManagedEmail = ManagedEmailMessage & { capturedAt: string; }; /** * Process-local test/development transport. Captures are count/TTL bounded and * one-time readable; there is deliberately no route, disk, database, or log * projection for message bodies or setup bearers. */ export declare class InMemoryManagedEmailTransport implements ManagedEmailTransport { private readonly options; private readonly messages; readonly sender: string; readonly idempotency: ManagedEmailTransport["idempotency"]; constructor(options?: { maxMessages?: number; ttlMs?: number; now?: () => number; sender?: string; idempotency?: ManagedEmailTransport["idempotency"]; }); send(message: ManagedEmailMessage): Promise; take(predicate: (message: CapturedManagedEmail) => boolean): CapturedManagedEmail | null; size(): number; private prune; private now; } export declare function createManagedEmailTransport(settings: Settings): ManagedEmailTransport;