import { ConfigService } from '@nestjs/config';
import { NotificationChannel } from '@prisma/client';
export interface NotificationProvider {
    readonly channel: NotificationChannel;
    send(params: {
        recipient: string;
        subject?: string;
        body: string;
        metadata?: Record<string, unknown>;
    }): Promise<{
        providerMessageId: string;
        accepted: boolean;
        error?: string;
    }>;
}
export declare class SmtpEmailProvider implements NotificationProvider {
    private readonly config;
    readonly channel: "EMAIL";
    private readonly logger;
    private transporter;
    constructor(config: ConfigService);
    send({ recipient, subject, body }: {
        recipient: string;
        subject?: string;
        body: string;
    }): Promise<{
        providerMessageId: string;
        accepted: boolean;
    }>;
    private isConfigured;
    private getTransporter;
}
export declare class InAppProvider implements NotificationProvider {
    readonly channel: "IN_APP";
    send(): Promise<{
        providerMessageId: string;
        accepted: boolean;
    }>;
}
