export declare const CHAINS: {
    readonly unset: 0;
    readonly solana: 1;
    readonly ethereum: 2;
    readonly terra: 3;
    readonly bsc: 4;
    readonly polygon: 5;
    readonly avalanche: 6;
    readonly oasis: 7;
    readonly algorand: 8;
    readonly aurora: 9;
    readonly fantom: 10;
    readonly karura: 11;
    readonly acala: 12;
    readonly klaytn: 13;
    readonly celo: 14;
    readonly near: 15;
    readonly moonbeam: 16;
    readonly neon: 17;
    readonly terra2: 18;
    readonly injective: 19;
    readonly osmosis: 20;
    readonly sui: 21;
    readonly aptos: 22;
    readonly arbitrum: 23;
    readonly optimism: 24;
    readonly gnosis: 25;
    readonly pythnet: 26;
    readonly xpla: 28;
    readonly btc: 29;
    readonly base: 30;
    readonly wormchain: 3104;
    readonly sepolia: 10002;
};
export declare type ChainName = keyof typeof CHAINS;
export declare type ChainId = typeof CHAINS[ChainName];
/**
 *
 * All the EVM-based chain names that Wormhole supports
 */
export declare type EVMChainName = "ethereum" | "bsc" | "polygon" | "avalanche" | "oasis" | "aurora" | "fantom" | "karura" | "acala" | "klaytn" | "celo" | "moonbeam" | "neon" | "arbitrum" | "optimism" | "gnosis" | "base" | "sepolia";
/**
 *
 * All the Solana-based chain names that Wormhole supports
 */
export declare type SolanaChainName = "solana" | "pythnet";
export declare type CosmWasmChainName = "terra" | "terra2" | "injective" | "xpla";
export declare type TerraChainName = "terra" | "terra2";
export declare type Contracts = {
    core: string | undefined;
    token_bridge: string | undefined;
    nft_bridge: string | undefined;
};
export declare type ChainContracts = {
    [chain in ChainName]: Contracts;
};
export declare type Network = "MAINNET" | "TESTNET" | "DEVNET";
/**
 *
 * Contracts addresses on testnet and mainnet
 */
