import { MTableQueries, MRequestMiddelware } from "../../common-types/common";
import { IAppRolloutConfigMst } from "../../schema/app/app_rollout_config_mst";
import { controllerResponse } from "../../utilities";
type IAppRolloutConfigErrorLogger = {
    [key in keyof MAppRolloutConfig]: string;
};
type IAppRolloutConfigGetByIdErrorLogger = {
    [key in keyof MAppRolloutConfigGetByIdPayload]: string;
};
type IAppRolloutConfigInsertUpdateErrorLogger = {
    [key in keyof MAppRolloutConfigInsertUpdatePayload]: string;
};
declare class MAppRolloutConfig extends MTableQueries {
    approll_id?: string;
    approll_version_id_appver?: string;
    query?: string;
    constructor(init: MAppRolloutConfig);
    Validate?(): Partial<IAppRolloutConfigErrorLogger>;
}
declare class MAppRolloutConfigGetByIdPayload implements MRequestMiddelware {
    approll_id?: string;
    _id?: string;
    constructor(init: MAppRolloutConfigGetByIdPayload);
    Validate?(): Partial<IAppRolloutConfigGetByIdErrorLogger>;
}
declare class MAppRolloutConfigInsertUpdatePayload implements IAppRolloutConfigMst, MRequestMiddelware {
    _id?: string;
    approll_version_id_appver?: string;
    approll_rollout_phases?: Array<{
        phase_number: number;
        percentage: number;
        rollout_percentage?: number;
        start_date: Date;
        end_date?: Date;
        phase_status_id_sygms: string;
        criteria?: Record<string, unknown>;
    }>;
    approll_rollout_criteria?: Record<string, unknown>;
    approll_auto_advance?: boolean;
    approll_created_by_id_auth?: string;
    approll_created_at?: Date;
    approll_updated_at?: Date;
    constructor(init: Partial<IAppRolloutConfigMst> & {
        _id?: string;
    });
    Validate?(): Partial<IAppRolloutConfigInsertUpdateErrorLogger>;
}
interface appRolloutConfigControllerResponse extends controllerResponse {
    data?: any[] | any | null;
    total?: number;
    totalDocument?: number;
}
interface appRolloutConfigByIdControllerResponse extends controllerResponse {
    data?: any | null;
}
interface appRolloutConfigInsertUpdateControllerResponse extends controllerResponse {
    data?: any | null;
}
export { MAppRolloutConfig, MAppRolloutConfigGetByIdPayload, MAppRolloutConfigInsertUpdatePayload, appRolloutConfigControllerResponse, appRolloutConfigByIdControllerResponse, appRolloutConfigInsertUpdateControllerResponse };
