import { Token, TokenObject } from './token';
import { TokenAmount, TokenAmountObject } from './token-amount';
export declare const mainnetTokens: Record<"USDC" | "USDT" | "ETH" | "WETH" | "WBTC" | "wstETH" | "DAI" | "LINK" | "weETH" | "rETH" | "AAVE" | "cbETH" | "RPL" | "LDO" | "UNI" | "BAL" | "LUSD" | "CRV" | "FRAX" | "crvUSD" | "EURS" | "ARB" | "sUSD" | "1INCH" | "sDAI" | "stETH" | "USDe" | "MKR" | "PYUSD" | "ENS" | "SNX" | "osETH" | "MaticX" | "stMATIC" | "GHST" | "USDA" | "WOETH" | "ezETH" | "mTBILL" | "apxETH" | "Re7USDA" | "rsETH" | "GHO" | "COMP" | "FEI" | "STG" | "USDS" | "SKY" | "POL", Token>;
export declare const optimismTokens: Record<"USDC" | "USDC.e" | "USDT" | "ETH" | "WETH" | "WBTC" | "wstETH" | "DAI" | "LINK" | "rETH" | "AAVE" | "LDO" | "UNI" | "BAL" | "LUSD" | "CRV" | "FRAX" | "crvUSD" | "sUSD" | "SNX" | "OP", Token>;
export declare const bnbTokens: Record<"USDC" | "USDT" | "ETH" | "DAI" | "LINK" | "AAVE" | "UNI" | "FRAX" | "crvUSD" | "wBETH" | "BTCB" | "1INCH" | "FDUSD" | "Cake" | "BNB" | "WBNB", Token>;
export declare const gnosisTokens: Record<"USDC" | "USDC.e" | "WETH" | "wstETH" | "LINK" | "UNI" | "BAL" | "crvUSD" | "xDAI" | "WXDAI" | "sDAI" | "GNO" | "EURe", Token>;
export declare const polygonTokens: Record<"USDC" | "USDC.e" | "USDT" | "WETH" | "WBTC" | "wstETH" | "DAI" | "LINK" | "rETH" | "AAVE" | "RPL" | "LDO" | "UNI" | "BAL" | "LUSD" | "CRV" | "FRAX" | "crvUSD" | "EURS" | "1INCH" | "MKR" | "SNX" | "MaticX" | "stMATIC" | "GHST" | "POL" | "WPOL" | "fxcbETH", Token>;
export declare const zksyncTokens: Record<"USDC" | "USDC.e" | "USDT" | "ETH" | "WETH" | "WBTC" | "wstETH" | "DAI" | "LINK" | "weETH" | "UNI" | "LUSD", Token>;
export declare const metisTokens: Record<"WETH" | "WBTC" | "m.USDC" | "m.USDT" | "METIS" | "WMETIS" | "m.DAI", Token>;
export declare const polygonZkevmTokens: Record<"USDC" | "USDT" | "WETH" | "WBTC" | "wstETH" | "DAI" | "LINK" | "rETH" | "AAVE" | "Cake" | "stMATIC" | "MATIC" | "USDC.E", Token>;
export declare const baseTokens: Record<"USDC" | "ETH" | "WETH" | "wstETH" | "DAI" | "rETH" | "cbETH" | "BAL" | "crvUSD" | "USDbC" | "weETH.base", Token>;
export declare const iotaTokens: Record<"USDC.e" | "USDT" | "WETH" | "IOTA" | "wIOTA", Token>;
export declare const arbitrumTokens: Record<"USDC" | "USDC.e" | "USDT" | "ETH" | "WETH" | "WBTC" | "wstETH" | "DAI" | "LINK" | "weETH" | "rETH" | "AAVE" | "cbETH" | "RPL" | "LDO" | "UNI" | "BAL" | "LUSD" | "CRV" | "FRAX" | "crvUSD" | "EURS" | "ARB" | "sUSD" | "GMX" | "gmBTC-USD" | "gmETH-USD", Token>;
export declare const avalancheTokens: Record<"USDC" | "USDC.e" | "BAL" | "CRV" | "FRAX" | "GMX" | "USDt" | "USDT.e" | "WETH.e" | "WBTC.e" | "BTC.b" | "WAVAX" | "AVAX" | "sAVAX" | "DAI.e" | "LINK.e" | "AAVE.e" | "UNI.e" | "SNX.e" | "1INCH.e", Token>;
export declare function toTokenMap<T extends string>(tokenObjectMap: Record<string, TokenObject>): Record<T, Token>;
export declare function getNativeToken(chainId: number): Token;
export declare function getWrappedNativeToken(chainId: number): Token;
export declare function sortByAddress<T extends Token | TokenObject | TokenAmount | TokenAmountObject>(tokenOrAmounts: T[]): T[];
export declare function getCustomTokens(chainId: number): Record<string, Token>;
export declare function getUnifiedTokens(chainId: number): Promise<Record<string, Token>>;
export type TokenArray = Token[];
export type TokenPairArray = [Token, Token][];
export type TokenRecord = Record<string, Token[]>;
export type TokenPairRecord = Record<string, [Token, Token][]>;
export type TokenFormat = TokenArray | TokenPairArray | TokenRecord | TokenPairRecord;
export declare function unifyTokensByCustomTokens<T extends TokenFormat>(chainId: number, tokens: T): T;
export declare function unifyTokens<T extends TokenFormat>(chainId: number, tokens: T): Promise<T>;
