import { MTableQueries } from "../../common-types/common";
import { IEmailVendorSubscription } from "../../schema/email/email_subscription_vendor";
import { controllerResponse } from "../../utilities";
type IEmailSubscriptionErrorLogger = {
    [key in keyof MEmailSubscription]: string;
};
type IEmailSubscriptionGetByIdErrorLogger = {
    [key in keyof MEmailSubscriptionGetByIdPayload]: string;
};
type IEmailSubscriptionDeleteErrorLogger = {
    [key in keyof MEmailSubscriptionDeletePayload]: string;
};
type IEmailSubscriptionInsertUpdateErrorLogger = {
    [key in keyof MEmailSubscriptionInsertUpdatePayload]: string;
};
type IEmailSubscriptionToggleStatusErrorLogger = {
    [key in keyof MEmailSubscriptionToggleStatusPayload]: string;
};
declare class MEmailSubscription extends MTableQueries {
    esub_id_evdr?: string;
    esub_status?: string;
    esub_isactive?: boolean;
    query?: string;
    constructor(init: MEmailSubscription);
    Validate?(): Partial<IEmailSubscriptionErrorLogger>;
}
declare class MEmailSubscriptionGetByIdPayload {
    esub_id?: string;
    _id?: string;
    constructor(init: MEmailSubscriptionGetByIdPayload);
    Validate?(): Partial<IEmailSubscriptionGetByIdErrorLogger>;
}
declare class MEmailSubscriptionDeletePayload {
    esub_id?: string;
    _id?: string;
    constructor(init: MEmailSubscriptionDeletePayload);
    Validate?(): Partial<IEmailSubscriptionDeleteErrorLogger>;
}
declare class MEmailSubscriptionToggleStatusPayload {
    esub_id?: string;
    _id?: string;
    esub_isactive?: boolean;
    constructor(init: MEmailSubscriptionToggleStatusPayload);
    Validate?(): Partial<IEmailSubscriptionToggleStatusErrorLogger>;
}
declare class MEmailSubscriptionInsertUpdatePayload implements IEmailVendorSubscription {
    _id?: string;
    esub_id_evdr?: string;
    esub_start_dtm?: Date;
    esub_end_dtm?: Date;
    esub_timestamp?: string;
    esub_limit?: number;
    esub_alert_on_limit?: string;
    esub_alert_to_id_user?: string;
    esub_used_limit?: number;
    esub_status?: string;
    esub_isactive?: boolean;
    constructor(init: Partial<IEmailVendorSubscription> & {
        _id?: string;
    });
    Validate?(): Partial<IEmailSubscriptionInsertUpdateErrorLogger>;
}
interface emailSubscriptionControllerResponse extends controllerResponse {
    data?: any[] | any | null;
    total?: number;
    totalDocument?: number;
}
interface emailSubscriptionByIdControllerResponse extends controllerResponse {
    data?: any | null;
}
interface emailSubscriptionInsertUpdateControllerResponse extends controllerResponse {
    data?: any | null;
}
interface emailSubscriptionDeleteControllerResponse extends controllerResponse {
    data?: any | null;
}
interface emailSubscriptionToggleStatusControllerResponse extends controllerResponse {
    data?: any | null;
}
export { MEmailSubscription, MEmailSubscriptionGetByIdPayload, MEmailSubscriptionDeletePayload, MEmailSubscriptionInsertUpdatePayload, MEmailSubscriptionToggleStatusPayload, emailSubscriptionControllerResponse, emailSubscriptionByIdControllerResponse, emailSubscriptionInsertUpdateControllerResponse, emailSubscriptionDeleteControllerResponse, emailSubscriptionToggleStatusControllerResponse };
