import { Mutate, StoreApi } from 'zustand/vanilla'; import { Connector, ConnectorData } from './connectors'; import { ClientStorage } from './storage'; import { Provider, WebSocketProvider } from './types'; export declare type ClientConfig = { /** Enables reconnecting to last used connector on init */ autoConnect?: boolean; /** * Connectors used for linking accounts * @default [new InjectedConnector()] */ connectors?: ((config: { chainId?: number; }) => Connector[]) | Connector[]; /** * Interface for connecting to network * @default (config) => getDefaultProvider(config.chainId) */ provider?: ((config: { chainId?: number; }) => TProvider) | TProvider; /** * Custom storage for data persistance * @default window.localStorage */ storage?: ClientStorage; /** WebSocket interface for connecting to network */ webSocketProvider?: ((config: { chainId?: number; }) => TWebSocketProvider | undefined) | TWebSocketProvider; }; export declare type Data = ConnectorData; export declare type State = { chains?: Connector['chains']; connector?: Connector; connectors: Connector[]; data?: Data; error?: Error; provider: TProvider; status: 'connected' | 'connecting' | 'reconnecting' | 'disconnected'; webSocketProvider?: TWebSocketProvider; }; export declare class Client { #private; config: Partial>; storage: ClientStorage; store: Mutate>, [ [ 'zustand/subscribeWithSelector', never ], [ 'zustand/persist', Partial> ] ]>; constructor(config?: ClientConfig); get chains(): import("./types").Chain[] | undefined; get connectors(): Connector[]; get connector(): Connector | undefined; get data(): Data | undefined; get error(): Error | undefined; get provider(): TProvider; get status(): "connected" | "connecting" | "reconnecting" | "disconnected"; get subscribe(): { (listener: (selectedState: State, previousSelectedState: State) => void): () => void; (selector: (state: State) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: { equalityFn?: ((a: U, b: U) => boolean) | undefined; fireImmediately?: boolean | undefined; } | undefined): () => void; }; get webSocketProvider(): TWebSocketProvider | undefined; setState(updater: State | ((state: State) => State)): void; clearState(): void; destroy(): Promise; autoConnect(): Promise | undefined>; setLastUsedConnector(lastUsedConnector?: string | null): void; } export declare let client: Client; export declare function createClient(config?: ClientConfig): Client; export declare function getClient(): Client;