import { type BlsSignatureSet } from "@chainsafe/lodestar-z/bls-verifier"; import { Root } from "@lodestar/types"; export declare enum SignatureSetType { single = "single", aggregate = "aggregate", /** * Single signature with validator index instead of pubkey. * Pubkey lookup is deferred to verification time. */ indexed = "indexed" } /** * Single signature with pubkey directly. * Used when pubkey comes from the message itself (e.g. BLS to execution change). */ export type SingleSignatureSet = { type: SignatureSetType.single; pubkey: Uint8Array; signingRoot: Root; signature: Uint8Array; }; /** * Single signature with validator index. * Pubkey is looked up at verification time. */ export type IndexedSignatureSet = { type: SignatureSetType.indexed; index: number; signingRoot: Root; signature: Uint8Array; }; /** * Aggregate signature with validator indices. * Pubkeys are looked up and aggregated at verification time. */ export type AggregatedSignatureSet = { type: SignatureSetType.aggregate; indices: number[]; signingRoot: Root; signature: Uint8Array; }; export type ISignatureSet = SingleSignatureSet | IndexedSignatureSet | AggregatedSignatureSet; export declare function toBlsSignatureSet(signatureSet: ISignatureSet): BlsSignatureSet; export declare function verifySignatureSet(signatureSet: ISignatureSet): boolean; export declare function createSingleSignatureSetFromComponents(pubkey: Uint8Array, signingRoot: Root, signature: Uint8Array): SingleSignatureSet; export declare function createIndexedSignatureSetFromComponents(index: number, signingRoot: Root, signature: Uint8Array): IndexedSignatureSet; export declare function createAggregateSignatureSetFromComponents(indices: number[], signingRoot: Root, signature: Uint8Array): AggregatedSignatureSet; //# sourceMappingURL=signatureSets.d.ts.map