import { routes } from "@lodestar/api";
import { IBeaconStateView } from "@lodestar/state-transition";
import { BLSPubkey, CommitteeIndex, Slot, SubnetID, ValidatorIndex } from "@lodestar/types";
import { BlockSelectionResult } from "./index.js";
export declare function computeSubnetForCommitteesAtSlot(slot: Slot, committeesAtSlot: number, committeeIndex: CommitteeIndex): SubnetID;
/**
 * Precompute all pubkeys for given `validatorIndices`. Ensures that all `validatorIndices` are known
 * before doing other expensive logic.
 *
 * Uses special BranchNodeStruct state.validators data structure to optimize getting pubkeys.
 * Type-unsafe: assumes state.validators[i] is of BranchNodeStruct type.
 * Note: This is the fastest way of getting compressed pubkeys.
 *       See benchmark -> packages/beacon-node/test/perf/api/impl/validator/attester.test.ts
 */
export declare function getPubkeysForIndices(state: IBeaconStateView, indexes: ValidatorIndex[]): BLSPubkey[];
export declare function selectBlockProductionSource({ builderSelection, engineExecutionPayloadValue, builderExecutionPayloadValue, builderBoostFactor }: {
    builderSelection: routes.validator.BuilderSelection;
    engineExecutionPayloadValue: bigint;
    builderExecutionPayloadValue: bigint;
    builderBoostFactor: bigint;
}): BlockSelectionResult;
//# sourceMappingURL=utils.d.ts.map