import { Injector } from 'graphql-modules';
import { Currency } from '../../../shared/enums.js';
import { NoOptionalField, TimelessDateString } from '../../../shared/types/index.js';
import type { IGetTransactionsByIdsResult } from '../../transactions/types.js';
import type { IGetExchangeRatesByDatesResult } from '../types.js';
type ValidatedTransaction = NoOptionalField<IGetTransactionsByIdsResult, 'debit_date'>;
export declare function defineConversionBaseAndQuote(transactions: Array<IGetTransactionsByIdsResult>): {
    baseTransaction: ValidatedTransaction;
    quoteTransaction: ValidatedTransaction;
    miscTransactions: ValidatedTransaction[];
};
export declare function getRateForCurrency(currencyCode: Currency, exchangeRates: IGetExchangeRatesByDatesResult, defaultLocalCurrency: Currency): number;
export declare function getClosestRateForDate(date: string | Date, rates: Array<IGetExchangeRatesByDatesResult>): IGetExchangeRatesByDatesResult;
export declare function isCryptoCurrency(currency: Currency): currency is Currency.Eth | Currency.Grt | Currency.Usdc;
export declare function getFiatExchangeRate(injector: Injector, timelessDate: TimelessDateString, currency: keyof Omit<IGetExchangeRatesByDatesResult, 'exchange_date'>): Promise<number | null>;
export {};
