import { Fr } from '@aztec/foundation/curves/bn254'; import { type ZodFor } from '@aztec/foundation/schemas'; import { z } from 'zod'; import { AztecAddress } from '../aztec-address/index.js'; import type { AztecNode } from '../interfaces/aztec-node.js'; import { type PrivateExecutionStep } from '../kernel/private_kernel_prover_output.js'; export type RoundTripStats = { /** Number of round trips (times we blocked waiting for node responses) */ roundTrips: number; /** Total wall-clock time spent waiting on node (excludes parallel overlap) */ totalBlockingTime: number; /** Individual round trip durations */ roundTripDurations: number[]; /** Methods called in each round trip (parallel calls grouped together) */ roundTripMethods: string[][]; }; export type NodeStats = { /** Per-method call stats */ perMethod: Partial>; /** Round trip stats tracking actual blocking waits */ roundTrips: RoundTripStats; }; type FunctionTiming = { functionName: string; time: number; oracles?: Record; }; export type ProvingTimings = { sync?: number; proving?: number; perFunction: FunctionTiming[]; unaccounted: number; total: number; }; export declare const ProvingTimingsSchema: z.ZodObject<{ sync: import("@aztec/foundation/schemas").ZodNullableOptional; proving: import("@aztec/foundation/schemas").ZodNullableOptional; perFunction: z.ZodArray; }, "strip", z.ZodTypeAny, { times: number[]; }, { times: number[]; }>>>; }, "strip", z.ZodTypeAny, { functionName: string; time: number; oracles?: Record | undefined; }, { functionName: string; time: number; oracles?: Record | undefined; }>, "many">; unaccounted: z.ZodNumber; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { sync?: number | undefined; proving?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }, { sync?: number | undefined; proving?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }>; export interface ProvingStats { timings: ProvingTimings; nodeRPCCalls?: NodeStats; } export declare const ProvingStatsSchema: z.ZodObject<{ timings: z.ZodObject<{ sync: import("@aztec/foundation/schemas").ZodNullableOptional; proving: import("@aztec/foundation/schemas").ZodNullableOptional; perFunction: z.ZodArray; }, "strip", z.ZodTypeAny, { times: number[]; }, { times: number[]; }>>>; }, "strip", z.ZodTypeAny, { functionName: string; time: number; oracles?: Record | undefined; }, { functionName: string; time: number; oracles?: Record | undefined; }>, "many">; unaccounted: z.ZodNumber; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { sync?: number | undefined; proving?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }, { sync?: number | undefined; proving?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }>; nodeRPCCalls: import("@aztec/foundation/schemas").ZodNullableOptional; }, "strip", z.ZodTypeAny, { times: number[]; }, { times: number[]; }>>; roundTrips: z.ZodObject<{ roundTrips: z.ZodNumber; totalBlockingTime: z.ZodNumber; roundTripDurations: z.ZodArray; roundTripMethods: z.ZodArray, "many">; }, "strip", z.ZodTypeAny, { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }, { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }>; }, "strip", z.ZodTypeAny, { perMethod: Record; roundTrips: { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }; }, { perMethod: Record; roundTrips: { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }; }>>; }, "strip", z.ZodTypeAny, { timings: { sync?: number | undefined; proving?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }; nodeRPCCalls?: { perMethod: Record; roundTrips: { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }; } | undefined; }, { timings: { sync?: number | undefined; proving?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }; nodeRPCCalls?: { perMethod: Record; roundTrips: { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }; } | undefined; }>; export interface SimulationTimings { sync: number; publicSimulation?: number; validation?: number; perFunction: FunctionTiming[]; unaccounted: number; total: number; } export declare const SimulationTimingsSchema: z.ZodObject<{ sync: z.ZodNumber; publicSimulation: import("@aztec/foundation/schemas").ZodNullableOptional; validation: import("@aztec/foundation/schemas").ZodNullableOptional; perFunction: z.ZodArray; }, "strip", z.ZodTypeAny, { times: number[]; }, { times: number[]; }>>>; }, "strip", z.ZodTypeAny, { functionName: string; time: number; oracles?: Record | undefined; }, { functionName: string; time: number; oracles?: Record | undefined; }>, "many">; unaccounted: z.ZodNumber; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { sync: number; publicSimulation?: number | undefined; validation?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }, { sync: number; publicSimulation?: number | undefined; validation?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }>; export interface SimulationStats { timings: SimulationTimings; nodeRPCCalls: NodeStats; } export declare const SimulationStatsSchema: z.ZodObject<{ timings: z.ZodObject<{ sync: z.ZodNumber; publicSimulation: import("@aztec/foundation/schemas").ZodNullableOptional; validation: import("@aztec/foundation/schemas").ZodNullableOptional; perFunction: z.ZodArray; }, "strip", z.ZodTypeAny, { times: number[]; }, { times: number[]; }>>>; }, "strip", z.ZodTypeAny, { functionName: string; time: number; oracles?: Record | undefined; }, { functionName: string; time: number; oracles?: Record | undefined; }>, "many">; unaccounted: z.ZodNumber; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { sync: number; publicSimulation?: number | undefined; validation?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }, { sync: number; publicSimulation?: number | undefined; validation?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }>; nodeRPCCalls: z.ZodObject<{ perMethod: z.ZodRecord; }, "strip", z.ZodTypeAny, { times: number[]; }, { times: number[]; }>>; roundTrips: z.ZodObject<{ roundTrips: z.ZodNumber; totalBlockingTime: z.ZodNumber; roundTripDurations: z.ZodArray; roundTripMethods: z.ZodArray, "many">; }, "strip", z.ZodTypeAny, { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }, { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }>; }, "strip", z.ZodTypeAny, { perMethod: Record; roundTrips: { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }; }, { perMethod: Record; roundTrips: { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }; }>; }, "strip", z.ZodTypeAny, { timings: { sync: number; publicSimulation?: number | undefined; validation?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }; nodeRPCCalls: { perMethod: Record; roundTrips: { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }; }; }, { timings: { sync: number; publicSimulation?: number | undefined; validation?: number | undefined; perFunction: { functionName: string; time: number; oracles?: Record | undefined; }[]; unaccounted: number; total: number; }; nodeRPCCalls: { perMethod: Record; roundTrips: { roundTrips: number; totalBlockingTime: number; roundTripDurations: number[]; roundTripMethods: string[][]; }; }; }>; export declare class TxProfileResult { executionSteps: PrivateExecutionStep[]; stats: ProvingStats; constructor(executionSteps: PrivateExecutionStep[], stats: ProvingStats); static get schema(): ZodFor; static random(): TxProfileResult; } export declare class UtilityExecutionResult { result: Fr[]; offchainEffects: { data: Fr[]; contractAddress: AztecAddress; }[]; /** Timestamp of the anchor block used during utility execution. */ anchorBlockTimestamp: bigint; stats?: SimulationStats | undefined; constructor(result: Fr[], offchainEffects: { data: Fr[]; contractAddress: AztecAddress; }[], /** Timestamp of the anchor block used during utility execution. */ anchorBlockTimestamp: bigint, stats?: SimulationStats | undefined); static get schema(): ZodFor; static random(): UtilityExecutionResult; } export {}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvcHJvZmlsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQXFCLE1BQU0sMkJBQTJCLENBQUM7QUFFM0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQThCLE1BQU0sMkNBQTJDLENBQUM7QUFFbEgsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQiwwRUFBMEU7SUFDMUUsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQiw4RUFBOEU7SUFDOUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLHNDQUFzQztJQUN0QyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM3QiwwRUFBMEU7SUFDMUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztDQUM5QixDQUFDO0FBU0YsTUFBTSxNQUFNLFNBQVMsR0FBRztJQUN0Qiw0QkFBNEI7SUFDNUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxTQUFTLEVBQUU7UUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxzREFBc0Q7SUFDdEQsVUFBVSxFQUFFLGNBQWMsQ0FBQztDQUM1QixDQUFDO0FBT0YsS0FBSyxjQUFjLEdBQUc7SUFDcEIsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0s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