import { HookDataType, StealthAddressStructure } from './circom-data.types';
export interface RawTx {
    blockNumber: number;
    timeStamp: number;
    isError: string;
    methodId: string;
    input: string;
    logs: Log[];
    hash: string;
    gas: number;
    gasPrice: number;
    contract?: string;
}
type Log = {
    topics: readonly string[];
    data: string;
};
export interface EventLog {
    address: string;
    topics: readonly string[];
    data: string;
    blockNumber: string;
    blockHash: string;
    timeStamp: string;
    gasPrice: string;
    gasUsed: string;
    logIndex: string;
    transactionHash: string;
    transactionIndex: string;
}
export interface DecodedTx<T = bigint, K = bigint> extends RawTx {
    decodedInput: {
        erc20TokenAddresses: string[];
        amountChanges: K[];
        flatFees: K[];
        externalActionId: K;
        externalActionMetadata: string;
        encryptedOutputs: string[];
        hookData: HookDataType;
        stealthAddressStructure: StealthAddressStructure<T>;
    };
    status: string;
}
export interface DecodedTxWithUtxos<T = bigint, K = bigint> extends DecodedTx<T, K> {
    utxosArray?: OnChainUtxo<T>[];
}
export type OnChainUtxo<AmountType = bigint> = {
    amount: AmountType;
    erc20TokenAddress: string;
    timeStamp: string;
    tokenId: number;
};
export declare const emptyDecodedTx: DecodedTx;
export declare enum TransactionStatus {
    NotStarted = 0,
    Loading = 1,
    Confirmed = 2,
    Failed = 3
}
export declare enum TransactionAction {
    None = 0,
    Deposit = 1,
    Mint = 2,
    PoolAdd = 3,
    PoolRemove = 4,
    Redeem = 5,
    Swap = 6,
    Bridge = 7,
    Transfer = 8,
    Withdraw = 9,
    Send = 10,
    Fund = 11,
    Receive = 12
}
export declare enum TransactionReceiptStatus {
    Failed = 0,
    Succeeded = 1
}
export {};
