import type { Currency, Families } from "@ledgerhq/wallet-api-client";
import type { CosmosChainsAssets } from "@sk-widget/providers/cosmos/chains/types";
import { CosmosNetworks, EvmNetworks, MiscNetworks, SubstrateNetworks } from "@stakekit/common";
import type { Chain } from "@stakekit/rainbowkit";
import type { Chain as ChainRainbowKit } from "@stakekit/rainbowkit";
export declare const supportedCosmosChains: readonly [CosmosNetworks.Akash, CosmosNetworks.Cosmos, CosmosNetworks.Juno, CosmosNetworks.Kava, CosmosNetworks.Osmosis, CosmosNetworks.Stargaze, CosmosNetworks.Onomy, CosmosNetworks.Persistence, CosmosNetworks.Axelar, CosmosNetworks.Quicksilver, CosmosNetworks.Agoric, CosmosNetworks.BandProtocol, CosmosNetworks.Bitsong, CosmosNetworks.Chihuahua, CosmosNetworks.Comdex, CosmosNetworks.Crescent, CosmosNetworks.Cronos, CosmosNetworks.Cudos, CosmosNetworks.FetchAi, CosmosNetworks.GravityBridge, CosmosNetworks.IRISnet, CosmosNetworks.KiNetwork, CosmosNetworks.MarsProtocol, CosmosNetworks.Regen, CosmosNetworks.Secret, CosmosNetworks.Sentinel, CosmosNetworks.Sommelier, CosmosNetworks.Teritori, CosmosNetworks.Umee, CosmosNetworks.Coreum, CosmosNetworks.Desmos, CosmosNetworks.Dydx, CosmosNetworks.Injective, CosmosNetworks.Sei, CosmosNetworks.Mantra];
export type SupportedCosmosChains = (typeof supportedCosmosChains)[number];
export type CosmosChainsMap = {
    [Key in SupportedCosmosChains]: {
        type: "cosmos";
        skChainName: Key;
        wagmiChain: Chain;
        chain: CosmosChainsAssets;
    };
};
declare const supportedEVMChains: readonly [EvmNetworks.AvalancheC, EvmNetworks.Arbitrum, EvmNetworks.Binance, EvmNetworks.Celo, EvmNetworks.Ethereum, EvmNetworks.EthereumGoerli, EvmNetworks.Harmony, EvmNetworks.Optimism, EvmNetworks.Polygon, EvmNetworks.Viction, EvmNetworks.EthereumHolesky, EvmNetworks.Base, EvmNetworks.Linea, EvmNetworks.Core, EvmNetworks.Sonic];
type SupportedEvmChain = (typeof supportedEVMChains)[number];
export type EvmChainsMap = {
    [Key in SupportedEvmChain]: {
        type: "evm";
        skChainName: Key;
        wagmiChain: Chain;
    };
};
declare const supportedMiscChains: readonly [MiscNetworks.Near, MiscNetworks.Tezos, MiscNetworks.Solana, MiscNetworks.Tron, MiscNetworks.Ton];
type SupportedMiscChains = (typeof supportedMiscChains)[number];
export type MiscChainsMap = {
    [Key in SupportedMiscChains]: {
        type: "misc";
        skChainName: Key;
        wagmiChain: Chain;
    };
};
declare const supportedSubstrateChains: readonly [SubstrateNetworks.Polkadot];
type SupportedSubstrateChains = (typeof supportedSubstrateChains)[number];
export type SubstrateChainsMap = {
    [Key in SupportedSubstrateChains]: {
        type: "substrate";
        skChainName: Key;
        wagmiChain: Chain;
    };
};
export declare const isEvmChain: (chain: string) => chain is SupportedEvmChain;
export declare const isSolanaChain: (chain: string) => chain is SupportedMiscChains;
export declare const isTonChain: (chain: string) => chain is SupportedMiscChains;
export declare const isSupportedChain: (chain: string) => chain is SupportedSKChains;
export type SupportedSKChains = SupportedCosmosChains | SupportedEvmChain | SupportedMiscChains | SupportedSubstrateChains;
/**
 * LEDGER LIVE
 */
