import { IUtxoConstructor } from '../../data-structures/utxo/Utxo';
import { MerkleTreeJson } from '../../data-structures/merkle-tree';
import { WorkerParams, WorkerPayload } from '../worker.types';
export declare enum ZKProofWorkerActionType {
    CALC_COMMITMENTS_SIBLING_AND_SIDES = 0,
    BUILD_IN_NULLIFIERS = 1
}
export interface ZKProofWorkerCalcCommitmentsPayload extends WorkerPayload<{
    inputUtxosSerialized: IUtxoConstructor[][];
    merkleTreeSerialized: MerkleTreeJson;
}> {
    type: ZKProofWorkerActionType.CALC_COMMITMENTS_SIBLING_AND_SIDES;
}
export interface ZKProofWorkerCalcCommitmentsReturn {
    inCommitmentSiblings: string[][][];
    inCommitmentSiblingSides: string[][][];
}
export interface ZKProofWorkerBuildInNullifiersPayload extends WorkerPayload<{
    inputUtxosSerialized: IUtxoConstructor[][];
}> {
    type: ZKProofWorkerActionType.BUILD_IN_NULLIFIERS;
}
export type ZKProofWorkerBuildInNullifiersReturn = string[][];
export type ZKProofWorkerPayload = ZKProofWorkerCalcCommitmentsPayload | ZKProofWorkerBuildInNullifiersPayload;
export type ZKProofWorkerParams = WorkerParams<ZKProofWorkerPayload>;
export type ZKProofWorkerReturn = ZKProofWorkerCalcCommitmentsReturn | ZKProofWorkerBuildInNullifiersReturn;
