import { PendingRegenerateInvoiceRow } from '../repositories/regenerateInvoice.repository';
/** PDF-only overrides from the Regenerate Invoice modal (not persisted to invoice business columns). */
export type RegenerateOmInvoicePdfOverrides = {
    invoiceNumberDisplay?: string;
    omBillNumber?: string;
    schemeName?: string;
    schemeInvoiceName?: string | null;
    onmAgreementNo?: string;
    district?: string;
    sacCode?: string;
    schemeVillagesList?: string;
    fromDate?: string;
    toDate?: string;
    invoiceDateDisplay?: string;
    snapshotMonthlyAmount?: number;
    penaltyAmount?: number;
    cgstRatePercent?: number;
    sgstRatePercent?: number;
    billingPeriod?: string;
};
/**
 * Isolated Regenerate Invoice feature service.
 * Does not modify existing invoice generation or regenerateScheduledOmInvoicePdf.
 */
export declare class RegenerateInvoiceService {
    private repo;
    private assertScope;
    lookupSchemeByCode(humanSchemeId: string, scope?: any): Promise<{
        villagesList: string;
        id: string;
        schemeId: string;
        name: string;
        agencyId: string;
        districtId: string;
        districtName: string | null;
        omAgreementNo: string | null;
        invoiceName: string | null;
        sacCode: string | null;
    }>;
    listPendingInvoices(schemeUuid: string, type: string, scope?: any): Promise<{
        data: PendingRegenerateInvoiceRow[];
        schemeId: string;
    }>;
    getInvoiceDetailForModal(invoiceId: string, scope?: any): Promise<{
        invoice: {
            id: string;
            agencyId: string;
            schemeId: string;
            invoiceNumber: string;
            invoiceNumberDisplay: string;
            status: string;
            billingPeriodKey: string;
            fromDate: string;
            toDate: string;
            snapshotMonthlyAmount: number;
            penaltyAmount: number;
            totalAmount: number;
            omBillNumber: string;
            billingPeriod: string;
            invoiceDateDisplay: string;
        };
        scheme: {
            id: string;
            schemeId: string;
            name: string;
            invoiceName: any;
            omAgreementNo: any;
            districtName: string;
            sacCode: any;
            villagesList: string;
        };
        branding: {
            agencyId: string;
            invoiceTitle: string;
            invoiceSubTitle: string;
            address: string;
            email: string;
            gstin: string;
            invoiceLeftIcon: string | null;
            invoiceRightIcon: string | null;
            cgstRatePercent: number;
            sgstRatePercent: number;
            documentKindTitle: string;
        };
    }>;
    regenerateProformaPdf(invoiceId: string, overrides: RegenerateOmInvoicePdfOverrides | undefined, scope?: any, actor?: {
        userId?: string;
        email?: string;
    }): Promise<{
        invoiceId: string;
        documentStorageUrl: string | null;
    }>;
}
//# sourceMappingURL=regenerateInvoice.service.d.ts.map