import { EntityManager } from 'typeorm';
export type CreatePerformaSchemeLookup = {
    id: string;
    schemeId: string;
    name: string;
    agencyId: string;
    districtId: string;
    districtName: string | null;
    omAgreementNo: string | null;
    invoiceName: string | null;
    invoiceNumberPrefix: string | null;
    sacCode: string | null;
    omStartDate: string | null;
    finalExecutedWorkCost: string | null;
    invoiceGenerationStatus: string | null;
};
export type CreatePerformaSchemeBillingRow = CreatePerformaSchemeLookup & {
    omYear: number;
};
export type ExistingPerformaInvoiceRow = {
    id: string;
    billingPeriodKey: string | null;
    invoicePdfKey: string;
};
/**
 * Isolated queries for the Create a Performa Invoice feature.
 * Does not modify InvoiceRepository or catch-up/cron repositories.
 */
export declare class CreatePerformaInvoiceRepository {
    findSchemeByHumanSchemeId(humanSchemeId: string): Promise<CreatePerformaSchemeLookup | null>;
    findSchemeById(schemeUuid: string): Promise<CreatePerformaSchemeLookup | null>;
    lockSchemeBillingRow(schemeUuid: string, manager: EntityManager): Promise<CreatePerformaSchemeBillingRow | null>;
    getSchemeDistrictId(schemeUuid: string): Promise<string | null>;
    findExistingInvoicesForScheme(schemeUuid: string): Promise<ExistingPerformaInvoiceRow[]>;
    findExistingInvoiceForPeriod(schemeUuid: string, billingPeriodKey: string, manager?: EntityManager): Promise<ExistingPerformaInvoiceRow | null>;
    private extractInvoicePdfKey;
    private mapSchemeLookup;
}
//# sourceMappingURL=createPerformaInvoice.repository.d.ts.map