import { Prisma } from '@prisma/client';
import { AuditService } from '../audit/audit.service';
import { MailService } from '../common/mail/mail.service';
import { PrismaService } from '../common/prisma/prisma.service';
import { PlatformSettingsService } from './platform-settings.service';
export declare class EmailTemplatesService {
    private readonly prisma;
    private readonly mail;
    private readonly audit;
    private readonly settings;
    constructor(prisma: PrismaService, mail: MailService, audit: AuditService, settings: PlatformSettingsService);
    list(): Prisma.PrismaPromise<({
        versions: {
            status: string;
            version: number;
            id: string;
            createdAt: Date;
            subject: string;
            templateId: string;
            preheader: string | null;
            htmlBody: string;
            textBody: string;
            variables: Prisma.JsonValue | null;
            publishedAt: Date | null;
            createdByAdminId: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        key: string;
    })[]>;
    get(key: string): Promise<{
        versions: {
            status: string;
            version: number;
            id: string;
            createdAt: Date;
            subject: string;
            templateId: string;
            preheader: string | null;
            htmlBody: string;
            textBody: string;
            variables: Prisma.JsonValue | null;
            publishedAt: Date | null;
            createdByAdminId: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        key: string;
    }>;
    saveDraft(key: string, input: {
        subject: string;
        preheader?: string;
        htmlBody: string;
        textBody: string;
        variables?: string[];
    }, adminId: string): Promise<{
        status: string;
        version: number;
        id: string;
        createdAt: Date;
        subject: string;
        templateId: string;
        preheader: string | null;
        htmlBody: string;
        textBody: string;
        variables: Prisma.JsonValue | null;
        publishedAt: Date | null;
        createdByAdminId: string | null;
    }>;
    publish(key: string, version: number, adminId: string): Promise<{
        status: string;
        version: number;
        id: string;
        createdAt: Date;
        subject: string;
        templateId: string;
        preheader: string | null;
        htmlBody: string;
        textBody: string;
        variables: Prisma.JsonValue | null;
        publishedAt: Date | null;
        createdByAdminId: string | null;
    }>;
    rollback(key: string, version: number, adminId: string): Promise<{
        status: string;
        version: number;
        id: string;
        createdAt: Date;
        subject: string;
        templateId: string;
        preheader: string | null;
        htmlBody: string;
        textBody: string;
        variables: Prisma.JsonValue | null;
        publishedAt: Date | null;
        createdByAdminId: string | null;
    }>;
    sendTest(key: string, to: string, adminId: string): Promise<{
        sent: boolean;
    }>;
    sendSmtpTest(to: string, adminId: string): Promise<{
        sent: boolean;
    }>;
}
