import { DeleteDTO } from '@hed-hog/api';
import { MailService as MailMainService } from '@hed-hog/api-mail';
import { PaginationDTO, PaginationService } from '@hed-hog/api-pagination';
import { PrismaService } from '@hed-hog/api-prisma';
import { MailService } from '../mail/mail.service';
import { CreateDTO } from './dto/create.dto';
import { UpdateDTO } from './dto/update.dto';
export declare class MailProfileService {
    private readonly prismaService;
    private readonly paginationService;
    private readonly mailMainService;
    private readonly mailService;
    constructor(prismaService: PrismaService, paginationService: PaginationService, mailMainService: MailMainService, mailService: MailService);
    list(paginationParams: PaginationDTO): Promise<{
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
        data: any[];
    }>;
    get(id: number): Promise<{
        name: string;
        id: number;
        provider: import("@prisma/client").$Enums.mail_profile_provider_e62e6be632_enum;
        created_at: Date;
        updated_at: Date;
        slug: string;
        from_email: string;
        from_name: string | null;
        reply_to_name: string | null;
        reply_to_email: string | null;
        smtp_host: string | null;
        smtp_port: number | null;
        smtp_secure: boolean;
        smtp_username: string | null;
        smtp_password: string | null;
        gmail_client_id: string | null;
        gmail_client_secret: string | null;
        gmail_refresh_token: string | null;
        ses_access_key_id: string | null;
        ses_secret_access_key: string | null;
        ses_region: string | null;
    }>;
    create(data: CreateDTO): Promise<{
        name: string;
        id: number;
        provider: import("@prisma/client").$Enums.mail_profile_provider_e62e6be632_enum;
        created_at: Date;
        updated_at: Date;
        slug: string;
        from_email: string;
        from_name: string | null;
        reply_to_name: string | null;
        reply_to_email: string | null;
        smtp_host: string | null;
        smtp_port: number | null;
        smtp_secure: boolean;
        smtp_username: string | null;
        smtp_password: string | null;
        gmail_client_id: string | null;
        gmail_client_secret: string | null;
        gmail_refresh_token: string | null;
        ses_access_key_id: string | null;
        ses_secret_access_key: string | null;
        ses_region: string | null;
    }>;
    update({ id, data }: {
        id: number;
        data: UpdateDTO;
    }): Promise<{
        name: string;
        id: number;
        provider: import("@prisma/client").$Enums.mail_profile_provider_e62e6be632_enum;
        created_at: Date;
        updated_at: Date;
        slug: string;
        from_email: string;
        from_name: string | null;
        reply_to_name: string | null;
        reply_to_email: string | null;
        smtp_host: string | null;
        smtp_port: number | null;
        smtp_secure: boolean;
        smtp_username: string | null;
        smtp_password: string | null;
        gmail_client_id: string | null;
        gmail_client_secret: string | null;
        gmail_refresh_token: string | null;
        ses_access_key_id: string | null;
        ses_secret_access_key: string | null;
        ses_region: string | null;
    }>;
    delete({ ids }: DeleteDTO): Promise<{
        count: number;
    }>;
    test(data: CreateDTO): Promise<{
        success: boolean;
        destination: string;
    }>;
    private ensureSlugIsAvailable;
    private validateProviderFields;
    private normalizeData;
    private buildMailConfig;
    private normalizeString;
    private normalizeNullableString;
}
//# sourceMappingURL=mail-profile.service.d.ts.map