import { DeleteDTO } from '@hed-hog/api';
import { PaginationService } from '@hed-hog/api-pagination';
import { PrismaService } from '@hed-hog/api-prisma';
import { CreateDTO } from './dto/create.dto';
import { QueryMailSentListDTO } from './dto/query-mail-sent-list.dto';
import { UpdateDTO } from './dto/update.dto';
type MailSentUserStatus = 'received' | 'read' | 'error';
type MailSentUserLog = {
    id: number;
    recipient_email: string;
    status: MailSentUserStatus;
    read_at: Date | null;
    error_code: string | null;
    error_message: string | null;
    user_id: number;
    user_identifier_id: number | null;
    created_at: Date;
    updated_at: Date;
};
export declare class MailSentService {
    private readonly prismaService;
    private readonly paginationService;
    constructor(prismaService: PrismaService, paginationService: PaginationService);
    list(paginationParams: QueryMailSentListDTO): Promise<{
        data: {
            deliverySummary: {
                totalRecipients: number;
                receivedCount: number;
                readCount: number;
                errorCount: number;
                hasError: boolean;
                lastReadAt: Date | null;
            };
            mail_sent_user?: MailSentUserLog[];
        }[];
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
    }>;
    get(locale: string, id: number): Promise<{
        id: number;
        body: string;
        from: string;
        to: string | null;
        created_at: Date;
        updated_at: Date;
        subject: string;
        cc: string | null;
        bcc: string | null;
        mail_id: number;
    }>;
    create({ body, from, mail_id, subject, bcc, cc, to }: CreateDTO): Promise<{
        id: number;
        body: string;
        from: string;
        to: string | null;
        created_at: Date;
        updated_at: Date;
        subject: string;
        cc: string | null;
        bcc: string | null;
        mail_id: number;
    }>;
    update(locale: string, { id, data }: {
        id: number;
        data: UpdateDTO;
    }): Promise<{
        id: number;
        body: string;
        from: string;
        to: string | null;
        created_at: Date;
        updated_at: Date;
        subject: string;
        cc: string | null;
        bcc: string | null;
        mail_id: number;
    }>;
    delete(locale: string, { ids }: DeleteDTO): Promise<{
        count: number;
    }>;
}
export {};
//# sourceMappingURL=mail-sent.service.d.ts.map