import type { Injector } from 'graphql-modules';
import type { LedgerProto, StrictLedgerProto } from '../../../shared/types/index.js';
import type { IGetChargesByIdsResult } from '../../charges/types.js';
import type { IGetDocumentsByChargeIdResult } from '../../documents/types.js';
import type { IGetTransactionsByChargeIdsResult } from '../../transactions/types.js';
import { IGetBalanceCancellationByChargesIdsResult } from '../types.js';
export declare function ledgerEntryFromDocument(injector: Injector, document: IGetDocumentsByChargeIdResult, charge: IGetChargesByIdsResult, ownerId: string, taxCategoryId: string): Promise<StrictLedgerProto>;
export declare function ledgerEntryFromMainTransaction(transaction: IGetTransactionsByChargeIdsResult, injector: Injector, chargeId: string, ownerId: string, businessId?: string, gotRelevantDocuments?: boolean): Promise<StrictLedgerProto>;
export declare function ledgerEntryFromBalanceCancellation(balanceCancellation: IGetBalanceCancellationByChargesIdsResult, ledgerBalance: Map<string, {
    amount: number;
    entityId: string;
}>, financialAccountLedgerEntries: StrictLedgerProto[], chargeId: string, ownerId: string, injector: Injector): Promise<LedgerProto>;
export declare function isRefundCharge(description?: string | null): boolean;
export declare function getExchangeDates(financialAccountLedgerEntries: LedgerProto[]): Date;
