import { GrumpkinAddress } from '@polyaztec/barretenberg/address';
import { AssetValue } from '@polyaztec/barretenberg/asset';
import { BridgeCallData } from '@polyaztec/barretenberg/bridge_call_data';
import { ProofId } from '@polyaztec/barretenberg/client_proofs';
import { TxId } from '@polyaztec/barretenberg/tx_id';
export declare enum UserDefiInteractionResultState {
    PENDING = "PENDING",
    AWAITING_FINALISATION = "AWAITING_FINALISATION",
    AWAITING_SETTLEMENT = "AWAITING_SETTLEMENT",
    SETTLED = "SETTLED"
}
export interface UserDefiInteractionResult {
    state: UserDefiInteractionResultState;
    isAsync?: boolean;
    interactionNonce?: number;
    success?: boolean;
    outputValueA?: AssetValue;
    outputValueB?: AssetValue;
    claimSettled?: Date;
    finalised?: Date;
}
export declare class UserDefiTx {
    readonly txId: TxId;
    readonly userId: GrumpkinAddress;
    readonly bridgeCallData: BridgeCallData;
    readonly depositValue: AssetValue;
    readonly fee: AssetValue;
    readonly created: Date;
    readonly settled: Date | undefined;
    readonly interactionResult: UserDefiInteractionResult;
    readonly proofId = ProofId.DEFI_DEPOSIT;
    constructor(txId: TxId, userId: GrumpkinAddress, bridgeCallData: BridgeCallData, depositValue: AssetValue, fee: AssetValue, created: Date, settled: Date | undefined, interactionResult: UserDefiInteractionResult);
}
//# sourceMappingURL=user_defi_tx.d.ts.map