import { ProtocolType } from '@hyperlane-xyz/utils';
import { KnownProtocolType, ProviderType } from '../providers/ProviderType.js';
import { DeployableTokenType, TokenType } from './config.js';
export declare enum TokenStandard {
    ERC20 = "ERC20",
    ERC721 = "ERC721",
    EvmNative = "EvmNative",
    EvmHypNative = "EvmHypNative",
    EvmHypCollateral = "EvmHypCollateral",
    EvmHypOwnerCollateral = "EvmHypOwnerCollateral",
    EvmHypRebaseCollateral = "EvmHypRebaseCollateral",
    EvmHypCollateralFiat = "EvmHypCollateralFiat",
    EvmHypSynthetic = "EvmHypSynthetic",
    EvmHypSyntheticRebase = "EvmHypSyntheticRebase",
    EvmHypXERC20 = "EvmHypXERC20",
    EvmHypXERC20Lockbox = "EvmHypXERC20Lockbox",
    EvmHypVSXERC20 = "EvmHypVSXERC20",
    EvmHypVSXERC20Lockbox = "EvmHypVSXERC20Lockbox",
    EvmM0PortalLite = "EvmM0PortalLite",
    EvmM0Portal = "EvmM0Portal",
    EvmHypEverclearCollateral = "EvmHypEverclearCollateral",
    EvmHypEverclearEth = "EvmHypEverclearEth",
    EvmHypCrossCollateralRouter = "EvmHypCrossCollateralRouter",
    SealevelSpl = "SealevelSpl",
    SealevelSpl2022 = "SealevelSpl2022",
    SealevelNative = "SealevelNative",
    SealevelHypNative = "SealevelHypNative",
    SealevelHypCollateral = "SealevelHypCollateral",
    SealevelHypSynthetic = "SealevelHypSynthetic",
    SealevelHypCrossCollateral = "SealevelHypCrossCollateral",
    CosmosIcs20 = "CosmosIcs20",
    CosmosIcs721 = "CosmosIcs721",
    CosmosNative = "CosmosNative",
    CosmosIbc = "CosmosIbc",
    CW20 = "CW20",
    CWNative = "CWNative",
    CW721 = "CW721",
    CwHypNative = "CwHypNative",
    CwHypCollateral = "CwHypCollateral",
    CwHypSynthetic = "CwHypSynthetic",
    CosmNativeHypCollateral = "CosmosNativeHypCollateral",
    CosmNativeHypSynthetic = "CosmosNativeHypSynthetic",
    StarknetNative = "StarknetNative",
    StarknetHypNative = "StarknetHypNative",
    StarknetHypCollateral = "StarknetHypCollateral",
    StarknetHypSynthetic = "StarknetHypSynthetic",
    RadixNative = "RadixNative",
    RadixHypCollateral = "RadixHypCollateral",
    RadixHypSynthetic = "RadixHypSynthetic",
    AleoNative = "AleoNative",
    AleoHypNative = "AleoHypNative",
    AleoHypCollateral = "AleoHypCollateral",
    AleoHypSynthetic = "AleoHypSynthetic",
    TRC20 = "TRC20",
    TRC721 = "TRC721",
    TronNative = "TronNative",
    TronHypNative = "TronHypNative",
    TronHypCollateral = "TronHypCollateral",
    TronHypOwnerCollateral = "TronHypOwnerCollateral",
    TronHypRebaseCollateral = "TronHypRebaseCollateral",
    TronHypCollateralFiat = "TronHypCollateralFiat",
    TronHypSynthetic = "TronHypSynthetic",
    TronHypSyntheticRebase = "TronHypSyntheticRebase",
    TronHypXERC20 = "TronHypXERC20",
    TronHypXERC20Lockbox = "TronHypXERC20Lockbox",
    TronHypVSXERC20 = "TronHypVSXERC20",
    TronHypVSXERC20Lockbox = "TronHypVSXERC20Lockbox",
    TronM0PortalLite = "TronM0PortalLite",
    TronHypEverclearCollateral = "TronHypEverclearCollateral",
    TronHypEverclearEth = "TronHypEverclearEth",
    TronHypCrossCollateralRouter = "TronHypCrossCollateralRouter"
}
export declare const TOKEN_STANDARD_TO_PROTOCOL: Record<TokenStandard, KnownProtocolType>;
export declare const TOKEN_STANDARD_TO_PROVIDER_TYPE: Record<TokenStandard, ProviderType>;
export declare const TOKEN_NFT_STANDARDS: TokenStandard[];
export declare const TOKEN_COLLATERALIZED_STANDARDS: TokenStandard[];
export declare const TOKEN_CROSS_COLLATERAL_STANDARDS: Set<TokenStandard>;
export declare const XERC20_STANDARDS: TokenStandard[];
export declare const LOCKBOX_STANDARDS: TokenStandard[];
export declare const ERC4626_COLLATERAL_STANDARDS: TokenStandard[];
export declare const MINT_LIMITED_STANDARDS: TokenStandard[];
export declare const TOKEN_HYP_STANDARDS: TokenStandard[];
export declare const TOKEN_MULTI_CHAIN_STANDARDS: TokenStandard[];
export declare const TOKEN_COSMWASM_STANDARDS: TokenStandard[];
export declare const tokenTypeToStandard: (protocolType: ProtocolType, tokenType: TokenType) => TokenStandard;
export declare const EVM_TOKEN_TYPE_TO_STANDARD: Record<DeployableTokenType, TokenStandard>;
export declare const COSMOS_NATIVE_SUPPORTED_TOKEN_TYPES: readonly ["collateral", "synthetic"];
type CosmosNativeSupportedTokenTypes = (typeof COSMOS_NATIVE_SUPPORTED_TOKEN_TYPES)[number];
export declare const COSMOS_NATIVE_TOKEN_TYPE_TO_STANDARD: Record<CosmosNativeSupportedTokenTypes, TokenStandard>;
export declare const SEALEVEL_SUPPORTED_TOKEN_TYPES: readonly ["collateral", "synthetic", "native", "crossCollateral"];
type SealevelSupportedTokenTypes = (typeof SEALEVEL_SUPPORTED_TOKEN_TYPES)[number];
export declare const SEALEVEL_TOKEN_TYPE_TO_STANDARD: Record<SealevelSupportedTokenTypes, TokenStandard>;
export declare const STARKNET_SUPPORTED_TOKEN_TYPES: readonly ["collateral", "native", "synthetic"];
type StarknetSupportedTokenTypes = (typeof STARKNET_SUPPORTED_TOKEN_TYPES)[number];
export declare const STARKNET_TOKEN_TYPE_TO_STANDARD: Record<StarknetSupportedTokenTypes, TokenStandard>;
export declare const RADIX_SUPPORTED_TOKEN_TYPES: readonly ["collateral", "synthetic"];
type RadixSupportedTokenTypes = (typeof RADIX_SUPPORTED_TOKEN_TYPES)[number];
export declare const RADIX_TOKEN_TYPE_TO_STANDARD: Record<RadixSupportedTokenTypes, TokenStandard>;
export declare const ALEO_SUPPORTED_TOKEN_TYPES: readonly ["native", "collateral", "synthetic"];
type AleoSupportedTokenTypes = (typeof ALEO_SUPPORTED_TOKEN_TYPES)[number];
export declare const ALEO_TOKEN_TYPE_TO_STANDARD: Record<AleoSupportedTokenTypes, TokenStandard>;
export declare const TRON_TOKEN_TYPE_TO_STANDARD: Record<DeployableTokenType, TokenStandard>;
export declare const PROTOCOL_TO_NATIVE_STANDARD: Record<KnownProtocolType, TokenStandard>;
export declare const PROTOCOL_TO_HYP_NATIVE_STANDARD: Record<KnownProtocolType, TokenStandard>;
export {};
//# sourceMappingURL=TokenStandard.d.ts.map