/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import { AztecAddress, Fr, FunctionSelector, TxContext, TxRequest } from '@aztec/circuits.js';
import { BufferReader } from '@aztec/foundation/serialize';
import { type FieldsOf } from '@aztec/foundation/types';
import { inspect } from 'util';
import { z } from 'zod';
import { AuthWitness } from './auth_witness.js';
import { PackedValues } from './packed_values.js';
/**
 * Request to execute a transaction. Similar to TxRequest, but has the full args.
 */
export declare class TxExecutionRequest {
    /**
     * Sender.
     */
    origin: AztecAddress;
    /**
     * Selector of the function to call.
     */
    functionSelector: FunctionSelector;
    /**
     * The hash of arguments of first call to be executed (usually account entrypoint).
     * @dev This hash is a pointer to `argsOfCalls` unordered array.
     */
    firstCallArgsHash: Fr;
    /**
     * Transaction context.
     */
    txContext: TxContext;
    /**
     * An unordered array of packed arguments for each call in the transaction.
     * @dev These arguments are accessed in Noir via oracle and constrained against the args hash. The length of
     * the array is equal to the number of function calls in the transaction (1 args per 1 call).
     */
    argsOfCalls: PackedValues[];
    /**
     * Transient authorization witnesses for authorizing the execution of one or more actions during this tx.
     * These witnesses are not expected to be stored in the local witnesses database of the PXE.
     */
    authWitnesses: AuthWitness[];
    constructor(
    /**
     * Sender.
     */
    origin: AztecAddress, 
    /**
     * Selector of the function to call.
     */
    functionSelector: FunctionSelector, 
    /**
     * The hash of arguments of first call to be executed (usually account entrypoint).
     * @dev This hash is a pointer to `argsOfCalls` unordered array.
     */
    firstCallArgsHash: Fr, 
    /**
     * Transaction context.
     */
    txContext: TxContext, 
    /**
     * An unordered array of packed arguments for each call in the transaction.
     * @dev These arguments are accessed in Noir via oracle and constrained against the args hash. The length of
     * the array is equal to the number of function calls in the transaction (1 args per 1 call).
     */
    argsOfCalls: PackedValues[], 
    /**
     * Transient authorization witnesses for authorizing the execution of one or more actions during this tx.
     * These witnesses are not expected to be stored in the local witnesses database of the PXE.
     */
    authWitnesses: AuthWitness[]);
    static get schema(): z.ZodEffects<z.ZodObject<{
        origin: z.ZodType<AztecAddress, any, string>;
        functionSelector: z.ZodType<FunctionSelector, any, string>;
        firstCallArgsHash: z.ZodType<Fr, any, 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;
                }>, import("@aztec/circuits.js").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;
                }>, import("@aztec/circuits.js").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;
                }>;
                maxPriorityFeesPerGas: 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: import("@aztec/circuits.js").Gas;
                teardownGasLimits: import("@aztec/circuits.js").Gas;
                maxFeesPerGas: import("@aztec/circuits.js").GasFees;
                maxPriorityFeesPerGas: 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;
                };
                maxPriorityFeesPerGas: {
                    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;
                };
                maxPriorityFeesPerGas: {
                    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;
                };
                maxPriorityFeesPerGas: {
                    feePerDaGas: string;
                    feePerL2Gas: 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;
                };
                maxPriorityFeesPerGas: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
        }>;
        argsOfCalls: z.ZodArray<z.ZodEffects<z.ZodArray<z.ZodType<Fr, any, string>, "many">, PackedValues, string[]>, "many">;
        authWitnesses: z.ZodArray<z.ZodType<AuthWitness, any, string>, "many">;
    }, "strip", z.ZodTypeAny, {
        functionSelector: FunctionSelector;
        origin: AztecAddress;
        firstCallArgsHash: Fr;
        txContext: TxContext;
        argsOfCalls: PackedValues[];
        authWitnesses: AuthWitness[];
    }, {
        functionSelector: string;
        origin: string;
        firstCallArgsHash: 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;
                };
                maxPriorityFeesPerGas: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
        };
        argsOfCalls: string[][];
        authWitnesses: string[];
    }>, TxExecutionRequest, {
        functionSelector: string;
        origin: string;
        firstCallArgsHash: 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;
                };
                maxPriorityFeesPerGas: {
                    feePerDaGas: string;
                    feePerL2Gas: string;
                };
            };
        };
        argsOfCalls: string[][];
        authWitnesses: string[];
    }>;
    toTxRequest(): TxRequest;
    static getFields(fields: FieldsOf<TxExecutionRequest>): readonly [AztecAddress, FunctionSelector, Fr, TxContext, PackedValues[], AuthWitness[]];
    static from(fields: FieldsOf<TxExecutionRequest>): TxExecutionRequest;
    /**
     * Serialize as a buffer.
     * @returns The buffer.
     */
    toBuffer(): Buffer;
    /**
     * Serialize as a string.
     * @returns The string.
     */
    toString(): `0x${string}`;
    /**
     * Deserializes from a buffer or reader, corresponding to a write in cpp.
     * @param buffer - Buffer to read from.
     * @returns The deserialized TxRequest object.
     */
    static fromBuffer(buffer: Buffer | BufferReader): TxExecutionRequest;
    /**
     * Deserializes from a string, corresponding to a write in cpp.
     * @param str - String to read from.
     * @returns The deserialized TxRequest object.
     */
    static fromString(str: string): TxExecutionRequest;
    static random(): TxExecutionRequest;
    [inspect.custom](): string;
}
//# sourceMappingURL=tx_execution_request.d.ts.map