import type { JsonRpcMiddleware as LegacyJsonRpcMiddleware } from "@metamask/json-rpc-engine";
import type { ContextConstraint, JsonRpcMiddleware, ResultConstraint } from "@metamask/json-rpc-engine/v2";
import type { Json, JsonRpcParams, JsonRpcRequest } from "@metamask/utils";
import { InternalProvider } from "./internal-provider.cjs";
/**
 * Construct an Ethereum provider from the given middleware.
 *
 * @param middleware - The middleware to construct a provider from.
 * @returns An Ethereum provider.
 * @deprecated Use `JsonRpcEngineV2` middleware and {@link providerFromMiddlewareV2} instead.
 */
export declare function providerFromMiddleware<Params extends JsonRpcParams, Result extends Json>(middleware: LegacyJsonRpcMiddleware<Params, Result>): InternalProvider;
/**
 * Construct an Ethereum provider from the given middleware.
 *
 * @param middleware - The middleware to construct a provider from.
 * @returns An Ethereum provider.
 */
export declare function providerFromMiddlewareV2<Request extends JsonRpcRequest, Middleware extends JsonRpcMiddleware<Request, ResultConstraint<Request>, ContextConstraint>>(middleware: Middleware): InternalProvider;
//# sourceMappingURL=provider-from-middleware.d.cts.map