import { ProtoBlock } from "@lodestar/fork-choice";
import { DataAvailabilityStatus, IBeaconStateView } from "@lodestar/state-transition";
import { IndexedAttestation, Slot } from "@lodestar/types";
import type { BeaconChain } from "../chain.js";
import { BlockProcessOpts } from "../options.js";
import { IBlockInput } from "./blockInput/index.js";
import { PayloadEnvelopeInput } from "./payloadEnvelopeInput/payloadEnvelopeInput.js";
import { ImportBlockOpts } from "./types.js";
import { SegmentExecStatus } from "./verifyBlocksExecutionPayloads.js";
/**
 * Verifies 1 or more blocks are fully valid; from a linear sequence of blocks.
 *
 * To relieve the main thread signatures are verified separately in workers with chain.bls worker pool.
 * In parallel it:
 * - Run full state transition in sequence
 * - Verify all block's signatures in parallel
 * - Submit execution payloads to EL in sequence
 *
 * If there's an error during one of the steps, the rest are aborted with an AbortController.
 */
export declare function verifyBlocksInEpoch(this: BeaconChain, parentBlock: ProtoBlock, blockInputs: IBlockInput[], payloadEnvelopes: Map<Slot, PayloadEnvelopeInput> | null, opts: BlockProcessOpts & ImportBlockOpts): Promise<{
    postStates: IBeaconStateView[];
    proposerBalanceDeltas: number[];
    segmentExecStatus: SegmentExecStatus;
    blockDAStatuses: DataAvailabilityStatus[];
    payloadDAStatuses: Map<Slot, DataAvailabilityStatus>;
    indexedAttestationsByBlock: IndexedAttestation[][];
}>;
//# sourceMappingURL=verifyBlock.d.ts.map