import { InvoicesService } from './invoices.service';
import { CreateInvoiceDto } from './dto/create-invoice.dto';
import { UpdateInvoiceDto } from './dto/update-invoice.dto';
import { FilterInvoicesDto } from './dto/filter-invoices.dto';
export declare class InvoicesController {
    private readonly invoicesService;
    constructor(invoicesService: InvoicesService);
    create(dto: CreateInvoiceDto, req: Request & {
        __ctx?: any;
    }): Promise<import("./schemas/invoice.schema").Invoice & import("mongoose").Document<unknown, any, any, Record<string, any>> & Required<{
        _id: string;
    }>>;
    findAll(filter: FilterInvoicesDto, userId: string, role: string, req: Request & {
        __ctx?: any;
    }): Promise<(import("mongoose").FlattenMaps<import("./schemas/invoice.schema").InvoiceDocument> & Required<{
        _id: string;
    }>)[]>;
    exportInvoices(filter: FilterInvoicesDto, req: Request & {
        __ctx?: any;
    }): Promise<(import("mongoose").FlattenMaps<import("./schemas/invoice.schema").InvoiceDocument> & Required<{
        _id: string;
    }>)[]>;
    verifyReceipt(receipt: string): Promise<{
        receiptNumber: string;
        invoiceNumber: string;
        transactionId: string | undefined;
        studentName: string;
        studentId: string;
        className: string;
        feeName: string;
        installment: string;
        amount: number;
        fineAmount: number;
        totalPaid: number;
        status: "partial" | "pending" | "paid";
        paidAt: Date;
        paymentMethod: "upi" | "cash" | "cheque" | "bank_transfer" | "online" | undefined;
    }>;
    findOne(id: string): Promise<import("mongoose").FlattenMaps<import("./schemas/invoice.schema").InvoiceDocument> & Required<{
        _id: string;
    }>>;
    update(id: string, dto: UpdateInvoiceDto): Promise<import("mongoose").FlattenMaps<import("./schemas/invoice.schema").InvoiceDocument> & Required<{
        _id: string;
    }>>;
    toggleActive(id: string): Promise<{
        _id: string;
        isActive: any;
    }>;
    delete(id: string): Promise<{
        deleted: boolean;
    }>;
}
