import { MTableQueries } from "../../common-types/common";
import { FeeAssignment, FeeAssignmentBase } from "../../schema/fees/fee_assignment";
import { controllerResponse } from "../../utilities";
type IFeeAssignmentErrorLogger = {
    [key in keyof MFeeAssignment]: string;
};
type IFeeAssignmentGetByIdErrorLogger = {
    [key in keyof MFeeAssignmentGetByIdPayload]: string;
};
type IFeeAssignmentDeleteErrorLogger = {
    [key in keyof MFeeAssignmentDeletePayload]: string;
};
type IFeeAssignmentInsertUpdateErrorLogger = {
    [key in keyof MFeeAssignmentInsertUpdatePayload]: string;
};
declare class MFeeAssignment extends MTableQueries {
    feeas_student_id_auth?: string;
    feeas_fee_structure_id_feest?: string;
    feeas_fee_structure_item_id_feesi?: string;
    feeas_fee_category_sygms?: string;
    feeas_entity_id_syen?: string;
    feeas_academic_year_id_acayr?: string;
    feeas_class_program_id_acacpm?: string;
    feeas_admission_id_admap?: string;
    feeas_payment_status?: 'PENDING' | 'PARTIALLY_PAID' | 'PAID' | 'OVERDUE' | 'WAIVED' | 'CANCELLED';
    feeas_isactive?: boolean;
    constructor(init: MFeeAssignment);
    Validate?(): Partial<IFeeAssignmentErrorLogger>;
}
declare class MFeeAssignmentGetByIdPayload {
    feeas_id?: string;
    constructor(init: MFeeAssignmentGetByIdPayload);
    Validate?(): Partial<IFeeAssignmentGetByIdErrorLogger>;
}
declare class MFeeAssignmentDeletePayload {
    feeas_id?: string;
    constructor(init: MFeeAssignmentDeletePayload);
    Validate?(): Partial<IFeeAssignmentDeleteErrorLogger>;
}
declare class MFeeAssignmentInsertUpdatePayload extends FeeAssignment {
    constructor(init: FeeAssignment);
    Validate?(): Partial<IFeeAssignmentInsertUpdateErrorLogger>;
}
interface FeeAssignmentResponse extends FeeAssignmentBase {
    feeas_fee_category_sygms?: {
        _id: string;
        sygms_title: string;
        sygms_code: string;
    };
    feeas_fee_structure_id_feest?: {
        _id: string;
        feest_name?: string;
    };
    feeas_academic_year_id_acayr?: {
        _id: string;
        acayr_name?: string;
    };
    feeas_entity_id_syen?: {
        _id: string;
        syen_name?: string;
    };
}
interface feeAssignmentControllerResponse extends controllerResponse {
    data?: FeeAssignmentResponse[] | FeeAssignmentResponse | null;
    totalDocument?: number;
}
interface feeAssignmentByIdControllerResponse extends controllerResponse {
    data?: FeeAssignmentResponse;
}
interface feeAssignmentInsertUpdateControllerResponse extends controllerResponse {
    data?: FeeAssignmentResponse;
}
interface feeAssignmentDeleteControllerResponse extends controllerResponse {
    data?: {
        deleted: boolean;
    };
}
export { IFeeAssignmentErrorLogger, IFeeAssignmentGetByIdErrorLogger, IFeeAssignmentDeleteErrorLogger, IFeeAssignmentInsertUpdateErrorLogger, MFeeAssignment, MFeeAssignmentGetByIdPayload, MFeeAssignmentDeletePayload, MFeeAssignmentInsertUpdatePayload, FeeAssignmentResponse, feeAssignmentControllerResponse, feeAssignmentByIdControllerResponse, feeAssignmentInsertUpdateControllerResponse, feeAssignmentDeleteControllerResponse };