export declare const CONTRACTS: {
    MAINNET: {
        unset: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        solana: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        ethereum: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        terra: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        bsc: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        polygon: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        avalanche: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        oasis: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        algorand: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        aurora: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        fantom: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        karura: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        acala: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        klaytn: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        celo: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        near: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        injective: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        osmosis: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        aptos: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        sui: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        moonbeam: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        neon: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        terra2: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        arbitrum: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        optimism: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        gnosis: {
            core: string;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        pythnet: {
            core: string;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        xpla: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        btc: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        base: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        wormchain: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        sepolia: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
    };
    TESTNET: {
        unset: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        solana: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        terra: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        ethereum: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        bsc: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        polygon: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        avalanche: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        oasis: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        algorand: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        aurora: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        fantom: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        karura: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        acala: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        klaytn: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        celo: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        near: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        injective: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        osmosis: {
            core: string;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        aptos: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        sui: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        moonbeam: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        neon: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        terra2: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        arbitrum: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        optimism: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        gnosis: {
            core: string;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        pythnet: {
            core: string;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        xpla: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        btc: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        base: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        wormchain: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        sepolia: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
    };
    DEVNET: {
        unset: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        solana: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        terra: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        ethereum: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        bsc: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        polygon: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        avalanche: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        oasis: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        algorand: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        aurora: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        fantom: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        karura: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        acala: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        klaytn: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        celo: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        near: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        injective: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        osmosis: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        aptos: {
            core: string;
            token_bridge: string;
            nft_bridge: string;
        };
        sui: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        moonbeam: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        neon: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        terra2: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        arbitrum: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        optimism: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        gnosis: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        pythnet: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        xpla: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        btc: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        base: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
        wormchain: {
            core: string;
            token_bridge: string;
            nft_bridge: undefined;
        };
        sepolia: {
            core: undefined;
            token_bridge: undefined;
            nft_bridge: undefined;
        };
    };
};
export declare const CHAIN_ID_UNSET: 0;
export declare const CHAIN_ID_SOLANA: 1;
export declare const CHAIN_ID_ETH: 2;
export declare const CHAIN_ID_TERRA: 3;
export declare const CHAIN_ID_BSC: 4;
export declare const CHAIN_ID_POLYGON: 5;
export declare const CHAIN_ID_AVAX: 6;
export declare const CHAIN_ID_OASIS: 7;
export declare const CHAIN_ID_ALGORAND: 8;
export declare const CHAIN_ID_AURORA: 9;
export declare const CHAIN_ID_FANTOM: 10;
export declare const CHAIN_ID_KARURA: 11;
export declare const CHAIN_ID_ACALA: 12;
export declare const CHAIN_ID_KLAYTN: 13;
export declare const CHAIN_ID_CELO: 14;
export declare const CHAIN_ID_NEAR: 15;
export declare const CHAIN_ID_MOONBEAM: 16;
export declare const CHAIN_ID_NEON: 17;
export declare const CHAIN_ID_TERRA2: 18;
export declare const CHAIN_ID_INJECTIVE: 19;
export declare const CHAIN_ID_OSMOSIS: 20;
export declare const CHAIN_ID_SUI: 21;
export declare const CHAIN_ID_APTOS: 22;
export declare const CHAIN_ID_ARBITRUM: 23;
export declare const CHAIN_ID_OPTIMISM: 24;
export declare const CHAIN_ID_GNOSIS: 25;
export declare const CHAIN_ID_PYTHNET: 26;
export declare const CHAIN_ID_XPLA: 28;
export declare const CHAIN_ID_BTC: 29;
export declare const CHAIN_ID_BASE: 30;
export declare const CHAIN_ID_WORMCHAIN: 3104;
export declare const CHAIN_ID_SEPOLIA: 10002;
export declare type ChainIdToName = {
    -readonly [key in keyof typeof CHAINS as typeof CHAINS[key]]: key;
};
export declare const CHAIN_ID_TO_NAME: ChainIdToName;
/**
 *
 * All the EVM-based chain ids that Wormhole supports
 */
export declare type EVMChainId = typeof CHAINS[EVMChainName];
export declare type CosmWasmChainId = typeof CHAINS[CosmWasmChainName];
export declare type TerraChainId = typeof CHAINS[TerraChainName];
/**
 *
 * Returns true when called with a valid chain, and narrows the type in the
 * "true" branch to [[ChainId]] or [[ChainName]] thanks to the type predicate in
 * the return type.
 *
 * A typical use-case might look like
 * ```typescript
 * foo = isChain(c) ? doSomethingWithChainId(c) : handleInvalidCase()
 * ```
 */
export declare function isChain(chain: number | string): chain is ChainId | ChainName;
/**
 *
 * Asserts that the given number or string is a valid chain, and throws otherwise.
 * After calling this function, the type of chain will be narrowed to
 * [[ChainId]] or [[ChainName]] thanks to the type assertion in the return type.
 *
 * A typical use-case might look like
 * ```typescript
 * // c has type 'string'
 * assertChain(c)
 * // c now has type 'ChainName'
 * ```
 */
export declare function assertChain(chain: number | string): asserts chain is ChainId | ChainName;
export declare function toChainId(chainName: ChainName): ChainId;
export declare function toChainName(chainId: ChainId): ChainName;
export declare function toCosmWasmChainId(chainName: CosmWasmChainName): CosmWasmChainId;
export declare function coalesceCosmWasmChainId(chain: CosmWasmChainId | CosmWasmChainName): CosmWasmChainId;
export declare function coalesceChainId(chain: ChainId | ChainName): ChainId;
export declare function coalesceChainName(chain: ChainId | ChainName): ChainName;
/**
 *
 * Returns true when called with an [[EVMChainId]] or [[EVMChainName]], and false otherwise.
 * Importantly, after running this check, the chain's type will be narrowed to
 * either the EVM subset, or the non-EVM subset thanks to the type predicate in
 * the return type.
 */
export declare function isEVMChain(chain: ChainId | ChainName): chain is EVMChainId | EVMChainName;
export declare function isCosmWasmChain(chain: ChainId | ChainName): chain is CosmWasmChainId | CosmWasmChainName;
export declare function isTerraChain(chain: ChainId | ChainName): chain is TerraChainId | TerraChainName;
/**
 *
 * Asserts that the given chain id or chain name is an EVM chain, and throws otherwise.
 * After calling this function, the type of chain will be narrowed to
 * [[EVMChainId]] or [[EVMChainName]] thanks to the type assertion in the return type.
 *
 */
export declare function assertEVMChain(chain: ChainId | ChainName): asserts chain is EVMChainId | EVMChainName;
export declare const WSOL_ADDRESS = "So11111111111111111111111111111111111111112";
export declare const WSOL_DECIMALS = 9;
export declare const MAX_VAA_DECIMALS = 8;
export declare const APTOS_DEPLOYER_ADDRESS = "0108bc32f7de18a5f6e1e7d6ee7aff9f5fc858d0d87ac0da94dd8d2a5d267d6b";
export declare const APTOS_DEPLOYER_ADDRESS_DEVNET = "277fa055b6a73c42c0662d5236c65c864ccbf2d4abd21f174a30c8b786eab84b";
export declare const APTOS_TOKEN_BRIDGE_EMITTER_ADDRESS = "0000000000000000000000000000000000000000000000000000000000000001";
export declare const TERRA_REDEEMED_CHECK_WALLET_ADDRESS = "terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v";
