import { MTableQueries, MRequestMiddelware } from "../../common-types/common";
import { IAcademicsBonafideRequest } from "../../schema/academics/academics_bonafide_request";
import { controllerResponse } from "../../utilities";
type IBonafideRequestErrorLogger = {
    [key in keyof MBonafideRequest]: string;
};
type IBonafideRequestGetByIdErrorLogger = {
    [key in keyof MBonafideRequestGetByIdPayload]: string;
};
type IBonafideRequestInsertUpdateErrorLogger = {
    [key in keyof MBonafideRequestInsertUpdatePayload]: string;
};
type IBonafideRequestApproveErrorLogger = {
    [key in keyof MBonafideRequestApprovePayload]: string;
};
type IBonafideRequestRejectErrorLogger = {
    [key in keyof MBonafideRequestRejectPayload]: string;
};
declare class MBonafideRequest extends MTableQueries {
    abnr_id?: string;
    abnr_request_number?: string;
    abnr_student_id_auth?: string;
    abnr_purpose?: string;
    abnr_certificate_purpose?: string;
    abnr_status_id_sygms?: string;
    abnr_entity_id_syen?: string;
    query?: string;
    constructor(init: MBonafideRequest);
    Validate?(): Partial<IBonafideRequestErrorLogger>;
}
declare class MBonafideRequestGetByIdPayload implements MRequestMiddelware {
    abnr_id?: string;
    _id?: string;
    constructor(init: MBonafideRequestGetByIdPayload);
    Validate?(): Partial<IBonafideRequestGetByIdErrorLogger>;
}
declare class MBonafideRequestInsertUpdatePayload implements IAcademicsBonafideRequest, MRequestMiddelware {
    _id?: string;
    abnr_request_number?: string;
    abnr_student_id_auth?: string;
    abnr_purpose?: string;
    abnr_certificate_purpose?: string;
    abnr_request_date?: Date;
    abnr_status_id_sygms?: string;
    abnr_current_step?: number;
    abnr_workflow_id_wfrg?: string;
    abnr_requested_by_user?: string;
    abnr_soft_copy_id_cyfm?: string;
    abnr_stamped_copy_id_cyfm?: string;
    abnr_completed_date?: Date;
    abnr_entity_id_syen?: string;
    abnr_academic_year_id_acayr?: string;
    abnr_class_program_id_acacpm?: string;
    abnr_term_id_acatrm?: string;
    abnr_section_id_acapts?: string;
    abnr_isactive?: boolean;
    constructor(init: Partial<IAcademicsBonafideRequest> & {
        _id?: string;
    });
    Validate?(): Partial<IBonafideRequestInsertUpdateErrorLogger>;
}
declare class MBonafideRequestApprovePayload implements MRequestMiddelware {
    abnr_id?: string;
    requestId?: string;
    comments?: string;
    actionBy?: string;
    approvedByUser?: string;
    constructor(init: MBonafideRequestApprovePayload);
    Validate?(): Partial<IBonafideRequestApproveErrorLogger>;
}
declare class MBonafideRequestRejectPayload implements MRequestMiddelware {
    abnr_id?: string;
    requestId?: string;
    comments?: string;
    reason?: string;
    actionBy?: string;
    rejectedByUser?: string;
    constructor(init: MBonafideRequestRejectPayload);
    Validate?(): Partial<IBonafideRequestRejectErrorLogger>;
}
declare class MBonafideRequestGenerateCertificatePayload implements MRequestMiddelware {
    abnr_id?: string;
    requestId?: string;
    generatedByUser?: string;
    constructor(init: MBonafideRequestGenerateCertificatePayload);
    Validate?(): any;
}
declare class MBonafideRequestUploadStampedCopyPayload implements MRequestMiddelware {
    abnr_id?: string;
    requestId?: string;
    abnr_stamped_copy_id_cyfm?: string;
    uploadedBy?: string;
    constructor(init: MBonafideRequestUploadStampedCopyPayload);
    Validate?(): any;
}
interface bonafideRequestControllerResponse extends controllerResponse {
    data?: any[] | any | null;
    total?: number;
    totalDocument?: number;
}
interface bonafideRequestByIdControllerResponse extends controllerResponse {
    data?: any | null;
}
interface bonafideRequestInsertUpdateControllerResponse extends controllerResponse {
    data?: any | null;
}
interface bonafideRequestApproveControllerResponse extends controllerResponse {
    data?: any | null;
}
interface bonafideRequestRejectControllerResponse extends controllerResponse {
    data?: any | null;
}
interface bonafideRequestGenerateCertificateControllerResponse extends controllerResponse {
    data?: any | null;
}
interface bonafideRequestUploadStampedCopyControllerResponse extends controllerResponse {
    data?: any | null;
}
export { MBonafideRequest, MBonafideRequestGetByIdPayload, MBonafideRequestInsertUpdatePayload, MBonafideRequestApprovePayload, MBonafideRequestRejectPayload, MBonafideRequestGenerateCertificatePayload, MBonafideRequestUploadStampedCopyPayload, bonafideRequestControllerResponse, bonafideRequestByIdControllerResponse, bonafideRequestInsertUpdateControllerResponse, bonafideRequestApproveControllerResponse, bonafideRequestRejectControllerResponse, bonafideRequestGenerateCertificateControllerResponse, bonafideRequestUploadStampedCopyControllerResponse };
