import { NewZkCallDataType } from '../../types/snark.types';
import { RemoteProofType } from '../../types/remote-proof.types';
import { EncryptedOutputWithSign } from '../../types/commitments.types';
import { IUtxoConstructor } from '../../data-structures/utxo/Utxo';
export type ProofGeneratorFn = (input: any, circuitWasm: string, circuitZkey: string) => Promise<{
    proof: RemoteProofType;
    publicSignals: string[];
    zkCallData: NewZkCallDataType;
}>;
export type UtxoDecryptorFn = (chainId: number, keysData: Uint8Array) => Promise<{
    utxos: IUtxoConstructor<string>[];
    encryptedOutputs: EncryptedOutputWithSign[];
    lastOutput: string;
}>;
export declare const setCustomProofGenerator: (fn: ProofGeneratorFn) => void;
export declare const getCustomProofGenerator: () => ProofGeneratorFn | undefined;
export declare const setCustomUtxoDecryptor: (fn: UtxoDecryptorFn) => void;
export declare const getCustomUtxoDecryptor: () => UtxoDecryptorFn | undefined;
