import { type BlockHeader, ClientIvcProof, CombinedConstantData, Fr, GlobalVariables, PrivateKernelTailCircuitPublicInputs, type PublicDataWrite, RevertCode } from '@aztec/circuits.js';
import { type AvmProvingRequest } from '../interfaces/proving-job.js';
import { type SimulationError } from '../simulation_error.js';
import { TxEffect } from '../tx_effect.js';
import { type GasUsed } from './gas_used.js';
import { type Tx } from './tx.js';
import { TxHash } from './tx_hash.js';
export declare enum TxExecutionPhase {
    SETUP = 0,
    APP_LOGIC = 1,
    TEARDOWN = 2
}
/**
 * Represents a tx that has been processed by the sequencer public processor,
 * so its kernel circuit public inputs are filled in.
 */
export type ProcessedTx = {
    /**
     * Hash of the transaction.
     */
    hash: TxHash;
    /**
     * Tx.data. The output of the private kernel tail or tail_to_public.
     */
    data: PrivateKernelTailCircuitPublicInputs;
    /**
     * Proof for the private execution.
     */
    clientIvcProof: ClientIvcProof;
    /**
     * The request for AVM proving.
     */
    avmProvingRequest: AvmProvingRequest | undefined;
    /**
     * Combining `TxConstantData` specified by the user, and `GlobalVariables` injected by the sequencer.
     */
    constants: CombinedConstantData;
    /**
     * Output data of the tx.
     */
    txEffect: TxEffect;
    gasUsed: GasUsed;
    /**
     * Reason the tx was reverted.
     */
    revertReason: SimulationError | undefined;
    /**
     * Flag indicating the tx is 'empty' meaning it's a padding tx to take us to a power of 2.
     */
    isEmpty: boolean;
};
/**
 * Represents a tx that failed to be processed by the sequencer public processor.
 */
export type FailedTx = {
    /**
     * The failing transaction.
     */
    tx: Tx;
    /**
     * The error that caused the tx to fail.
     */
    error: Error;
};
/**
 * Makes an empty tx from an empty kernel circuit public inputs.
 * @returns A processed empty tx.
 */
export declare function makeEmptyProcessedTx(header: BlockHeader, chainId: Fr, version: Fr, vkTreeRoot: Fr, protocolContractTreeRoot: Fr): ProcessedTx;
export declare function makeProcessedTxFromPrivateOnlyTx(tx: Tx, transactionFee: Fr, feePaymentPublicDataWrite: PublicDataWrite | undefined, globalVariables: GlobalVariables): ProcessedTx;
export declare function toNumBlobFields(txs: ProcessedTx[]): number;
export declare function makeProcessedTxFromTxWithPublicCalls(tx: Tx, avmProvingRequest: AvmProvingRequest, gasUsed: GasUsed, revertCode: RevertCode, revertReason: SimulationError | undefined): ProcessedTx;
//# sourceMappingURL=processed_tx.d.ts.map