/// <reference types="react" />
import Web3 from "web3";
import Signal from "@equilab/utils/lib/async/signal";
export declare type Web3Chain = {
    chainId: string;
};
export declare type Web3ChainDetails = {
    chainId: string;
    chainName: string;
    nativeCurrency: {
        name: string;
        symbol: string;
        decimals: number;
    };
    rpcUrls: string[];
    blockExplorerUrls?: string[];
    iconUrls?: string[];
};
export declare type Web3ChainOptional = Web3Chain | Web3ChainDetails;
export interface Web3RequestError extends Error {
    code: number;
}
export declare const isWeb3ChainDetails: (chain: Web3ChainDetails | Web3Chain) => chain is Web3ChainDetails;
export declare const isWeb3RequestError: (err: unknown) => err is Web3RequestError;
export declare const EthereumProvider: import("react").FC<{}>;
export declare const useEthereum: () => {
    installed: boolean;
    error: Error | Web3RequestError | undefined;
    accounts: string[] | undefined;
    address: `0x${string}` | undefined;
    chainId: string | undefined;
    web3: Web3 | undefined;
    startOnboarding: () => void;
    connect: () => Signal<string[] | undefined> | undefined;
    sign: (message: string) => Promise<string | undefined>;
    switchChain: (chain: Web3Chain | Web3ChainDetails) => Promise<void>;
};
