import { TAddress } from '../models/TAddress'; import { TEth } from '../models/TEth'; import { TGlobal } from '../utils/$ref'; import { class_EventEmitter } from 'atma-utils'; import { IEIP6963Provider } from '../rpc/transports/compatibility/IEIP6963Provider'; interface EIP6963ProviderInfo { rdns?: string; uuid: string; name: string; icon?: string; chainId?: number; } export interface EIP6963ProviderDetail { info: EIP6963ProviderInfo; provider: IEIP6963Provider; accounts?: TEth.Address[]; } interface IProviderEvents { onProviderRegistered: (detail: EIP6963ProviderDetail) => void; onProviderConnected: (detail: EIP6963ProviderDetail, chainId: number) => void; onAccountsConnected: (detail: EIP6963ProviderDetail, accounts: TAddress[]) => void; onAccountsDisconnected: (detail: EIP6963ProviderDetail) => void; onChainChanged: (detail: EIP6963ProviderDetail, chainId: number) => void; onAccountsChanged: (detail: EIP6963ProviderDetail, accounts: TEth.Address[]) => void; } export declare class EIP6963ProviderFactory extends class_EventEmitter { private listeners; providers: EIP6963ProviderDetail[]; selected: EIP6963ProviderDetail; global: TGlobal; constructor(); isConnected(address?: TEth.Address): boolean; connect(id?: string): Promise<`0x${string}`[]>; disconnect(): void; useProvider(id: string): void; getProviders(): EIP6963ProviderDetail[]; requestAccounts(id?: string): Promise; private requestProvider; private listenToNewProvider; private onAnnounceProvider; getProviderOrFirst(id?: string): EIP6963ProviderDetail; getProvider(id?: string, optional?: boolean): EIP6963ProviderDetail; private getId; private addEventListeners; private removeEventListeners; } export {};