import { BaseCoin } from './base';
export interface BaseTokenConfig {
    coin: string;
    decimalPlaces: number;
    name: string;
    type: string;
}
export interface BaseNetworkConfig extends BaseTokenConfig {
    network: string;
}
export interface BaseContractAddressConfig extends BaseNetworkConfig {
    tokenContractAddress: string;
}
export type AvaxcTokenConfig = BaseContractAddressConfig;
export type CeloTokenConfig = BaseContractAddressConfig;
export type EthLikeTokenConfig = BaseContractAddressConfig;
export type EosTokenConfig = BaseContractAddressConfig & {
    contractName: string;
    contractAddress: string;
};
export type Erc20TokenConfig = BaseContractAddressConfig;
export type TrxTokenConfig = BaseContractAddressConfig;
export type StellarTokenConfig = BaseNetworkConfig;
export type SolTokenConfig = BaseNetworkConfig & {
    tokenAddress: string;
    contractAddress: string;
};
export type AdaTokenConfig = BaseNetworkConfig & {
    policyId: string;
    assetName: string;
    contractAddress: string;
};
export type AlgoTokenConfig = BaseNetworkConfig & {
    alias?: string;
};
export type OfcTokenConfig = BaseTokenConfig & {
    backingCoin: string;
    isFiat: boolean;
};
export type HbarTokenConfig = BaseNetworkConfig & {
    nodeAccountId: string;
    tokenId: string;
    contractAddress: string;
};
export type XrpTokenConfig = BaseNetworkConfig & {
    issuerAddress: string;
    currencyCode: string;
    domain?: string;
    contractAddress: string;
};
export type SuiTokenConfig = BaseNetworkConfig & {
    packageId: string;
    module: string;
    symbol: string;
    contractAddress: string;
};
export type AptTokenConfig = BaseNetworkConfig & {
    assetId: string;
};
export type AptNFTCollectionConfig = BaseNetworkConfig & {
    nftCollectionId: string;
};
export type Sip10TokenConfig = BaseNetworkConfig & {
    assetId: string;
};
export type TaoTokenConfig = BaseNetworkConfig & {
    subnetId: string;
};
export type PolyxTokenConfig = BaseNetworkConfig & {
    ticker: string;
    assetId: string;
};
export type Nep141TokenConfig = BaseNetworkConfig & {
    contractAddress: string;
    storageDepositAmount: string;
};
export type VetTokenConfig = BaseNetworkConfig & {
    contractAddress: string;
};
export type VetNFTCollectionConfig = BaseNetworkConfig & {
    nftCollectionId: string;
};
export type CosmosTokenConfig = BaseNetworkConfig & {
    denom: string;
};
export type JettonTokenConfig = BaseNetworkConfig & {
    contractAddress: string;
};
export type TokenConfig = Erc20TokenConfig | StellarTokenConfig | OfcTokenConfig | CeloTokenConfig | EthLikeTokenConfig | EosTokenConfig | AvaxcTokenConfig | SolTokenConfig | HbarTokenConfig | AdaTokenConfig | AlgoTokenConfig | TrxTokenConfig | XrpTokenConfig | SuiTokenConfig | AptTokenConfig | AptNFTCollectionConfig | Sip10TokenConfig | Nep141TokenConfig | CosmosTokenConfig | VetTokenConfig | VetNFTCollectionConfig | TaoTokenConfig | PolyxTokenConfig | JettonTokenConfig;
export interface Tokens {
    bitcoin: {
        eth: {
            tokens: Erc20TokenConfig[];
            nfts: EthLikeTokenConfig[];
        };
        xlm: {
            tokens: StellarTokenConfig[];
        };
        algo: {
            tokens: AlgoTokenConfig[];
        };
        ofc: {
            tokens: OfcTokenConfig[];
        };
        celo: {
            tokens: CeloTokenConfig[];
        };
        eos: {
            tokens: EosTokenConfig[];
        };
        avaxc: {
            tokens: AvaxcTokenConfig[];
        };
        polygon: {
            tokens: EthLikeTokenConfig[];
        };
        soneium: {
            tokens: EthLikeTokenConfig[];
        };
        bsc: {
            tokens: EthLikeTokenConfig[];
        };
        arbeth: {
            tokens: EthLikeTokenConfig[];
        };
        opeth: {
            tokens: EthLikeTokenConfig[];
        };
        baseeth: {
            tokens: EthLikeTokenConfig[];
        };
        og: {
            tokens: EthLikeTokenConfig[];
        };
        flow: {
            tokens: EthLikeTokenConfig[];
        };
        lineaeth: {
            tokens: EthLikeTokenConfig[];
        };
        seievm: {
            tokens: EthLikeTokenConfig[];
        };
        coredao: {
            tokens: EthLikeTokenConfig[];
        };
        world: {
            tokens: EthLikeTokenConfig[];
        };
        flr: {
            tokens: EthLikeTokenConfig[];
        };
        sol: {
            tokens: SolTokenConfig[];
        };
        hbar: {
            tokens: HbarTokenConfig[];
        };
        ada: {
            tokens: AdaTokenConfig[];
        };
        trx: {
            tokens: TrxTokenConfig[];
        };
        xrp: {
            tokens: XrpTokenConfig[];
        };
        zketh: {
            tokens: EthLikeTokenConfig[];
        };
        sui: {
            tokens: SuiTokenConfig[];
        };
        tao: {
            tokens: TaoTokenConfig[];
        };
        polyx: {
            tokens: PolyxTokenConfig[];
        };
        bera: {
            tokens: EthLikeTokenConfig[];
        };
        apt: {
            tokens: AptTokenConfig[];
            nftCollections: AptNFTCollectionConfig[];
        };
        stx: {
            tokens: Sip10TokenConfig[];
        };
        near: {
            tokens: Nep141TokenConfig[];
        };
        vet: {
            tokens: VetTokenConfig[];
            nftCollections: VetNFTCollectionConfig[];
        };
        cosmos: {
            tokens: CosmosTokenConfig[];
        };
        ton: {
            tokens: JettonTokenConfig[];
        };
    };
    testnet: {
        eth: {
            tokens: Erc20TokenConfig[];
            nfts: EthLikeTokenConfig[];
        };
        xlm: {
            tokens: StellarTokenConfig[];
        };
        algo: {
            tokens: AlgoTokenConfig[];
        };
        ofc: {
            tokens: OfcTokenConfig[];
        };
        celo: {
            tokens: CeloTokenConfig[];
        };
        bsc: {
            tokens: EthLikeTokenConfig[];
        };
        eos: {
            tokens: EosTokenConfig[];
        };
        avaxc: {
            tokens: AvaxcTokenConfig[];
        };
        polygon: {
            tokens: EthLikeTokenConfig[];
        };
        soneium: {
            tokens: EthLikeTokenConfig[];
        };
        arbeth: {
            tokens: EthLikeTokenConfig[];
        };
        opeth: {
            tokens: EthLikeTokenConfig[];
        };
        baseeth: {
            tokens: EthLikeTokenConfig[];
        };
        og: {
            tokens: EthLikeTokenConfig[];
        };
        flow: {
            tokens: EthLikeTokenConfig[];
        };
        lineaeth: {
            tokens: EthLikeTokenConfig[];
        };
        seievm: {
            tokens: EthLikeTokenConfig[];
        };
        sol: {
            tokens: SolTokenConfig[];
        };
        hbar: {
            tokens: HbarTokenConfig[];
        };
        ada: {
            tokens: AdaTokenConfig[];
        };
        trx: {
            tokens: TrxTokenConfig[];
        };
        xrp: {
            tokens: XrpTokenConfig[];
        };
        zketh: {
            tokens: EthLikeTokenConfig[];
        };
        sui: {
            tokens: SuiTokenConfig[];
        };
        tao: {
            tokens: TaoTokenConfig[];
        };
        polyx: {
            tokens: PolyxTokenConfig[];
        };
        bera: {
            tokens: EthLikeTokenConfig[];
        };
        coredao: {
            tokens: EthLikeTokenConfig[];
        };
        world: {
            tokens: EthLikeTokenConfig[];
        };
        flr: {
            tokens: EthLikeTokenConfig[];
        };
        apt: {
            tokens: AptTokenConfig[];
            nftCollections: AptNFTCollectionConfig[];
        };
        stx: {
            tokens: Sip10TokenConfig[];
        };
        near: {
            tokens: Nep141TokenConfig[];
        };
        vet: {
            tokens: VetTokenConfig[];
            nftCollections: VetNFTCollectionConfig[];
        };
        cosmos: {
            tokens: CosmosTokenConfig[];
        };
        ton: {
            tokens: JettonTokenConfig[];
        };
    };
}
export interface AmsTokenConfig {
    id: string;
    name: string;
    fullName: string;
    family: string;
    decimalPlaces: number;
    asset: string;
    features?: string[];
    prefix?: string;
    suffix?: string;
    network?: unknown;
    primaryKeyCurve?: string;
    contractAddress?: string;
    tokenAddress?: string;
    nftCollectionId?: string;
    alias?: string;
    contractName?: string;
    tokenId?: string;
    packageId?: string;
    module?: string;
    symbol?: string;
    issuerAddress?: string;
    currecnycode?: string;
    domain?: string;
    assetId?: string;
    denom?: string;
    isToken: boolean;
    baseUnit?: string;
    kind?: string;
    subnetId?: string;
    ticker?: string;
    programId?: string;
    addressCoin?: string;
    assetName?: string;
    policyId?: string;
}
export interface TrimmedAmsNetworkConfig {
    name: string;
}
export interface TrimmedAmsTokenConfig extends Omit<AmsTokenConfig, 'features' | 'network'> {
    network: TrimmedAmsNetworkConfig;
    excludedFeatures?: string[];
    additionalFeatures?: string[];
}
export declare const ethGasConfigs: {
    minimumGasPrice: number;
    defaultGasPrice: number;
    maximumGasPrice: number;
    defaultGasLimit: number;
    defaultGasLimitTokenSend: number;
    minimumGasLimit: number;
    maximumGasLimit: number;
    newEthLikeCoinsMinGasLimit: number;
    opethGasL1Fees: number;
};
export declare const getFormattedAlgoTokens: (customCoinMap?: import("./map").CoinMap) => AlgoTokenConfig[];
export declare const getFormattedTokens: (coinMap?: import("./map").CoinMap) => Tokens;
export declare const tokens: Tokens;
export declare const formattedAlgoTokens: AlgoTokenConfig[];
export declare const mainnetTokens: {
    [x: string]: boolean;
};
export declare const testnetTokens: {
    [x: string]: boolean;
};
/**
 * Get formatted token configuration for a single coin
 * @param coin - Static Base coin instance
 * @returns The formatted token configuration for the coin, or undefined if not supported
 */
export declare function getFormattedTokenConfigForCoin(coin: Readonly<BaseCoin>): TokenConfig | undefined;
//# sourceMappingURL=tokenConfig.d.ts.map