import { JubPoint } from '../../crypto/babyJub';
export type IUtxoConstructor<T = bigint> = {
    amount: T;
    erc20TokenAddress: string;
    mintAddress?: string;
    timeStamp?: string;
    nullifyingKey?: string;
    spendingPublicKey?: T[];
    randomization?: T;
    H0?: JubPoint<T>;
    stealthAddress?: string;
    encryptionKey?: string;
    isBlocked?: boolean;
    isNewStyle?: boolean;
    commitment?: string;
    nullifier?: string;
};
/**
 * UTXO class for transactions
 */
export declare class Utxo {
    amount: bigint;
    erc20TokenAddress: string;
    mintAddress?: string;
    timeStamp: string;
    nullifyingKey?: string;
    spendingPublicKey?: bigint[];
    randomization?: bigint;
    H0?: JubPoint;
    stealthAddress?: string;
    encryptionKey?: string;
    commitment?: string;
    nullifier?: string;
    isBlocked: boolean;
    isNewStyle?: boolean;
    /**
     * creates new UTXO instance
     * @param amount UTXO amount
     * @param erc20TokenAddress contract address of ERC-20/ERC-721 token
     * @param timeStamp timestamp
     * @param nullifyingKeykey for nullification
     * @param spendingPublicKey spending public key
     * @param randomization randomization parameter
     * @param H0 BJJ point
     * @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 commitment [optional] commitment value if already computed
     * @param nullifier [optional] nullifier value if already computed
     * @param isBlocked [optional] whether the UTXO is blocked
     */
    constructor({ amount, erc20TokenAddress, mintAddress, timeStamp, nullifyingKey, spendingPublicKey, randomization, H0, stealthAddress, encryptionKey, commitment, nullifier, isBlocked, isNewStyle, }: 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;
    getTokenAddress(chainId: number): string;
    getEncryptionKey(): string;
}
