import type { Logger, Promisable } from '@ariestools/sdk';
import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine/v2';
import type { RpcSchemaMap } from '../types/schema/RpcSchemaMap.js';
type RpcHandlerRecord = Record<string, ((params: never) => Promisable<unknown>) | undefined>;
/** Public contract for Rpc Dispatch Middleware Options. */
export interface RpcDispatchMiddlewareOptions {
    /** Logger used by this instance and the providers it creates. */
    logger?: Logger;
    /** method Not Found configuration or state exposed by this contract. */
    methodNotFound?: (method: string) => Error;
}
/**
 * Validates, dispatches, and serializes a single JSON-RPC request against a
 * paired schema map and handler record. Method names are narrowed generically
 * from both arguments — callers only pass the schemas they own.
 */
export declare const createRpcDispatchMiddleware: <TSchemas extends RpcSchemaMap, THandlers extends RpcHandlerRecord>(schemas: TSchemas, handlers: THandlers, options?: RpcDispatchMiddlewareOptions) => JsonRpcMiddleware;
export {};
//# sourceMappingURL=createRpcDispatchMiddleware.d.ts.map