import type { NotificationPayload, NotificationRecipient } from '../../notifications.types.js'; import type { NotificationChannel } from '../channel.interface.js'; import { ChannelType, type ChannelContent, type ChannelSendResult, type ChannelHealth, type EmailContent } from '../channel.interface.js'; export interface EmailChannelOptions { from?: string; replyTo?: string; autoGenerateHtml?: boolean; maxEmailLength?: number; emailPattern?: RegExp; } export declare abstract class AbstractEmailChannel implements NotificationChannel { readonly name = "email"; readonly type = ChannelType.Email; protected options: Required; configure(options: EmailChannelOptions): void; initialize(): Promise; shutdown(): Promise; isAvailable(): Promise; healthCheck(): Promise; validateRecipient(recipient: NotificationRecipient): boolean; formatContent(notification: NotificationPayload): EmailContent; send(recipient: NotificationRecipient, content: ChannelContent): Promise; abstract sendEmail(to: string, content: EmailContent): Promise<{ messageId: string; }>; protected isValidEmail(email: string): boolean; protected renderHtml(notification: NotificationPayload): string; protected escapeHtml(text: string): string; } export declare class MockEmailChannel extends AbstractEmailChannel { private sentEmails; sendEmail(to: string, content: EmailContent): Promise<{ messageId: string; }>; getSentEmails(): { to: string; content: EmailContent; messageId: string; timestamp: number; }[]; clearSentEmails(): void; } //# sourceMappingURL=email.channel.d.ts.map