export type IUtxoConstructor<T = bigint> = {
    amount: T;
    erc20TokenAddress: string;
    mintAddress?: string;
    timeStamp?: string;
    shieldedPrivateKey?: string;
    randomization?: T;
    stealthAddress?: string;
    encryptionKey?: string;
    tokenId?: number;
    isBlocked?: boolean;
    commitment?: string;
    nullifier?: string;
};
/**
 * UTXO class for transactions
 */
export declare class Utxo {
    amount: bigint;
    erc20TokenAddress: string;
    mintAddress?: string;
    timeStamp: string;
    tokenId: number;
    shieldedPrivateKey?: string;
    randomization: bigint;
    stealthAddress?: string;
    encryptionKey?: string;
    commitment?: string;
    nullifier?: string;
    isBlocked: boolean;
    /**
     * creates new UTXO instance
     * @param amount UTXO amount
     * @param erc20TokenAddress contract address of ERC-20/ERC-721 token
     * @param timeStamp timestamp
     * @param tokenId tokenId
     * @param randomization randomization parameter
     * @param stealthAddress  stealth address as a parameter(e.g. in case of transfers we will not know private key and randomization of payee
     * @param encryptionKey  encryption public key
     * @param shieldedPrivateKey private key for nullification
     * @param commitment [optional] commitment value if already computed
     * @param nullifier [optional] nullifier value if already computed
     */
    constructor({ amount, erc20TokenAddress, mintAddress, timeStamp, tokenId, shieldedPrivateKey, randomization, stealthAddress, encryptionKey, commitment, nullifier, isBlocked, }: IUtxoConstructor);
    static createFrom(utxoToCreateFrom: Utxo, patch: Partial<IUtxoConstructor>): Utxo;
    getConstructableParams(): IUtxoConstructor;
    getBasicUtxoParams(): IUtxoConstructor;
    /**
     * @returns commitment hash of the UTXO instance
     */
    getCommitment(): string;
    /**
     * @returns nullifier hash of the UTXO instance
     */
    getNullifier(): string;
    /**
     * @returns stealth address from randomization and private shieldedPrivateKey
     */
    getStealthAddress(): string;
    getEncryptionKey(): string;
    static findCorrectRandomization(initialRandomization: bigint, privateKey?: string): bigint;
    getTokenAddress(chainId: number): string;
}
