import { Logger } from "@lodestar/logger";
import { JsonRpcBatchRequest, JsonRpcBatchResponse, JsonRpcErrorPayload, JsonRpcNotificationPayload, JsonRpcRequest, JsonRpcRequestOrBatch, JsonRpcRequestPayload, JsonRpcResponse, JsonRpcResponseOrBatch, JsonRpcResponseWithErrorPayload, JsonRpcResponseWithResultPayload } from "../types.js";
export declare function getResponseForRequest
(payload: JsonRpcRequest
, res?: R, error?: JsonRpcErrorPayload): JsonRpcResponse;
export declare function getVerificationFailedMessage(method: string): string;
export declare function isVerificationFailedError(payload: JsonRpcResponseWithErrorPayload
): boolean;
export declare function getErrorResponseForRequestWithFailedVerification
(payload: JsonRpcRequest
, message: string, data?: D): JsonRpcResponseWithErrorPayload;
export declare function isValidResponse(response: JsonRpcResponseOrBatch | undefined): response is JsonRpcResponseWithResultPayload | JsonRpcResponseWithResultPayload[];
export declare function isValidBatchResponse(payload: JsonRpcBatchRequest, response: JsonRpcBatchResponse): response is JsonRpcBatchResponse | JsonRpcResponseWithResultPayload[];
export declare function mergeBatchReqResp(payload: JsonRpcBatchRequest, response: JsonRpcBatchResponse): {
request: JsonRpcRequest;
response: JsonRpcResponse;
}[];
export declare function isNotification(payload: JsonRpcRequest
): payload is JsonRpcNotificationPayload
;
export declare function isRequest
(payload: JsonRpcRequest
): payload is JsonRpcRequestPayload
;
export declare function isBatchRequest
(payload: JsonRpcRequestOrBatch
): payload is JsonRpcBatchRequest
;
export declare function isBatchResponse(response: JsonRpcResponseOrBatch): response is JsonRpcBatchResponse;
export declare function logRequest(payload: JsonRpcRequestOrBatch | undefined | null, logger: Logger): void;
export declare function logResponse(response: JsonRpcResponseOrBatch | undefined, logger: Logger): void;
//# sourceMappingURL=json_rpc.d.ts.map