import { CreatePerformaInvoiceRepository } from '../repositories/createPerformaInvoice.repository';
export type MissingPerformaInvoiceRow = {
    billingPeriodKey: string;
    targetDate: string;
    fromDate: string;
    toDate: string;
    invoiceMonth: string;
    invoiceDate: string;
    status: 'Missing' | 'Incomplete';
    existingInvoiceId: string | null;
};
/**
 * Isolated manual Performa Invoice recovery.
 * Does not modify catch-up, cron, import, Tax Invoice, or Supporting Documents flows.
 */
export declare class CreatePerformaInvoiceService {
    private repo;
    constructor(repo?: CreatePerformaInvoiceRepository);
    private assertScope;
    private assertBillingReady;
    private assertAgencyDistrict;
    lookupSchemeByCode(humanSchemeId: string, scope?: any): Promise<{
        id: string;
        schemeId: string;
        name: string;
        districtName: string | null;
        omStartDate: string | null;
        omAgreementNo: string | null;
    }>;
    listMissingInvoices(schemeUuid: string, scope?: any): Promise<{
        scheme: {
            id: string;
            schemeId: string;
            name: string;
            districtName: string | null;
            omStartDate: string | null;
            omAgreementNo: string | null;
        };
        lastGenerated: {
            billingPeriodKey: string;
            invoiceMonth: string;
            invoiceDate: string;
        } | null;
        missing: MissingPerformaInvoiceRow[];
    }>;
    generateMissingInvoice(schemeUuid: string, billingPeriodKeyRaw: string, scope?: any): Promise<{
        invoiceId: string;
        billingPeriodKey: string;
        invoiceNumberDisplay: string;
        repaired: boolean;
    }>;
    private ensureManualPerformaPdfInS3;
}
//# sourceMappingURL=createPerformaInvoice.service.d.ts.map