import type { Injector } from 'graphql-modules';
import type { LedgerProto } from '../../../shared/types/index.js';
import type { IGetLedgerRecordsByChargesIdsResult, IInsertLedgerRecordsParams, IUpdateLedgerRecordParams } from '../types.js';
type LedgerRecordInput = IInsertLedgerRecordsParams['ledgerRecords'][number];
export declare function ledgerRecordsGenerationFullMatchComparison(storageRecords: IGetLedgerRecordsByChargesIdsResult[], newRecords: readonly IGetLedgerRecordsByChargesIdsResult[]): {
    unmatchedStorageRecords: IGetLedgerRecordsByChargesIdsResult[];
    unmatchedNewRecords: IGetLedgerRecordsByChargesIdsResult[];
    fullMatches: Map<number, string | undefined>;
    isFullyMatched: boolean;
};
export declare function ledgerRecordsGenerationPartialMatchComparison(storageRecords: IGetLedgerRecordsByChargesIdsResult[], newRecords: IGetLedgerRecordsByChargesIdsResult[]): {
    toUpdate: IGetLedgerRecordsByChargesIdsResult[];
    toRemove: IGetLedgerRecordsByChargesIdsResult[];
};
export declare function convertToStorageInputRecord(record: LedgerProto, ownerId: string): LedgerRecordInput;
export declare function convertLedgerRecordToProto(record: IGetLedgerRecordsByChargesIdsResult, ownerId: string): LedgerProto;
export declare function convertLedgerRecordToInput(record: IGetLedgerRecordsByChargesIdsResult, ownerId: string): LedgerRecordInput | IUpdateLedgerRecordParams;
export declare function storeInitialGeneratedRecords(chargeId: string, records: LedgerProto[], injector: Injector): Promise<import("../types.js").IInsertLedgerRecordsResult[] | undefined>;
export {};
