import type { ConnectionStatus, JsonRpcProvider, ProviderEvent } from '@dedot/providers'; import type { GenericSubstrateApi } from '@dedot/types'; import { EventEmitter } from '@dedot/utils'; import type { SubstrateApi } from '../chaintypes/index.js'; import type { IJsonRpcClient, JsonRpcClientOptions } from '../types.js'; export declare const isJsonRpcProvider: (provider: any) => provider is JsonRpcProvider; export declare class JsonRpcClient extends EventEmitter implements IJsonRpcClient { #private; constructor(options: JsonRpcClientOptions | JsonRpcProvider); /** * Factory method to create a new JsonRpcClient instance * * @param options */ static create(options: JsonRpcClientOptions | JsonRpcProvider): Promise>; /** * Alias for __JsonRpcClient.create__ * * @param options */ static new(options: JsonRpcClientOptions | JsonRpcProvider): Promise>; get options(): JsonRpcClientOptions; /** * @description Check connection status of the api instance */ get status(): ConnectionStatus; /** * @description Get the JSON-RPC provider instance */ get provider(): JsonRpcProvider; connect(): Promise; disconnect(): Promise; /** * @description Entry-point for executing JSON-RPCs to blockchain node. * * ```typescript * const client = new JsonRpcClient('wss://rpc.polkadot.io'); * await client.connect(); * * // Subscribe to new heads * client.rpc.chain_subscribeNewHeads((header) => { * console.log(header); * }); * * // Execute arbitrary rpc method: `module_rpc_name` * const result = await client.rpc.module_rpc_name(); * ``` */ get rpc(): ChainApi['rpc']; }