import { ProtoBlock } from "@lodestar/fork-choice";
import { CachedBeaconStateAllForks, DataAvailabilityStatus } from "@lodestar/state-transition";
import { IndexedAttestation } from "@lodestar/types";
import type { BeaconChain } from "../chain.js";
import { BlockProcessOpts } from "../options.js";
import { IBlockInput } from "./blockInput/index.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[], opts: BlockProcessOpts & ImportBlockOpts): Promise<{
    postStates: CachedBeaconStateAllForks[];
    proposerBalanceDeltas: number[];
    segmentExecStatus: SegmentExecStatus;
    dataAvailabilityStatuses: DataAvailabilityStatus[];
    indexedAttestationsByBlock: IndexedAttestation[][];
}>;
//# sourceMappingURL=verifyBlock.d.ts.map