import type { W3mFrameProvider } from '@web3modal/wallet'; export interface IWeb3Config { provider: ProviderType; metadata: Metadata; } export type Address = `0x${string}`; export type ProviderType = { injected?: Provider; coinbase?: Provider; email?: boolean; EIP6963?: boolean; metadata: Metadata; }; export interface RequestArguments { readonly method: string; readonly params?: readonly unknown[] | object; } export interface Provider { request: (args: RequestArguments) => Promise; on: (event: string, listener: (data: T) => void) => void; removeListener: (event: string, listener: (data: T) => void) => void; emit: (event: string) => void; } export type Metadata = { name: string; description: string; url: string; icons: string[]; }; export type CombinedProvider = W3mFrameProvider & Provider; export type SimpleChain = { rpcUrl: string; explorerUrl: string; currency: string; name: string; chainId: number; }; export type Chain = { chainId: number; blockExplorerUrls?: string[]; chainName: string; iconUrls?: string[]; nativeCurrency: { decimals: number; name?: string; symbol: string; }; rpcUrls: string[]; }; export declare function ensureChainType(chains: Chain[] | SimpleChain[]): Chain[];