import { MTableQueries } from "../../common-types/common";
import { controllerResponse } from "../../utilities";
type IEmailLogErrorLogger = {
    [key in keyof MEmailLog]: string;
};
type IEmailLogGetByIdErrorLogger = {
    [key in keyof MEmailLogGetByIdPayload]: string;
};
type IEmailLogResendErrorLogger = {
    [key in keyof MEmailLogResendPayload]: string;
};
declare class MEmailLog extends MTableQueries {
    elog_from_email?: string;
    elog_to_email?: string;
    elog_mail_status?: string;
    elog_id_eref?: string;
    elog_id_etmp?: string;
    query?: string;
    dateFrom?: string;
    dateTo?: string;
    constructor(init: MEmailLog);
    Validate?(): Partial<IEmailLogErrorLogger>;
}
declare class MEmailLogGetByIdPayload {
    elog_id?: string;
    _id?: string;
    constructor(init: MEmailLogGetByIdPayload);
    Validate?(): Partial<IEmailLogGetByIdErrorLogger>;
}
declare class MEmailLogResendPayload {
    elog_id?: string;
    _id?: string;
    to?: string;
    constructor(init: MEmailLogResendPayload);
    Validate?(): Partial<IEmailLogResendErrorLogger>;
}
interface emailLogControllerResponse extends controllerResponse {
    data?: any[] | any | null;
    total?: number;
    totalDocument?: number;
}
interface emailLogByIdControllerResponse extends controllerResponse {
    data?: any | null;
}
interface emailLogStatisticsControllerResponse extends controllerResponse {
    data?: {
        total?: number;
        sent?: number;
        failed?: number;
        pending?: number;
        delivered?: number;
        bounced?: number;
        byStatus?: Record<string, number>;
        byDate?: Array<{
            date: string;
            count: number;
        }>;
    } | null;
}
interface emailLogResendControllerResponse extends controllerResponse {
    data?: any | null;
}
export { MEmailLog, MEmailLogGetByIdPayload, MEmailLogResendPayload, emailLogControllerResponse, emailLogByIdControllerResponse, emailLogStatisticsControllerResponse, emailLogResendControllerResponse };
