import type { WitnessMap } from '@aztec/noir-acvm_js'; import { z } from 'zod'; import type { ChonkProof } from '../proofs/chonk_proof.js'; import type { PrivateKernelCircuitPublicInputs } from './private_kernel_circuit_public_inputs.js'; import type { PrivateKernelTailCircuitPublicInputs } from './private_kernel_tail_circuit_public_inputs.js'; export declare const PrivateExecutionStepSchema: z.ZodObject<{ functionName: z.ZodString; gateCount: z.ZodOptional; bytecode: import("@aztec/foundation/schemas").ZodFor>; witness: import("@aztec/foundation/schemas").ZodFor>; vk: import("@aztec/foundation/schemas").ZodFor>; timings: z.ZodObject<{ witgen: z.ZodNumber; gateCount: z.ZodOptional; }, "strip", z.ZodTypeAny, { witgen: number; gateCount?: number | undefined; }, { witgen: number; gateCount?: number | undefined; }>; }, "strip", z.ZodTypeAny, { functionName: string; gateCount?: number | undefined; bytecode: Buffer; witness: Map; vk: Buffer; timings: { witgen: number; gateCount?: number | undefined; }; }, { functionName: string; gateCount?: number | undefined; bytecode?: any; witness?: any; vk?: any; timings: { witgen: number; gateCount?: number | undefined; }; }>; /** * Represents either a simulated private kernel circuit or one of our application function circuits. */ export interface PrivateExecutionStep { functionName: string; gateCount?: number; bytecode: Buffer; witness: WitnessMap; vk: Buffer; timings: { witgen: number; gateCount?: number; oracles?: Record; }; } /** Represents the output of proven PrivateKernelSimulateOutput.*/ export interface PrivateKernelExecutionProofOutput { /** The public inputs used by the proof generation process. */ publicInputs: PublicInputsType; /** The private IVC proof optimized for user devices. It will be consumed by an Aztec prover, * which recursively verifies it through the "private tx base" or the "public chonk verifier" circuit.*/ chonkProof: ChonkProof; /** * The trace the chonkProof corresponds to. * A trace of app circuits interleaved with private kernel circuits. * If simulate is ran with profiling mode, also includes gate counts. */ executionSteps: PrivateExecutionStep[]; /** Performance metrics */ timings?: { proving: number; }; } export declare function serializePrivateExecutionSteps(steps: PrivateExecutionStep[]): Buffer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfcHJvdmVyX291dHB1dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tlcm5lbC9wcml2YXRlX2tlcm5lbF9wcm92ZXJfb3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSXRELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRyxPQUFPLEtBQUssRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTNHLGVBQU8sTUFBTSwwQkFBMEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVVyQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLFdBQVcsb0JBQW9CO0lBQ25DLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUVwQixFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUNmLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNuQixPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFBO1NBQUUsQ0FBQyxDQUFDO0tBQy9DLENBQUM7Q0FDSDtBQUVELGtFQUFrRTtBQUNsRSxNQUFNLFdBQVcsaUNBQWlDLENBQ2hELGdCQUFnQixTQUFTLGdDQUFnQyxHQUFHLG9DQUFvQztJQUVoRyw4REFBOEQ7SUFDOUQsWUFBWSxFQUFFLGdCQUFnQixDQUFDO0lBQy9COzRHQUN3RztJQUN4RyxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBQ3ZCOzs7O09BSUc7SUFDSCxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztJQUN2QywwQkFBMEI7SUFDMUIsT0FBTyxDQUFDLEVBQUU7UUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQztDQUMvQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsMkJBVTNFIn0=