import { IJson, RpcPayload } from "../../eth1/interface.js";
import { IJsonRpcHttpClient, JsonRpcHttpClientEventEmitter } from "../../eth1/provider/jsonRpcHttpClient.js";
import { ExecutionEngineState, ExecutionPayloadStatus } from "./interface.js";
export type JsonRpcBackend = {
    readonly handlers: Record<string, (...args: any[]) => any>;
};
export declare class ExecutionEngineMockJsonRpcClient implements IJsonRpcHttpClient {
    private readonly backend;
    readonly emitter: JsonRpcHttpClientEventEmitter;
    constructor(backend: JsonRpcBackend);
    fetch<R, P = IJson[]>(payload: RpcPayload<P>): Promise<R>;
    fetchWithRetries<R, P = IJson[]>(payload: RpcPayload<P>): Promise<R>;
    fetchBatch<R>(rpcPayloadArr: RpcPayload<IJson[]>[]): Promise<R[]>;
    private wrapWithEvents;
}
export declare const HTTP_FATAL_ERROR_CODES: string[];
export declare const HTTP_CONNECTION_ERROR_CODES: string[];
export declare function getExecutionEngineState<S extends ExecutionPayloadStatus | undefined, E extends unknown | undefined>({ payloadError, payloadStatus, targetState, oldState, }: {
    payloadStatus: S;
    payloadError?: never;
    targetState?: never;
    oldState: ExecutionEngineState;
} | {
    payloadStatus?: never;
    payloadError: E;
    targetState?: never;
    oldState: ExecutionEngineState;
} | {
    payloadStatus?: never;
    payloadError?: never;
    targetState: ExecutionEngineState;
    oldState: ExecutionEngineState;
}): ExecutionEngineState;
//# sourceMappingURL=utils.d.ts.map