/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import { CombinedConstantData, Fr, Gas } from '@aztec/circuits.js';
import { type ZodFor } from '@aztec/foundation/schemas';
import { z } from 'zod';
import { SimulationError } from '../simulation_error.js';
import { TxEffect } from '../tx_effect.js';
import { type GasUsed } from './gas_used.js';
/** Return values of simulating a circuit. */
export type ProcessReturnValues = Fr[] | undefined;
/** Return values of simulating complete callstack. */
export declare class NestedProcessReturnValues {
    values: ProcessReturnValues;
    nested: NestedProcessReturnValues[];
    constructor(values: ProcessReturnValues, nested?: NestedProcessReturnValues[]);
    static get schema(): ZodFor<NestedProcessReturnValues>;
    static empty(): NestedProcessReturnValues;
    static random(depth?: number): NestedProcessReturnValues;
}
/**
 * Outputs of processing the public component of a transaction.
 */
export declare class PublicSimulationOutput {
    revertReason: SimulationError | undefined;
    constants: CombinedConstantData;
    txEffect: TxEffect;
    publicReturnValues: NestedProcessReturnValues[];
    gasUsed: GasUsed;
    constructor(revertReason: SimulationError | undefined, constants: CombinedConstantData, txEffect: TxEffect, publicReturnValues: NestedProcessReturnValues[], gasUsed: GasUsed);
    static get schema(): z.ZodEffects<z.ZodObject<{
        revertReason: z.ZodOptional<z.ZodEffects<z.ZodObject<{
            originalMessage: z.ZodString;
            functionErrorStack: z.ZodArray<z.ZodObject<{
                contractAddress: z.ZodType<import("@aztec/circuits.js").AztecAddress, any, string>;
                contractName: z.ZodOptional<z.ZodString>;
                functionSelector: z.ZodType<import("@aztec/circuits.js").FunctionSelector, any, string>;
                functionName: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                contractAddress: import("@aztec/circuits.js").AztecAddress;
                functionSelector: import("@aztec/circuits.js").FunctionSelector;
                contractName?: string | undefined;
                functionName?: string | undefined;
            }, {
                contractAddress: string;
                functionSelector: string;
                contractName?: string | undefined;
                functionName?: string | undefined;
            }>, "many">;
            noirErrorStack: z.ZodOptional<z.ZodType<import("../simulation_error.js").NoirCallStack, z.ZodTypeDef, import("../simulation_error.js").NoirCallStack>>;
            revertData: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
        }, "strip", z.ZodTypeAny, {
            originalMessage: string;
            functionErrorStack: {
                contractAddress: import("@aztec/circuits.js").AztecAddress;
                functionSelector: import("@aztec/circuits.js").FunctionSelector;
                contractName?: string | undefined;
                functionName?: string | undefined;
            }[];
            revertData: Fr[];
            noirErrorStack?: import("../simulation_error.js").NoirCallStack | undefined;
        }, {
            originalMessage: string;
            functionErrorStack: {
                contractAddress: string;
                functionSelector: string;
                contractName?: string | undefined;
                functionName?: string | undefined;
            }[];
            revertData: string[];
            noirErrorStack?: import("../simulation_error.js").NoirCallStack | undefined;
        }>, SimulationError, {
            originalMessage: string;
            functionErrorStack: {
                contractAddress: string;
                functionSelector: string;
                contractName?: string | undefined;
                functionName?: string | undefined;
            }[];
            revertData: string[];
            noirErrorStack?: import("../simulation_error.js").NoirCallStack | undefined;
        }>>;
        constants: z.ZodUnion<[z.ZodEffects<z.ZodObject<{
            historicalHeader: z.ZodEffects<z.ZodObject<{
                lastArchive: z.ZodEffects<z.ZodObject<{
                    root: z.ZodType<Fr, any, string>;
                    nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                }, "strip", z.ZodTypeAny, {
                    root: Fr;
                    nextAvailableLeafIndex: number;
                }, {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                }>;
                contentCommitment: z.ZodEffects<z.ZodObject<{
                    numTxs: z.ZodType<Fr, any, string>;
                    txsEffectsHash: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                        type: z.ZodLiteral<"Buffer">;
                        data: z.ZodArray<z.ZodNumber, "many">;
                    }, "strip", z.ZodTypeAny, {
                        type: "Buffer";
                        data: number[];
                    }, {
                        type: "Buffer";
                        data: number[];
                    }>, Buffer, {
                        type: "Buffer";
                        data: number[];
                    }>]>;
                    inHash: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                        type: z.ZodLiteral<"Buffer">;
                        data: z.ZodArray<z.ZodNumber, "many">;
                    }, "strip", z.ZodTypeAny, {
                        type: "Buffer";
                        data: number[];
                    }, {
                        type: "Buffer";
                        data: number[];
                    }>, Buffer, {
                        type: "Buffer";
                        data: number[];
                    }>]>;
                    outHash: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                        type: z.ZodLiteral<"Buffer">;
                        data: z.ZodArray<z.ZodNumber, "many">;
                    }, "strip", z.ZodTypeAny, {
                        type: "Buffer";
                        data: number[];
                    }, {
                        type: "Buffer";
                        data: number[];
                    }>, Buffer, {
                        type: "Buffer";
                        data: number[];
                    }>]>;
                }, "strip", z.ZodTypeAny, {
                    numTxs: Fr;
                    txsEffectsHash: Buffer;
                    inHash: Buffer;
                    outHash: Buffer;
                }, {
                    numTxs: string;
                    txsEffectsHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    inHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    outHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                }>, import("@aztec/circuits.js").ContentCommitment, {
                    numTxs: string;
                    txsEffectsHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    inHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    outHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                }>;
                state: z.ZodEffects<z.ZodObject<{
                    l1ToL2MessageTree: z.ZodEffects<z.ZodObject<{
                        root: z.ZodType<Fr, any, string>;
                        nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                    }, "strip", z.ZodTypeAny, {
                        root: Fr;
                        nextAvailableLeafIndex: number;
                    }, {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    }>;
                    partial: z.ZodEffects<z.ZodObject<{
                        noteHashTree: z.ZodEffects<z.ZodObject<{
                            root: z.ZodType<Fr, any, string>;
                            nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                        }, "strip", z.ZodTypeAny, {
                            root: Fr;
                            nextAvailableLeafIndex: number;
                        }, {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        }>;
                        nullifierTree: z.ZodEffects<z.ZodObject<{
                            root: z.ZodType<Fr, any, string>;
                            nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                        }, "strip", z.ZodTypeAny, {
                            root: Fr;
                            nextAvailableLeafIndex: number;
                        }, {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        }>;
                        publicDataTree: z.ZodEffects<z.ZodObject<{
                            root: z.ZodType<Fr, any, string>;
                            nextAvailableLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                        }, "strip", z.ZodTypeAny, {
                            root: Fr;
                            nextAvailableLeafIndex: number;
                        }, {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        }>, import("@aztec/circuits.js").AppendOnlyTreeSnapshot, {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        }>;
                    }, "strip", z.ZodTypeAny, {
                        noteHashTree: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                        nullifierTree: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                        publicDataTree: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                    }, {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    }>, import("@aztec/circuits.js").PartialStateReference, {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    }>;
                }, "strip", z.ZodTypeAny, {
                    l1ToL2MessageTree: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                    partial: import("@aztec/circuits.js").PartialStateReference;
                }, {
                    l1ToL2MessageTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    partial: {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    };
                }>, import("@aztec/circuits.js").StateReference, {
                    l1ToL2MessageTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    partial: {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    };
                }>;
                globalVariables: z.ZodEffects<z.ZodObject<{
                    chainId: z.ZodType<Fr, any, string>;
                    version: z.ZodType<Fr, any, string>;
                    blockNumber: z.ZodType<Fr, any, string>;
                    slotNumber: z.ZodType<Fr, any, string>;
                    timestamp: z.ZodType<Fr, any, string>;
                    coinbase: z.ZodType<import("@aztec/circuits.js").EthAddress, any, string>;
                    feeRecipient: z.ZodType<import("@aztec/circuits.js").AztecAddress, any, string>;
                    gasFees: z.ZodEffects<z.ZodObject<{
                        feePerDaGas: z.ZodType<Fr, any, string>;
                        feePerL2Gas: z.ZodType<Fr, any, string>;
                    }, "strip", z.ZodTypeAny, {
                        feePerDaGas: Fr;
                        feePerL2Gas: Fr;
                    }, {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    }>, import("@aztec/circuits.js").GasFees, {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    version: Fr;
                    chainId: Fr;
                    blockNumber: Fr;
                    slotNumber: Fr;
                    timestamp: Fr;
                    coinbase: import("@aztec/circuits.js").EthAddress;
                    feeRecipient: import("@aztec/circuits.js").AztecAddress;
                    gasFees: import("@aztec/circuits.js").GasFees;
                }, {
                    version: string;
                    chainId: string;
                    blockNumber: string;
                    slotNumber: string;
                    timestamp: string;
                    coinbase: string;
                    feeRecipient: string;
                    gasFees: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                }>, import("@aztec/circuits.js").GlobalVariables, {
                    version: string;
                    chainId: string;
                    blockNumber: string;
                    slotNumber: string;
                    timestamp: string;
                    coinbase: string;
                    feeRecipient: string;
                    gasFees: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                }>;
                totalFees: z.ZodType<Fr, any, string>;
                totalManaUsed: z.ZodType<Fr, any, string>;
            }, "strip", z.ZodTypeAny, {
                lastArchive: import("@aztec/circuits.js").AppendOnlyTreeSnapshot;
                contentCommitment: import("@aztec/circuits.js").ContentCommitment;
                state: import("@aztec/circuits.js").StateReference;
                globalVariables: import("@aztec/circuits.js").GlobalVariables;
                totalFees: Fr;
                totalManaUsed: Fr;
            }, {
                lastArchive: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                contentCommitment: {
                    numTxs: string;
                    txsEffectsHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    inHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    outHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                };
                state: {
                    l1ToL2MessageTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    partial: {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    };
                };
                globalVariables: {
                    version: string;
                    chainId: string;
                    blockNumber: string;
                    slotNumber: string;
                    timestamp: string;
                    coinbase: string;
                    feeRecipient: string;
                    gasFees: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
                totalFees: string;
                totalManaUsed: string;
            }>, import("@aztec/circuits.js").BlockHeader, {
                lastArchive: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                contentCommitment: {
                    numTxs: string;
                    txsEffectsHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    inHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    outHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                };
                state: {
                    l1ToL2MessageTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    partial: {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    };
                };
                globalVariables: {
                    version: string;
                    chainId: string;
                    blockNumber: string;
                    slotNumber: string;
                    timestamp: string;
                    coinbase: string;
                    feeRecipient: string;
                    gasFees: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
                totalFees: string;
                totalManaUsed: string;
            }>;
            txContext: z.ZodEffects<z.ZodObject<{
                chainId: z.ZodType<Fr, any, string>;
                version: z.ZodType<Fr, any, string>;
                gasSettings: z.ZodEffects<z.ZodObject<{
                    gasLimits: z.ZodEffects<z.ZodObject<{
                        daGas: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                        l2Gas: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                    }, "strip", z.ZodTypeAny, {
                        daGas: number;
                        l2Gas: number;
                    }, {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    }>, Gas, {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    }>;
                    teardownGasLimits: z.ZodEffects<z.ZodObject<{
                        daGas: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                        l2Gas: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                    }, "strip", z.ZodTypeAny, {
                        daGas: number;
                        l2Gas: number;
                    }, {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    }>, Gas, {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    }>;
                    maxFeesPerGas: z.ZodEffects<z.ZodObject<{
                        feePerDaGas: z.ZodType<Fr, any, string>;
                        feePerL2Gas: z.ZodType<Fr, any, string>;
                    }, "strip", z.ZodTypeAny, {
                        feePerDaGas: Fr;
                        feePerL2Gas: Fr;
                    }, {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    }>, import("@aztec/circuits.js").GasFees, {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    gasLimits: Gas;
                    teardownGasLimits: Gas;
                    maxFeesPerGas: import("@aztec/circuits.js").GasFees;
                }, {
                    gasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    teardownGasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    maxFeesPerGas: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                }>, import("@aztec/circuits.js").GasSettings, {
                    gasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    teardownGasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    maxFeesPerGas: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                }>;
            }, "strip", z.ZodTypeAny, {
                version: Fr;
                chainId: Fr;
                gasSettings: import("@aztec/circuits.js").GasSettings;
            }, {
                version: string;
                chainId: string;
                gasSettings: {
                    gasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    teardownGasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    maxFeesPerGas: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
            }>, import("@aztec/circuits.js").TxContext, {
                version: string;
                chainId: string;
                gasSettings: {
                    gasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    teardownGasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    maxFeesPerGas: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
            }>;
            vkTreeRoot: z.ZodType<Fr, any, string>;
            protocolContractTreeRoot: z.ZodType<Fr, any, string>;
            globalVariables: z.ZodEffects<z.ZodObject<{
                chainId: z.ZodType<Fr, any, string>;
                version: z.ZodType<Fr, any, string>;
                blockNumber: z.ZodType<Fr, any, string>;
                slotNumber: z.ZodType<Fr, any, string>;
                timestamp: z.ZodType<Fr, any, string>;
                coinbase: z.ZodType<import("@aztec/circuits.js").EthAddress, any, string>;
                feeRecipient: z.ZodType<import("@aztec/circuits.js").AztecAddress, any, string>;
                gasFees: z.ZodEffects<z.ZodObject<{
                    feePerDaGas: z.ZodType<Fr, any, string>;
                    feePerL2Gas: z.ZodType<Fr, any, string>;
                }, "strip", z.ZodTypeAny, {
                    feePerDaGas: Fr;
                    feePerL2Gas: Fr;
                }, {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                }>, import("@aztec/circuits.js").GasFees, {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                }>;
            }, "strip", z.ZodTypeAny, {
                version: Fr;
                chainId: Fr;
                blockNumber: Fr;
                slotNumber: Fr;
                timestamp: Fr;
                coinbase: import("@aztec/circuits.js").EthAddress;
                feeRecipient: import("@aztec/circuits.js").AztecAddress;
                gasFees: import("@aztec/circuits.js").GasFees;
            }, {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            }>, import("@aztec/circuits.js").GlobalVariables, {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            }>;
        }, "strip", z.ZodTypeAny, {
            globalVariables: import("@aztec/circuits.js").GlobalVariables;
            historicalHeader: import("@aztec/circuits.js").BlockHeader;
            txContext: import("@aztec/circuits.js").TxContext;
            vkTreeRoot: Fr;
            protocolContractTreeRoot: Fr;
        }, {
            globalVariables: {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
            historicalHeader: {
                lastArchive: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                contentCommitment: {
                    numTxs: string;
                    txsEffectsHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    inHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    outHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                };
                state: {
                    l1ToL2MessageTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    partial: {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    };
                };
                globalVariables: {
                    version: string;
                    chainId: string;
                    blockNumber: string;
                    slotNumber: string;
                    timestamp: string;
                    coinbase: string;
                    feeRecipient: string;
                    gasFees: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
                totalFees: string;
                totalManaUsed: string;
            };
            txContext: {
                version: string;
                chainId: string;
                gasSettings: {
                    gasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    teardownGasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    maxFeesPerGas: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
            };
            vkTreeRoot: string;
            protocolContractTreeRoot: string;
        }>, CombinedConstantData, {
            globalVariables: {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
            historicalHeader: {
                lastArchive: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                contentCommitment: {
                    numTxs: string;
                    txsEffectsHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    inHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    outHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                };
                state: {
                    l1ToL2MessageTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    partial: {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    };
                };
                globalVariables: {
                    version: string;
                    chainId: string;
                    blockNumber: string;
                    slotNumber: string;
                    timestamp: string;
                    coinbase: string;
                    feeRecipient: string;
                    gasFees: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
                totalFees: string;
                totalManaUsed: string;
            };
            txContext: {
                version: string;
                chainId: string;
                gasSettings: {
                    gasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    teardownGasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    maxFeesPerGas: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
            };
            vkTreeRoot: string;
            protocolContractTreeRoot: string;
        }>, z.ZodType<never, any, string>]>;
        txEffect: z.ZodEffects<z.ZodObject<{
            revertCode: z.ZodEffects<z.ZodNativeEnum<typeof import("@aztec/circuits.js").RevertCodeEnum>, import("@aztec/circuits.js").RevertCode, import("@aztec/circuits.js").RevertCodeEnum>;
            transactionFee: z.ZodType<Fr, any, string>;
            noteHashes: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
            nullifiers: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
            l2ToL1Msgs: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
            publicDataWrites: z.ZodArray<z.ZodEffects<z.ZodObject<{
                leafSlot: z.ZodType<Fr, any, string>;
                value: z.ZodType<Fr, any, string>;
            }, "strip", z.ZodTypeAny, {
                value: Fr;
                leafSlot: Fr;
            }, {
                value: string;
                leafSlot: string;
            }>, import("@aztec/circuits.js").PublicDataWrite, {
                value: string;
                leafSlot: string;
            }>, "many">;
            privateLogs: z.ZodArray<z.ZodEffects<z.ZodObject<{
                fields: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
            }, "strip", z.ZodTypeAny, {
                fields: Fr[];
            }, {
                fields: string[];
            }>, import("@aztec/circuits.js").PrivateLog, {
                fields: string[];
            }>, "many">;
            unencryptedLogsLength: z.ZodType<Fr, any, string>;
            contractClassLogsLength: z.ZodType<Fr, any, string>;
            unencryptedLogs: z.ZodEffects<z.ZodObject<{
                functionLogs: z.ZodArray<z.ZodEffects<z.ZodObject<{
                    logs: z.ZodArray<z.ZodEffects<z.ZodObject<{
                        contractAddress: z.ZodType<import("@aztec/circuits.js").AztecAddress, any, string>;
                        data: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                            type: z.ZodLiteral<"Buffer">;
                            data: z.ZodArray<z.ZodNumber, "many">;
                        }, "strip", z.ZodTypeAny, {
                            type: "Buffer";
                            data: number[];
                        }, {
                            type: "Buffer";
                            data: number[];
                        }>, Buffer, {
                            type: "Buffer";
                            data: number[];
                        }>]>;
                    }, "strip", z.ZodTypeAny, {
                        contractAddress: import("@aztec/circuits.js").AztecAddress;
                        data: Buffer;
                    }, {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }>, import("../index.js").UnencryptedL2Log, {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }>, "many">;
                }, "strip", z.ZodTypeAny, {
                    logs: import("../index.js").UnencryptedL2Log[];
                }, {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }>, import("../index.js").UnencryptedFunctionL2Logs, {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }>, "many">;
            }, "strip", z.ZodTypeAny, {
                functionLogs: import("../index.js").UnencryptedFunctionL2Logs[];
            }, {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            }>, import("../index.js").UnencryptedTxL2Logs, {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            }>;
            contractClassLogs: z.ZodEffects<z.ZodObject<{
                functionLogs: z.ZodArray<z.ZodEffects<z.ZodObject<{
                    logs: z.ZodArray<z.ZodEffects<z.ZodObject<{
                        contractAddress: z.ZodType<import("@aztec/circuits.js").AztecAddress, any, string>;
                        data: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                            type: z.ZodLiteral<"Buffer">;
                            data: z.ZodArray<z.ZodNumber, "many">;
                        }, "strip", z.ZodTypeAny, {
                            type: "Buffer";
                            data: number[];
                        }, {
                            type: "Buffer";
                            data: number[];
                        }>, Buffer, {
                            type: "Buffer";
                            data: number[];
                        }>]>;
                    }, "strip", z.ZodTypeAny, {
                        contractAddress: import("@aztec/circuits.js").AztecAddress;
                        data: Buffer;
                    }, {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }>, import("../index.js").UnencryptedL2Log, {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }>, "many">;
                }, "strip", z.ZodTypeAny, {
                    logs: import("../index.js").UnencryptedL2Log[];
                }, {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }>, import("../index.js").UnencryptedFunctionL2Logs, {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }>, "many">;
            }, "strip", z.ZodTypeAny, {
                functionLogs: import("../index.js").UnencryptedFunctionL2Logs[];
            }, {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            }>, import("../index.js").ContractClassTxL2Logs, {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            }>;
        }, "strip", z.ZodTypeAny, {
            l2ToL1Msgs: Fr[];
            revertCode: import("@aztec/circuits.js").RevertCode;
            transactionFee: Fr;
            noteHashes: Fr[];
            nullifiers: Fr[];
            publicDataWrites: import("@aztec/circuits.js").PublicDataWrite[];
            privateLogs: import("@aztec/circuits.js").PrivateLog[];
            unencryptedLogsLength: Fr;
            contractClassLogsLength: Fr;
            unencryptedLogs: import("../index.js").UnencryptedTxL2Logs;
            contractClassLogs: import("../index.js").ContractClassTxL2Logs;
        }, {
            l2ToL1Msgs: string[];
            revertCode: import("@aztec/circuits.js").RevertCodeEnum;
            transactionFee: string;
            noteHashes: string[];
            nullifiers: string[];
            publicDataWrites: {
                value: string;
                leafSlot: string;
            }[];
            privateLogs: {
                fields: string[];
            }[];
            unencryptedLogsLength: string;
            contractClassLogsLength: string;
            unencryptedLogs: {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            };
            contractClassLogs: {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            };
        }>, TxEffect, {
            l2ToL1Msgs: string[];
            revertCode: import("@aztec/circuits.js").RevertCodeEnum;
            transactionFee: string;
            noteHashes: string[];
            nullifiers: string[];
            publicDataWrites: {
                value: string;
                leafSlot: string;
            }[];
            privateLogs: {
                fields: string[];
            }[];
            unencryptedLogsLength: string;
            contractClassLogsLength: string;
            unencryptedLogs: {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            };
            contractClassLogs: {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            };
        }>;
        publicReturnValues: z.ZodArray<ZodFor<NestedProcessReturnValues>, "many">;
        gasUsed: z.ZodObject<{
            totalGas: z.ZodEffects<z.ZodObject<{
                daGas: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                l2Gas: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                daGas: number;
                l2Gas: number;
            }, {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            }>, Gas, {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            }>;
            teardownGas: z.ZodEffects<z.ZodObject<{
                daGas: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
                l2Gas: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                daGas: number;
                l2Gas: number;
            }, {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            }>, Gas, {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            }>;
        }, "strip", z.ZodTypeAny, {
            totalGas: Gas;
            teardownGas: Gas;
        }, {
            totalGas: {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            };
            teardownGas: {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            };
        }>;
    }, "strip", z.ZodTypeAny, {
        constants: CombinedConstantData;
        txEffect: TxEffect;
        publicReturnValues: NestedProcessReturnValues[];
        gasUsed: {
            totalGas: Gas;
            teardownGas: Gas;
        };
        revertReason?: SimulationError | undefined;
    }, {
        constants: string | {
            globalVariables: {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
            historicalHeader: {
                lastArchive: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                contentCommitment: {
                    numTxs: string;
                    txsEffectsHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    inHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    outHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                };
                state: {
                    l1ToL2MessageTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    partial: {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    };
                };
                globalVariables: {
                    version: string;
                    chainId: string;
                    blockNumber: string;
                    slotNumber: string;
                    timestamp: string;
                    coinbase: string;
                    feeRecipient: string;
                    gasFees: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
                totalFees: string;
                totalManaUsed: string;
            };
            txContext: {
                version: string;
                chainId: string;
                gasSettings: {
                    gasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    teardownGasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    maxFeesPerGas: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
            };
            vkTreeRoot: string;
            protocolContractTreeRoot: string;
        };
        txEffect: {
            l2ToL1Msgs: string[];
            revertCode: import("@aztec/circuits.js").RevertCodeEnum;
            transactionFee: string;
            noteHashes: string[];
            nullifiers: string[];
            publicDataWrites: {
                value: string;
                leafSlot: string;
            }[];
            privateLogs: {
                fields: string[];
            }[];
            unencryptedLogsLength: string;
            contractClassLogsLength: string;
            unencryptedLogs: {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            };
            contractClassLogs: {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            };
        };
        publicReturnValues: any[];
        gasUsed: {
            totalGas: {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            };
            teardownGas: {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            };
        };
        revertReason?: {
            originalMessage: string;
            functionErrorStack: {
                contractAddress: string;
                functionSelector: string;
                contractName?: string | undefined;
                functionName?: string | undefined;
            }[];
            revertData: string[];
            noirErrorStack?: import("../simulation_error.js").NoirCallStack | undefined;
        } | undefined;
    }>, PublicSimulationOutput, {
        constants: string | {
            globalVariables: {
                version: string;
                chainId: string;
                blockNumber: string;
                slotNumber: string;
                timestamp: string;
                coinbase: string;
                feeRecipient: string;
                gasFees: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
            historicalHeader: {
                lastArchive: {
                    root: string;
                    nextAvailableLeafIndex: string | number | bigint;
                };
                contentCommitment: {
                    numTxs: string;
                    txsEffectsHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    inHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                    outHash: string | {
                        type: "Buffer";
                        data: number[];
                    };
                };
                state: {
                    l1ToL2MessageTree: {
                        root: string;
                        nextAvailableLeafIndex: string | number | bigint;
                    };
                    partial: {
                        noteHashTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        nullifierTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                        publicDataTree: {
                            root: string;
                            nextAvailableLeafIndex: string | number | bigint;
                        };
                    };
                };
                globalVariables: {
                    version: string;
                    chainId: string;
                    blockNumber: string;
                    slotNumber: string;
                    timestamp: string;
                    coinbase: string;
                    feeRecipient: string;
                    gasFees: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
                totalFees: string;
                totalManaUsed: string;
            };
            txContext: {
                version: string;
                chainId: string;
                gasSettings: {
                    gasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    teardownGasLimits: {
                        daGas: string | number | bigint;
                        l2Gas: string | number | bigint;
                    };
                    maxFeesPerGas: {
                        feePerDaGas: string;
                        feePerL2Gas: string;
                    };
                };
            };
            vkTreeRoot: string;
            protocolContractTreeRoot: string;
        };
        txEffect: {
            l2ToL1Msgs: string[];
            revertCode: import("@aztec/circuits.js").RevertCodeEnum;
            transactionFee: string;
            noteHashes: string[];
            nullifiers: string[];
            publicDataWrites: {
                value: string;
                leafSlot: string;
            }[];
            privateLogs: {
                fields: string[];
            }[];
            unencryptedLogsLength: string;
            contractClassLogsLength: string;
            unencryptedLogs: {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            };
            contractClassLogs: {
                functionLogs: {
                    logs: {
                        contractAddress: string;
                        data: string | {
                            type: "Buffer";
                            data: number[];
                        };
                    }[];
                }[];
            };
        };
        publicReturnValues: any[];
        gasUsed: {
            totalGas: {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            };
            teardownGas: {
                daGas: string | number | bigint;
                l2Gas: string | number | bigint;
            };
        };
        revertReason?: {
            originalMessage: string;
            functionErrorStack: {
                contractAddress: string;
                functionSelector: string;
                contractName?: string | undefined;
                functionName?: string | undefined;
            }[];
            revertData: string[];
            noirErrorStack?: import("../simulation_error.js").NoirCallStack | undefined;
        } | undefined;
    }>;
    static random(): PublicSimulationOutput;
}
//# sourceMappingURL=public_simulation_output.d.ts.map