import { TransactionRequirement, GasAmount, SmartCheckoutResult, ERC20ItemRequirement, FundingRoute, FundingStep, WrappedBrowserProvider } from '@imtbl/checkout-sdk';
import { Environment } from '@imtbl/config';
import { OrderQuoteCurrency, FundingBalance, SufficientFundingStep } from '../types';
export declare const getERC20ItemRequirement: (amount: string, spenderAddress: string, tokenAddress: string) => ERC20ItemRequirement[];
export declare const getGasEstimate: () => GasAmount;
export declare const wrapPromisesWithOnResolve: <T>(awaitedFns: Promise<T>[], onResolve: (value: T) => void) => Promise<T[]>;
export declare const getSufficientFundingStep: (requirement: TransactionRequirement, environment: Environment) => SufficientFundingStep;
export declare const getAlternativeFundingSteps: (fundingRoutes: FundingRoute[], environment: Environment) => FundingStep[];
export declare const getFundingBalances: (smartCheckoutResult: SmartCheckoutResult, environment: Environment) => FundingBalance[] | null;
export declare const getFnToSortFundingBalancesByPriority: (baseSymbol?: string) => (a: FundingBalance, b: FundingBalance) => number;
export declare const getFnToPushAndSortFundingBalances: (baseCurrency: OrderQuoteCurrency) => ((balances: FundingBalance[]) => FundingBalance[]);
export declare const processGasFreeBalances: (balances: FundingBalance[], provider?: WrappedBrowserProvider) => FundingBalance[];
