import { Document } from 'mongoose';
import { BaseEntity } from '../../common/entities/base.entity';
export type FeeStructureDocument = FeeStructure & Document;
export declare class SubFee {
    name: string;
    amount: number;
}
export declare const SubFeeSchema: import("mongoose").Schema<SubFee, import("mongoose").Model<SubFee, any, any, any, Document<unknown, any, SubFee, any> & SubFee & {
    _id: import("mongoose").Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, SubFee, Document<unknown, {}, import("mongoose").FlatRecord<SubFee>, {}> & import("mongoose").FlatRecord<SubFee> & {
    _id: import("mongoose").Types.ObjectId;
} & {
    __v: number;
}>;
declare class LateFineSlab {
    startDay: number;
    endDay: number;
    amount: number;
}
declare class LateFineRule {
    enabled: boolean;
    type: 'percentage' | 'per_day' | 'day_wise_slab';
    amountPerDay: number;
    percentage: number;
    slabs: LateFineSlab[];
}
export declare class FeeStructure extends BaseEntity {
    name: string;
    feeType: 'one-time' | 'monthly' | 'quarterly' | 'yearly';
    academicYearId: string;
    amount: number;
    classIds: string[];
    dueMonth: number;
    dueDay: number;
    startDate?: Date;
    endDate?: Date;
    enableSubFees: boolean;
    subFees: SubFee[];
    lateFine: LateFineRule;
    isActive: boolean;
}
export declare const FeeStructureSchema: import("mongoose").Schema<FeeStructure, import("mongoose").Model<FeeStructure, any, any, any, Document<unknown, any, FeeStructure, any> & FeeStructure & Required<{
    _id: string;
}>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, FeeStructure, Document<unknown, {}, import("mongoose").FlatRecord<FeeStructure>, {}> & import("mongoose").FlatRecord<FeeStructure> & Required<{
    _id: string;
}>>;
export {};
