import { BigNumber } from '@ethersproject/bignumber';
import { Contract } from '@ethersproject/contracts';
import { JsonRpcSigner, TransactionResponse, Web3Provider } from '@ethersproject/providers';
import { BridgeChain, BridgeCurrency, Chain, ChainId, Currency, CurrencyAmount, ElixirTrade, Fraction, JSBI, NetworkType, NumberType, Percent, Price, Token, TokenAmount, Trade } from '@envanik/sdk';
import { Bound } from 'src/state/pmint/elixir/atom';
import { TokenAddressMap } from '../state/plists/hooks';
export declare function isAddress(value: any): string | false;
export declare function isCosmosAddress(value: string | undefined, bridgeChain: BridgeChain): string | false;
export declare function isDummyAddress(value: any): string | false;
export declare const validateAddressMapping: {
    [chainId in ChainId]: (value: any) => string | false;
};
export declare const checkAddressNetworkBaseMapping: {
    [networkType in NetworkType]: (value: any, bridgeChain: BridgeChain) => string | false;
};
export declare function getEtherscanLink(chainId: ChainId, data: string, type: 'transaction' | 'token' | 'address' | 'block'): string;
export declare function balanceComparator(balanceA?: TokenAmount, balanceB?: TokenAmount): 0 | 1 | -1;
export declare function getTokenComparator(balances: {
    [tokenAddress: string]: TokenAmount | undefined;
}): (tokenA: BridgeCurrency | Token, tokenB: BridgeCurrency | Token) => number;
export declare const useInverter: ({ priceLower, priceUpper, quote, base, invert, }: {
    priceLower?: Price | undefined;
    priceUpper?: Price | undefined;
    quote?: Token | undefined;
    base?: Token | undefined;
    invert?: boolean | undefined;
}) => {
    priceLower?: Price | undefined;
    priceUpper?: Price | undefined;
    quote?: Token | undefined;
    base?: Token | undefined;
};
export declare function filterTokenOrChain(data: (BridgeCurrency | Token | Chain | BridgeChain)[], search: string): (BridgeCurrency | Token | Chain | BridgeChain)[];
export declare const shortenAddressMapping: {
    [chainId in ChainId]: (address: string, chainId: ChainId) => string | false;
};
export declare function shortenAddress(address: string, chainId?: ChainId, chars?: number): string;
export declare function shortenHederaAddress(address: string, _chainId: ChainId): string;
export declare function calculateGasMargin(value: BigNumber): BigNumber;
export declare function calculateTransactionTime(seconds: number): string;
export declare function basisPointsToPercent(num: number): Percent;
export declare function getSigner(library: Web3Provider, account: string): JsonRpcSigner;
export declare function getProviderOrSigner(library: Web3Provider, account?: string): Web3Provider | JsonRpcSigner;
export declare function getContract(address: string, ABI: any, library: Web3Provider, account?: string): Contract | null;
export declare function getRouterContract(chainId: ChainId, library: Web3Provider, account?: string): Contract | null;
export declare function getRouterContractDaaS(chainId: ChainId, library: Web3Provider, account?: string): Contract | null;
export declare function isTokenOnList(defaultTokens: TokenAddressMap, chainId: ChainId, currency?: Currency): boolean;
/**
 * Returns true if the trade requires a confirmation of details before we can submit it
 * @param tradeA trade A
 * @param tradeB trade B
 */
export declare function tradeMeaningfullyDiffers(tradeA: Trade | ElixirTrade, tradeB: Trade | ElixirTrade): boolean;
export declare function getChainByNumber(chainId: ChainId | number): Chain | undefined;
export declare function calculateSlippageAmount(value: CurrencyAmount, slippage: number): [JSBI, JSBI];
export declare function existSarContract(chainId: ChainId): boolean;
export declare function waitForTransaction(tx: TransactionResponse, confirmations?: number, timeout?: number): Promise<void>;
export declare function getBuyUrl(token: Token, chainId?: ChainId): string;
export declare function scrollElementIntoView(element: HTMLElement | null, behavior?: 'smooth' | 'auto'): void;
export declare function isEvmChain(chainId: ChainId | undefined): boolean;
export declare function decimalToFraction(number: number): Fraction;
export declare function capitalizeWord(word?: string): string;
export declare function formatTickPrice({ price, atLimit, direction, placeholder, numberType, }: {
    price: Price | undefined;
    atLimit: {
        [bound in Bound]?: boolean | undefined;
    };
    direction: Bound;
    placeholder?: string;
    numberType?: NumberType;
}): string;
