import { ethers } from 'ethers';
/**
 * Set global RPC configuration from mobile app (highest priority)
 * @param config - RPC URLs configuration
 */
export declare function setGlobalRPCConfig(config: Record<string, string>): void;
/**
 * Set global explorer configuration from mobile app (highest priority)
 * @param config - Explorer URLs configuration
 */
export declare function setGlobalExplorerConfig(config: Record<string, string>): void;
/**
 * Get global RPC configuration
 * @returns Current global RPC configuration
 */
export declare function getGlobalRPCConfig(): Record<string, string>;
/**
 * Get global explorer configuration
 * @returns Current global explorer configuration
 */
export declare function getGlobalExplorerConfig(): Record<string, string>;
/**
 * Clear global configurations
 */
export declare function clearGlobalConfigs(): void;
/**
 * Interface representing chain configuration
 */
export interface ChainConfig {
    name: string;
    rpcUrl: string;
    explorerUrl: string;
    nativeCurrency: {
        name: string;
        symbol: string;
        decimals: number;
    };
    type: 'evm' | 'solana';
}
/**
 * Configuration object containing all supported blockchain networks.
 * Each chain has its RPC URL, explorer URL, native currency details, and type.
 * RPC URLs can be customized via environment variables.
 */
export declare const SUPPORTED_CHAINS: {
    readonly '1': {
        readonly name: "Ethereum";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "Ether";
            readonly symbol: "ETH";
            readonly decimals: 18;
        };
        readonly type: "evm";
    };
    readonly '56': {
        readonly name: "BNB Smart Chain";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "BNB";
            readonly symbol: "BNB";
            readonly decimals: 18;
        };
        readonly type: "evm";
    };
    readonly '137': {
        readonly name: "Polygon";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "MATIC";
            readonly symbol: "MATIC";
            readonly decimals: 18;
        };
        readonly type: "evm";
    };
    readonly '42161': {
        readonly name: "Arbitrum One";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "Ether";
            readonly symbol: "ETH";
            readonly decimals: 18;
        };
        readonly type: "evm";
    };
    readonly '10': {
        readonly name: "OP Mainnet";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "Ether";
            readonly symbol: "ETH";
            readonly decimals: 18;
        };
        readonly type: "evm";
    };
    readonly '8453': {
        readonly name: "Base";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "Ether";
            readonly symbol: "ETH";
            readonly decimals: 18;
        };
        readonly type: "evm";
    };
    readonly solana: {
        readonly name: "Solana";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "SOL";
            readonly symbol: "SOL";
            readonly decimals: 9;
        };
        readonly type: "solana";
    };
    readonly 'solana-devnet': {
        readonly name: "Solana Devnet";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "SOL";
            readonly symbol: "SOL";
            readonly decimals: 9;
        };
        readonly type: "solana";
    };
    readonly '97': {
        readonly name: "BNB Smart Chain Testnet";
        readonly rpcUrl: string;
        readonly explorerUrl: string;
        readonly nativeCurrency: {
            readonly name: "BNB";
            readonly symbol: "tBNB";
            readonly decimals: 18;
        };
        readonly type: "evm";
    };
};
/**
 * Type representing the supported chain IDs.
 * Can be either EVM chain IDs (as strings) or Solana network identifiers.
 */
export type ChainId = keyof typeof SUPPORTED_CHAINS;
/**
 * Type representing the blockchain type.
 * 'evm' for Ethereum-compatible chains, 'solana' for Solana blockchain.
 */
export type ChainType = 'evm' | 'solana';
/**
 * Creates and returns an ethers.js provider for the specified EVM chain.
 * @param chainId - The chain ID to create a provider for (must be an EVM chain)
 * @returns An ethers.js JsonRpcProvider instance for the specified chain
 * @throws Error if the chain is not supported or is not an EVM chain
 */
export declare const getProvider: (chainId: ChainId) => ethers.JsonRpcProvider;
/**
 * BIP-44 derivation paths for different blockchain types.
 * Used for deterministic wallet generation from mnemonics.
 */
export declare const DERIVATION_PATHS: {
    /** Standard EVM derivation path following BIP-44 */
    readonly EVM: "m/44'/60'/0'/0/0";
    /** Solana derivation path following BIP-44 with hardened derivation */
    readonly SOLANA: "m/44'/501'/0'/0'";
};
/**
 * Register a custom chain (new chain not in built-in list)
 * @param chainId - Custom chain ID (e.g., 'custom-1', 'my-chain')
 * @param config - Complete chain configuration
 */
export declare function registerCustomChain(chainId: string, config: ChainConfig): void;
/**
 * Override a built-in chain configuration
 * @param chainId - Built-in chain ID to override
 * @param override - Partial configuration to override (only specify fields to change)
 * @throws Error if chainId is not a built-in chain
 */
export declare function overrideChain(chainId: string, override: Partial<ChainConfig>): void;
/**
 * Override multiple built-in chains at once
 * @param overrides - Object containing multiple chain overrides
 */
export declare function overrideChains(overrides: Record<string, Partial<ChainConfig>>): void;
/**
 * Get chain configuration with priority: Custom > Override > Built-in
 * @param chainId - Chain ID to get configuration for
 * @returns Chain configuration
 * @throws Error if chain is not found
 */
export declare function getChainConfig(chainId: string): ChainConfig;
/**
 * Setup chain configurations with overrides and custom chains
 * @param options - Configuration options
 */
export declare function setupChainConfigs(options: {
    overrides?: Record<string, Partial<ChainConfig>>;
    customChains?: Record<string, ChainConfig>;
}): void;
/**
 * Get all available chains (built-in + custom)
 * @returns Object containing all chain configurations
 */
export declare function getAllAvailableChains(): Record<string, ChainConfig>;
/**
 * Clear all custom chains
 */
export declare function clearCustomChains(): void;
/**
 * Clear all chain overrides
 */
export declare function clearOverrides(): void;
/**
 * Clear override for a specific chain
 * @param chainId - Chain ID to clear override for
 */
export declare function clearOverride(chainId: string): void;
/**
 * Get all custom chains
 * @returns Object containing custom chain configurations
 */
export declare function getCustomChains(): Record<string, ChainConfig>;
/**
 * Get all chain overrides
 * @returns Object containing chain override configurations
 */
export declare function getOverrides(): Record<string, Partial<ChainConfig>>;
