import { Document } from 'mongoose';
import { BaseEntity } from '../../common/entities/base.entity';
export type InvoiceDocument = Invoice & Document;
export declare class Invoice extends BaseEntity {
    invoiceNumber: string;
    paymentId?: string;
    receiptNumber?: string;
    transactionId?: string;
    feeAssignmentId?: string;
    feeName?: string;
    installment?: string;
    studentId: string;
    studentName: string;
    studentUniqueId: string;
    classId: string;
    className: string;
    academicYearId: string;
    amount: number;
    fineAmount: number;
    totalPaid: number;
    balance: number;
    status: 'pending' | 'paid' | 'partial';
    paymentMode?: 'cash' | 'upi' | 'cheque' | 'bank_transfer' | 'online';
    date: Date;
    generatedBy: string;
    isActive: boolean;
    notes?: string;
}
export declare const InvoiceSchema: import("mongoose").Schema<Invoice, import("mongoose").Model<Invoice, any, any, any, Document<unknown, any, Invoice, any> & Invoice & Required<{
    _id: string;
}>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Invoice, Document<unknown, {}, import("mongoose").FlatRecord<Invoice>, {}> & import("mongoose").FlatRecord<Invoice> & Required<{
    _id: string;
}>>;
