import { IKBUniversalAccumulator } from 'crypto-wasm-new'; import { Accumulator } from './accumulator'; import { IKBUniversalAccumulatorState } from './IAccumulatorState'; import { KBUniversalMembershipWitness, KBUniversalNonMembershipWitness } from './kb-acccumulator-witness'; import { AccumulatorParams, AccumulatorPublicKey, AccumulatorSecretKey } from './params-and-keys'; import { KBUniversalMembershipWitnessUpdateInfo, KBUniversalNonMembershipWitnessUpdateInfo } from './witness-update-info'; /** * KB universal accumulator. Its composed of 2 accumulators, one for accumulating elements that are "members" and one * for "non-members". But this detail is largely abstracted away. All possible "members" and "non-members" of this * accumulator are called its domain and during initialization, the domain needs to be known/passed. The domain can be * extended at any point and any number of times. */ export declare class KBUniversalAccumulator extends Accumulator { value: KBUniversalAccumulatorValue; /** * * @param domain - All possible members or non-members of this accumulator * @param params * @param secretKey * @param state */ static initialize(domain: Uint8Array[], params: AccumulatorParams, secretKey: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; /** * Extend the domain * @param newElements - Add these elements to the domain. These should not be part of the domain * @param secretKey * @param state */ extend(newElements: Uint8Array[], secretKey: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; get accumulated(): KBUniversalAccumulatorValue; static fromAccumulated(accumulated: KBUniversalAccumulatorValue): KBUniversalAccumulator; add(element: Uint8Array, secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; addBatch(elements: Uint8Array[], secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; addRemoveBatches(additions: Uint8Array[], removals: Uint8Array[], secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; membershipWitness(member: Uint8Array, secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; nonMembershipWitness(nonMember: Uint8Array, secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; membershipWitnessesForBatch(members: Uint8Array[], secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; nonMembershipWitnessesForBatch(nonMembers: Uint8Array[], secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; remove(element: Uint8Array, secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; removeBatch(elements: Uint8Array[], secretKey?: AccumulatorSecretKey, state?: IKBUniversalAccumulatorState): Promise; verifyMembershipWitness(member: Uint8Array, witness: KBUniversalMembershipWitness, pk: AccumulatorPublicKey, params?: AccumulatorParams): boolean; verifyNonMembershipWitness(nonMember: Uint8Array, witness: KBUniversalNonMembershipWitness, pk: AccumulatorPublicKey, params?: AccumulatorParams): boolean; updateMultipleMemberAndNonMemberWitnessesPostBatchUpdates(memWitnesses: KBUniversalMembershipWitness[], members: Uint8Array[], nonMemWitnesses: KBUniversalMembershipWitness[], nonMembers: Uint8Array[], additions: Uint8Array[], removals: Uint8Array[], secretKey?: AccumulatorSecretKey): [KBUniversalMembershipWitness[], KBUniversalNonMembershipWitness[]]; witnessUpdateInfoForMembershipWitness(additions: Uint8Array[], removals: Uint8Array[], secretKey?: AccumulatorSecretKey): KBUniversalMembershipWitnessUpdateInfo; witnessUpdateInfoForNonMembershipWitness(additions: Uint8Array[], removals: Uint8Array[], secretKey?: AccumulatorSecretKey): KBUniversalNonMembershipWitnessUpdateInfo; witnessUpdateInfoForNonMembershipWitnessAfterDomainExtension(newElements: Uint8Array[], secretKey?: AccumulatorSecretKey): KBUniversalNonMembershipWitnessUpdateInfo; witnessUpdateInfoForBothWitnessTypes(additions: Uint8Array[], removals: Uint8Array[], secretKey?: AccumulatorSecretKey): [KBUniversalMembershipWitnessUpdateInfo, KBUniversalNonMembershipWitnessUpdateInfo]; protected checkBeforeAdd(element: Uint8Array, state?: IKBUniversalAccumulatorState): Promise; protected checkBeforeAddBatch(elements: Uint8Array[], state?: IKBUniversalAccumulatorState): Promise; checkElementAcceptable(element: Uint8Array, state?: IKBUniversalAccumulatorState): Promise; checkElementsAcceptable(elements: Uint8Array[], state?: IKBUniversalAccumulatorState): Promise; } /** * Value of KB universal accumulator */ export declare class KBUniversalAccumulatorValue { mem: Uint8Array; nonMem: Uint8Array; constructor(mem: Uint8Array, nonMem: Uint8Array); /** * Object expected by wasm. Used when calling wasm functions */ get asInternalType(): IKBUniversalAccumulator; static fromInternalType(o: IKBUniversalAccumulator): KBUniversalAccumulatorValue; toBytes(): Uint8Array; static fromBytes(bytes: Uint8Array): KBUniversalAccumulatorValue; } //# sourceMappingURL=kb-universal-accumulator.d.ts.map