import { EncryptedOutputWithSign } from '../../types/commitments.types';
import { WorkerParams, WorkerPayload } from '../worker.types';
import { IUtxoConstructor } from '../../data-structures/utxo/Utxo';
export declare enum UtxoWorkerActionType {
    BATCH_FILTER_UTXOS_WITH_NULLIFIER = 0,
    BUILD_UTXOS = 1,
    DECIPHER_OUTPUTS = 2
}
export interface BatchFilterUtxosWithNullifierPayload extends WorkerPayload<{
    utxos: IUtxoConstructor[];
    nullifiers: Set<string>;
}> {
    type: UtxoWorkerActionType.BATCH_FILTER_UTXOS_WITH_NULLIFIER;
}
export interface BuildBatchProcessPayload extends WorkerPayload<{
    signature: string;
    encryptedOutputs: EncryptedOutputWithSign[];
    chainId: number;
}> {
    type: UtxoWorkerActionType.BUILD_UTXOS;
}
export interface DecipherProcessPayload extends WorkerPayload<{
    encryptedOutputs: EncryptedOutputWithSign[];
    lastOutput: string;
    signature: string;
    chainId: number;
}> {
    type: UtxoWorkerActionType.DECIPHER_OUTPUTS;
}
export type UtxoWorkerPayload = BuildBatchProcessPayload | BatchFilterUtxosWithNullifierPayload | DecipherProcessPayload;
export type UtxoWorkerParams = WorkerParams<UtxoWorkerPayload>;
