import { PropsWithChildren } from 'react';
import { WalletConnector } from '../core/WalletConnector';
import { BBNConfig, BTCConfig, ETHConfig, ExternalConnector, HashMap, IBBNProvider, IBTCProvider, IETHProvider, IProvider } from '../core/types';
interface ChainConfig<K extends string = string, P extends IProvider = IProvider, C = any> {
    chain: K;
    name?: string;
    icon?: string;
    config: C;
    connectors?: ExternalConnector<P>[];
}
export type ChainConfigArr = (ChainConfig<"BTC", IBTCProvider, BTCConfig> | ChainConfig<"BBN", IBBNProvider, BBNConfig> | ChainConfig<"ETH", IETHProvider, ETHConfig>)[];
interface ProviderProps {
    persistent: boolean;
    storage: HashMap;
    context: any;
    config: Readonly<ChainConfigArr>;
    onError?: (e: Error) => void;
    disabledWallets?: string[];
    requiredChains?: ("BTC" | "BBN" | "ETH")[];
}
export interface Connectors {
    BTC: WalletConnector<"BTC", IBTCProvider, BTCConfig> | null;
    BBN: WalletConnector<"BBN", IBBNProvider, BBNConfig> | null;
    ETH: WalletConnector<"ETH", IETHProvider, ETHConfig> | null;
}
export declare const Context: import('react').Context<Connectors>;
export declare function ChainProvider({ persistent, storage, children, context, config, onError, disabledWallets, requiredChains, }: PropsWithChildren<ProviderProps>): import("react/jsx-runtime").JSX.Element;
export declare const useChainProviders: () => Connectors;
export {};
