import type { Account, Operation, TokenAccount } from "@ledgerhq/types-live";
import BigNumber from "bignumber.js";
import type { HederaOperationExtra, Transaction, HederaMirrorToken, HederaERC20TokenBalance } from "../types";
interface CalculateAmountResult {
    amount: BigNumber;
    totalSpent: BigNumber;
}
export declare const calculateAmount: ({ account, transaction, }: {
    account: Account;
    transaction: Transaction;
}) => Promise<CalculateAmountResult>;
export declare const getSubAccounts: ({ ledgerAccountId, latestTokenOperations, mirrorTokens, erc20Tokens, }: {
    ledgerAccountId: string;
    latestTokenOperations: Operation[];
    mirrorTokens: HederaMirrorToken[];
    erc20Tokens: HederaERC20TokenBalance[];
}) => Promise<TokenAccount[]>;
export declare const prepareOperations: (coinOperations: Operation<HederaOperationExtra>[], tokenOperations: Operation<HederaOperationExtra>[]) => Promise<Operation<HederaOperationExtra>[]>;
/**
 * In charge of smartly merging sub accounts while maintaining references as much as possible
 */
export declare const mergeSubAccounts: (initialAccount: Account | undefined, newSubAccounts: TokenAccount[]) => Array<TokenAccount>;
export declare const applyPendingExtras: (existing: Operation[], pending: Operation[]) => Operation[];
export declare function patchOperationWithExtra(operation: Operation, extra: HederaOperationExtra): Operation;
export {};
//# sourceMappingURL=utils.d.ts.map