import * as RpcResponse from 'ox/RpcResponse';
import type { EIP1193RequestOptions } from '../types/eip1193.js';
import * as ConfigStore from './multisig/Config.js';
import * as OperationStore from './multisig/Operation.js';
import type * as Store from './Store.js';
/**
 * Creates an RPC request handler that coordinates native multisig approvals.
 *
 * @param next - Downstream RPC request handler.
 * @param parameters - Handler parameters.
 * @returns The multisig-aware RPC request handler.
 */
export declare function handleRequest(next: handleRequest.Handler, parameters: handleRequest.Parameters): handleRequest.Handler;
export declare namespace handleRequest {
    /** RPC request handler. */
    type Handler = (request: Request, options?: RequestOptions | undefined) => Promise<unknown>;
    /** RPC request passed to a handler. */
    type Request = {
        /** RPC method name. */
        method: string;
        /** RPC method parameters. */
        params?: readonly unknown[] | undefined;
    };
    /** Options for one handled request. */
    type RequestOptions = EIP1193RequestOptions & {
        /** Chain selected by the caller or inferred from the multisig request. */
        chainId?: number | undefined;
    };
    /** Parameters for {@link handleRequest}. */
    type Parameters = {
        /** Store shared by multisig coordinators. */
        store: Store.Atomic;
    };
    /** Error type for {@link handleRequest}. */
    type ErrorType = ConfigStore.InvalidStoreValueError | OperationStore.InvalidStoreValueError | OperationStore.StoreConflictError | RpcResponse.InvalidParamsError;
}
//# sourceMappingURL=Multisig.d.ts.map