import { BeaconConfig } from "@lodestar/config";
import { type IBeaconStateViewGloas, type PubkeyCache } from "@lodestar/state-transition";
import { gloas } from "@lodestar/types";
import { IBlsVerifier } from "../bls/index.js";
export type VerifyExecutionPayloadEnvelopeOpts = {
    verifyExecutionRequestsRoot?: boolean;
};
/**
 * Verify execution payload envelope fields against the post-block state.
 *
 * Signature verification and the execution engine call (`verify_and_notify_new_payload`) are
 * performed outside this function, see `verifyExecutionPayloadEnvelopeSignature` and
 * `importExecutionPayload` which run both in parallel with this check.
 *
 * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope
 */
export declare function verifyExecutionPayloadEnvelope(config: BeaconConfig, state: IBeaconStateViewGloas, envelope: gloas.ExecutionPayloadEnvelope, opts?: VerifyExecutionPayloadEnvelopeOpts): void;
/**
 * Verify the BLS signature of an execution payload envelope.
 *
 * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope_signature
 */
export declare function verifyExecutionPayloadEnvelopeSignature(config: BeaconConfig, state: IBeaconStateViewGloas, pubkeyCache: PubkeyCache, signedEnvelope: gloas.SignedExecutionPayloadEnvelope, proposerIndex: number, bls: IBlsVerifier): Promise<boolean>;
//# sourceMappingURL=verifyExecutionPayloadEnvelope.d.ts.map