import { EncryptedOutputWithSign, OutputsWithSignAndLast } from '../../types/commitments.types';
import { IMultiThreadedUtxoUtils } from '../../types/IMultiThreadedUtxoUtils';
import { UserKeys } from '../crypto-keys/keys';
import { Utxo } from '../utxo/Utxo';
declare global {
    interface Navigator {
        deviceMemory: number | undefined;
    }
}
export declare class MultiThreadedUtxoUtils implements IMultiThreadedUtxoUtils {
    readonly NUM_WORKERS: number;
    readonly NUM_WORKERS_BATCH_PROCESS: number;
    constructor();
    private createUtxoPromise;
    batchFilterUtxosWithNullifier(allUtxos: Utxo[], nullifiers: Set<string>): Promise<Utxo[]>;
    buildBatchProcess(encryptedOutputs: EncryptedOutputWithSign[], userKeys: UserKeys, chainId: number): Promise<Utxo[]>;
    private sliceArrayIntoParts;
    findLastOutput(lastOutputsArray: string[], lastOutput: string): string;
    batchProcess(encryptedOutputs: EncryptedOutputWithSign[], lastOutput: string, userKeys: UserKeys, chainId: number): Promise<OutputsWithSignAndLast<boolean>>;
}
