import { BinanceNetworks, NumberRange, OkxNetworks, SupportedNetworks } from '../../types';
import { ClientType } from '../clients';
interface ICalculateAmount {
    minAndMaxAmount: NumberRange;
    usePercentBalance?: boolean;
    decimals?: number;
}
type NumberCalculateAmount = ICalculateAmount & {
    isBigInt?: false;
    balance: number;
};
type BigIntCalculateAmount = ICalculateAmount & {
    isBigInt: true;
    balance: bigint;
};
export declare function calculateAmount(args: NumberCalculateAmount): number;
export declare function calculateAmount(args: BigIntCalculateAmount): bigint;
export declare const getExpectedBalance: (expectedBalance?: NumberRange) => {
    currentExpectedBalance: number;
    isTopUpByExpectedBalance: boolean;
};
interface GetTopUpOptions {
    isTopUpByExpectedBalance: boolean;
    currentExpectedBalance: number;
    tokenToWithdraw: string;
    client: ClientType;
    minAndMaxAmount: NumberRange;
    network: SupportedNetworks | BinanceNetworks | OkxNetworks;
    amount?: number;
    percentToAdd?: number;
    minNativeBalance?: number;
    fee?: number;
}
export declare const getTopUpOptions: ({ isTopUpByExpectedBalance, currentExpectedBalance, tokenToWithdraw, client, amount, minAndMaxAmount, network, percentToAdd, minNativeBalance, fee, }: GetTopUpOptions) => Promise<{
    isDone: boolean;
    successMessage: string;
    currentAmount?: undefined;
    shouldTopUp?: undefined;
    prevNativeBalance?: undefined;
} | {
    currentAmount: number;
    shouldTopUp: boolean;
    prevNativeBalance: number;
    isDone?: undefined;
    successMessage?: undefined;
}>;
export declare const calculateAmountWithFee: (amount: number, fee: number, percentToAdd?: number) => number;
export {};
