import { Opaque, SafeDictionary } from 'ts-essentials';
export declare enum NetworkID {
    MAINNET = 1,
    ROPSTEN = 3,
    RINKEBY = 4,
    GOERLI = 5,
    KOVAN = 42,
    SEPOLIA = 11155111,
    BSC = 56,
    BSC_TESTNET = 97,
    HECO = 128,
    HECO_TESTNET = 256,
    OPERA = 250,
    FTM_TESTNET = 4002,
    OPTIMISTIC_ETHEREUM = 10,
    OPTIMISTIC_KOVAN = 69,
    POLYGON = 137,
    POLYGON_MUMBAI = 80001,
    ARBITRUM_ONE = 42161,
    ARBITRUM_TESTNET = 421611,
    AVALANCHE = 43114,
    AVALANCHE_FUJI_TESTNET = 43113
}
export declare const networkIDtoSymbol: {
    readonly 1: "mainnet";
    readonly 3: "ropsten";
    readonly 4: "rinkeby";
    readonly 5: "goerli";
    readonly 11155111: "sepolia";
    readonly 42: "kovan";
    readonly 56: "bsc";
    readonly 97: "bscTestnet";
    readonly 128: "heco";
    readonly 256: "hecoTestnet";
    readonly 250: "opera";
    readonly 4002: "ftmTestnet";
    readonly 10: "optimism";
    readonly 69: "optimismKovan";
    readonly 137: "polygon";
    readonly 80001: "polygonMumbai";
    readonly 42161: "arbitrumOne";
    readonly 421611: "arbitrumTestnet";
    readonly 43114: "avalanche";
    readonly 43113: "fuji";
};
export declare type UserProvidedNetworkSymbol = Opaque<string, 'UserProvidedNetworkSymbol'>;
export declare const UserProvidedNetworkSymbol: (s: string) => UserProvidedNetworkSymbol;
export declare function isUserProvidedNetwork(symbol: NetworkSymbol, userNetworks: Record<UserProvidedNetworkSymbol, string | number | undefined>): symbol is UserProvidedNetworkSymbol;
export declare type PredefinedNetworkSymbol = typeof networkIDtoSymbol[keyof typeof networkIDtoSymbol];
export declare type NetworkSymbol = UserProvidedNetworkSymbol | PredefinedNetworkSymbol;
export declare const symbolToNetworkId: SafeDictionary<NetworkID, PredefinedNetworkSymbol>;
