import { type Hex, type PublicClient } from 'viem'; import type { CrossChainAddress, NetworkConfig, OperatorVotingPower, OperatorWithKeys, Validator, ValidatorSet, ValidatorSetHeader } from './types/index.js'; /** @notice Sum voting power of all validators (the set contains only active validators). */ export declare const totalActiveVotingPower: (validatorSet: ValidatorSet) => bigint; /** @notice Build a validator-set header from a full set. */ export declare const createValidatorSetHeader: (validatorSet: ValidatorSet) => ValidatorSetHeader; /** @notice ABI encode a validator-set header (matching settlement contract tuple). */ export declare const encodeValidatorSetHeader: (header: ValidatorSetHeader) => Hex; /** @notice Keccak256 hash of the encoded validator-set header. */ export declare const hashValidatorSetHeader: (header: ValidatorSetHeader) => Hex; /** @notice Hash of a full validator set (header derived from content). */ export declare const hashValidatorSet: (validatorSet: ValidatorSet) => Hex; type ChainVotingPowers = { readonly chainId: number; readonly votingPowers: readonly OperatorVotingPower[]; }; export declare const composeValidators: (config: NetworkConfig, votingPowers: readonly ChainVotingPowers[], operatorKeys: readonly OperatorWithKeys[]) => Validator[]; export declare const calculateQuorumThreshold: (config: NetworkConfig, totalVotingPower: bigint) => bigint; type ValidatorSetBuildContext = { getClient: (chainId: number) => PublicClient; }; export declare const buildValidatorSetFromData: (params: { targetEpoch: number; finalized: boolean; epochStart: number; config: NetworkConfig; includeCollateralMetadata: boolean; allVotingPowers: { chainId: number; votingPowers: OperatorVotingPower[]; }[]; keys: OperatorWithKeys[]; } & ValidatorSetBuildContext) => Promise; export declare const buildValidatorSet: (params: { targetEpoch: number; finalized: boolean; epochStart: number; config: NetworkConfig; includeCollateralMetadata: boolean; getVotingPowers: (provider: CrossChainAddress, timestamp: number, finalized: boolean) => Promise; getKeys: (provider: CrossChainAddress, timestamp: number, finalized: boolean) => Promise; } & ValidatorSetBuildContext) => Promise; export declare const buildValidatorSetsBatch: (params: { targetEpochs: readonly number[]; finalized: boolean; includeCollateralMetadata: boolean; configEntries: Map; getVotingPowersBatch: (provider: CrossChainAddress, timestamps: readonly number[], finalized: boolean) => Promise; getKeysBatch: (provider: CrossChainAddress, timestamps: readonly number[], finalized: boolean) => Promise; } & ValidatorSetBuildContext) => Promise>; export {}; //# sourceMappingURL=validator_set.d.ts.map