import SafeEventEmitter from '@metamask/safe-event-emitter'; import type { JsonRpcEngine } from '@metamask/json-rpc-engine'; import type { JsonRpcRequest } from '@metamask/utils'; /** * Construct an Ethereum provider from the given JSON-RPC engine. * * @param engine - The JSON-RPC engine to construct a provider from. * @returns An Ethereum provider. */ export default function providerFromEngine(engine: JsonRpcEngine): SafeEventEmitterProvider; declare class SafeEventEmitterProvider extends SafeEventEmitter { engine: JsonRpcEngine; /** * Construct a SafeEventEmitterProvider from a JSON-RPC engine. * * @param options - Options. * @param options.engine - The JSON-RPC engine used to process requests. */ constructor({ engine }: { engine: JsonRpcEngine; }); request: (req: JsonRpcRequest) => Promise; /** * Send a provider request asynchronously. * * @param req - The request to send. * @param callback - A function that is called upon the success or failure of the request. */ sendAsync: (req: JsonRpcRequest, callback: (error: unknown, providerRes?: any) => void) => void; /** * Send a provider request asynchronously. * * This method serves the same purpose as `sendAsync`. It only exists for * legacy reasons. * * @deprecated Use `sendAsync` instead. * @param req - The request to send. * @param callback - A function that is called upon the success or failure of the request. */ send: (req: JsonRpcRequest, callback: (error: unknown, providerRes?: any) => void) => void; } export {};