import { EntityManager } from 'typeorm';
export type ImportPenaltyStagingMap = Map<string, {
    amount: number;
    penaltyType: string | null;
}>;
/** `key` = `${calendarYear}-${calendarMonth}` */
export declare function buildImportPenaltyStagingMap(rows: Array<{
    calendarYear: number;
    calendarMonth: number;
    penaltyAmount: string;
    penaltyType?: string | null;
}>): ImportPenaltyStagingMap;
export declare function calendarPartsFromIsoDate(isoDate: string): {
    calendarYear: number;
    calendarMonth: number;
} | null;
/** @deprecated Prefer {@link calendarPartsFromIsoDate}; billingPeriodKey is the O&M anchor month, not the bill start month. */
export declare function calendarPartsFromBillingPeriodKey(billingPeriodKeyIso: string): {
    calendarYear: number;
    calendarMonth: number;
} | null;
/**
 * Apply staged import penalty to a newly created catch-up invoice (same transaction).
 */
export declare function applyStagedImportPenaltyToInvoiceTx(params: {
    manager: EntityManager;
    schemeId: string;
    invoiceId: string;
    /** O&M bill period start — import penalties are keyed to this calendar month (not billingPeriodKey). */
    fromDate: string;
    snapshotMonthlyAmount: number;
    stagingMap: ImportPenaltyStagingMap;
    invForYearlyRecompute: {
        fromDate?: string | null;
        toDate?: string | null;
        billingPeriodKey?: string | null;
    };
    timezone: string;
}): Promise<{
    applied: boolean;
    amount?: number;
}>;
export declare function finalizeImportPenaltyStagingForScheme(schemeId: string, stagingMap: ImportPenaltyStagingMap): Promise<string[]>;
//# sourceMappingURL=schemeImportPenaltyApply.service.d.ts.map