export interface JSONRPCRequestPayload { params: any[]; method: string; id: number; jsonrpc: string; } export interface JSONRPCResponsePayload { result: any; id: number; jsonrpc: string; } export type JSONRPCResponseCallback = (err: Error, result?: JSONRPCResponsePayload) => void; export type State = Record; export type ProviderOptions = { chainId?: number; fork?: string; nodeUrl?: string; blockNumber?: number | 'latest'; baseBlockNumber?: string; stateDb?: State; details?: boolean; blocks?: string[]; coinbase?: string; }; export declare class Provider { options: ProviderOptions; vmContext: any; Accounts: any; Transactions: any; methods: any; connected: boolean; initialized: boolean; initializing: boolean; pendingRequests: Array; constructor(options?: ProviderOptions); init(): Promise; _send(payload: JSONRPCRequestPayload, callback: (err: Error, result?: JSONRPCResponsePayload) => void): any; sendAsync(payload: JSONRPCRequestPayload, callback?: (err: Error, result?: JSONRPCResponsePayload) => void): Promise; send(payload: any, callback: any): void; request(payload: JSONRPCRequestPayload): Promise; isConnected(): boolean; disconnect(): boolean; supportsSubscriptions(): boolean; on(type: any, cb: any): void; } export declare function extendProvider(provider: any): void;