export type SupportedLedgerLiveFamilies = Extract<Families, "ethereum" | "near" | "tezos" | "solana" | "cosmos" | "celo" | "tron" | "polkadot" | "ton">;
export declare const supportedLedgerFamiliesWithCurrency: {
    readonly near: {
        readonly "*": {
            readonly currencyId: "near";
            readonly family: "near";
            readonly skChainName: MiscNetworks.Near;
        };
    };
    readonly tezos: {
        readonly "*": {
            readonly currencyId: "tezos";
            readonly family: "tezos";
            readonly skChainName: MiscNetworks.Tezos;
        };
    };
    readonly solana: {
        readonly "*": {
            readonly currencyId: "solana";
            readonly family: "solana";
            readonly skChainName: MiscNetworks.Solana;
        };
    };
    readonly tron: {
        readonly "*": {
            readonly currencyId: "tron";
            readonly family: "tron";
            readonly skChainName: MiscNetworks.Tron;
        };
    };
    readonly ton: {
        readonly "*": {
            readonly currencyId: "ton";
            readonly family: "ton";
            readonly skChainName: MiscNetworks.Ton;
        };
    };
    readonly polkadot: {
        readonly "*": {
            readonly currencyId: "polkadot";
            readonly family: "polkadot";
            readonly skChainName: SubstrateNetworks.Polkadot;
        };
    };
    readonly celo: {
        readonly "*": {
            readonly currencyId: "celo";
            readonly family: "celo";
            readonly skChainName: EvmNetworks.Celo;
        };
    };
    readonly ethereum: {
        readonly ethereum: {
            readonly currencyId: "ethereum";
            readonly family: "ethereum";
            readonly skChainName: EvmNetworks.Ethereum;
        };
        readonly polygon: {
            readonly currencyId: "polygon";
            readonly family: "ethereum";
            readonly skChainName: EvmNetworks.Polygon;
        };
        readonly arbitrum: {
            readonly currencyId: "arbitrum";
            readonly family: "ethereum";
            readonly skChainName: EvmNetworks.Arbitrum;
        };
        readonly optimism: {
            readonly currencyId: "optimism";
            readonly family: "ethereum";
            readonly skChainName: EvmNetworks.Optimism;
        };
        readonly avalanche_c_chain: {
            readonly currencyId: "avalanche_c_chain";
            readonly family: "ethereum";
            readonly skChainName: EvmNetworks.AvalancheC;
        };
        readonly ethereum_holesky: {
            readonly currencyId: "ethereum_holesky";
            readonly family: "ethereum";
            readonly skChainName: EvmNetworks.EthereumHolesky;
        };
        readonly bsc: {
            readonly currencyId: "bsc";
            readonly family: "ethereum";
            readonly skChainName: EvmNetworks.Binance;
        };
    };
    readonly cosmos: {
        readonly cosmos: {
            readonly currencyId: "cosmos";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Cosmos;
        };
        readonly crypto_org: {
            readonly currencyId: "crypto_org";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Cronos;
        };
        readonly osmo: {
            readonly currencyId: "osmo";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Osmosis;
        };
        readonly coreum: {
            readonly currencyId: "coreum";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Coreum;
        };
        readonly axelar: {
            readonly currencyId: "axelar";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Axelar;
        };
        readonly stargaze: {
            readonly currencyId: "stargaze";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Stargaze;
        };
        readonly secret_network: {
            readonly currencyId: "secret_network";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Secret;
        };
        readonly umee: {
            readonly currencyId: "umee";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Umee;
        };
        readonly desmos: {
            readonly currencyId: "desmos";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Desmos;
        };
        readonly onomy: {
            readonly currencyId: "onomy";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Onomy;
        };
        readonly quicksilver: {
            readonly currencyId: "quicksilver";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Quicksilver;
        };
        readonly persistence: {
            readonly currencyId: "persistence";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Persistence;
        };
        readonly dydx: {
            readonly currencyId: "dydx";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Dydx;
        };
        readonly injective: {
            readonly currencyId: "injective";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Injective;
        };
        readonly sei: {
            readonly currencyId: "sei";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Sei;
        };
        readonly mantra: {
            readonly currencyId: "mantra";
            readonly family: "cosmos";
            readonly skChainName: CosmosNetworks.Mantra;
        };
    };
};
export declare const ledgerChainPriority: Map<SupportedSKChains, number>;
export type SupportedLedgerFamiliesWithCurrency = Record<SupportedLedgerLiveFamilies, Record<Currency["id"], {
    family: SupportedLedgerLiveFamilies;
    currencyId: Currency["id"];
    skChainName: SupportedSKChains;
}>>;
export type SupportedSKChainsType = {
    chainName: SupportedSKChains;
    chainIcon?: ChainRainbowKit["iconUrl"];
};
export {};
