import { Token } from '@x-swap-protocol/sdk-core';
import { ChainId } from '../util';
import { IMulticallProvider } from './multicall-provider';
import { ProviderConfig } from './provider';
/**
 * Provider for getting token data.
 *
 * @export
 * @interface ITokenProvider
 */
export interface ITokenProvider {
    /**
     * Gets the token at each address. Any addresses that are not valid ERC-20 are ignored.
     *
     * @param addresses The token addresses to get.
     * @param [providerConfig] The provider config.
     * @returns A token accessor with methods for accessing the tokens.
     */
    getTokens(addresses: string[], providerConfig?: ProviderConfig): Promise<TokenAccessor>;
}
export type TokenAccessor = {
    getTokenByAddress(address: string): Token | undefined;
    getTokenBySymbol(symbol: string): Token | undefined;
    getAllTokens: () => Token[];
};
export declare const USDT_XDC_APOTHEM: Token;
export declare const USDC_XDC_APOTHEM: Token;
export declare const DAI_XDC_APOTHEM: Token;
export declare const WBTC_XDC_APOTHEM: Token;
export declare const XSP_XDC: Token;
export declare const XTT_XDC: Token;
export declare const SRX_XDC: Token;
export declare const PLI_XDC: Token;
export declare const EURS_XDC: Token;
export declare const PRNT_XDC: Token;
export declare const USDT_XDC: Token;
export declare const FTHM_XDC: Token;
export declare const FXD_XDC: Token;
export declare const WXDC_XDC: Token;
export declare const DOPU_XDC: Token;
export declare const pstXDC_XDC: Token;
export declare const GAMA_XDC: Token;
export declare const BTCx_XDC: Token;
export declare const BBB_XDC: Token;
export declare const LBT_XDC: Token;
export declare const CGO_XDC: Token;
export declare const CHUPAV2_XDC: Token;
export declare const WTK_XDC: Token;
export declare const CIFI_XDC: Token;
export declare const REFI_XDC: Token;
export declare const BIC_XDC: Token;
export declare const PWM3_XDC: Token;
export declare const XZO_XDC: Token;
export declare class TokenProvider implements ITokenProvider {
    private chainId;
    protected multicall2Provider: IMulticallProvider;
    constructor(chainId: ChainId, multicall2Provider: IMulticallProvider);
    getTokens(_addresses: string[], providerConfig?: ProviderConfig): Promise<TokenAccessor>;
}
export declare const DAI_ON: (chainId: ChainId) => Token;
export declare const USDT_ON: (chainId: ChainId) => Token;
export declare const USDC_ON: (chainId: ChainId) => Token;
export declare const WNATIVE_ON: (chainId: ChainId) => Token;
