import { type LoggerBindings } from '@aztec-labs/foundation/log'; import type { RevertCode } from '@aztec-labs/stdlib/avm'; import type { GasUsed } from '@aztec-labs/stdlib/gas'; import type { ExecutorMetricsInterface } from './executor_metrics_interface.js'; export interface PublicEnqueuedCallMetrics { fnName: string; durationMs: number; manaUsed: number; totalInstructionsExecuted: number; reverted: boolean; } export interface PublicTxMetrics { totalDurationMs: number; manaUsed: number | undefined; totalInstructionsExecuted: number; nonRevertiblePrivateInsertionsUs: number | undefined; revertiblePrivateInsertionsUs: number | undefined; enqueuedCalls: PublicEnqueuedCallMetrics[]; revertedCode: RevertCode | undefined; proverSimulationStepMs: number | undefined; proverProvingStepMs: number | undefined; proverTraceGenerationStepMs: number | undefined; traceGenerationInteractionsMs: number | undefined; traceGenerationTracesMs: number | undefined; provingSumcheckMs: number | undefined; provingPcsMs: number | undefined; provingLogDerivativeInverseMs: number | undefined; provingLogDerivativeInverseCommitmentsMs: number | undefined; provingWireCommitmentsMs: number | undefined; } export declare enum PublicTxMetricsFilter { ALL = 0, TOTALS = 1, DURATIONS = 2, INSTRUCTIONS = 3, PROVING = 4 } export declare class TestExecutorMetrics implements ExecutorMetricsInterface { #private; private logger; private txMetrics; private currentTxLabel; private txTimer; constructor(bindings?: LoggerBindings); startRecordingTxSimulation(txLabel: string): void; stopRecordingTxSimulation(txLabel: string, gasUsed?: GasUsed, revertedCode?: RevertCode, stats?: Record): void; recordEnqueuedCallSimulation(fnName: string, durationMs: number, manaUsed: number, totalInstructionsExecuted: number): void; recordEnqueuedCallSimulationFailure(fnName: string, durationMs: number, manaUsed: number, totalInstructionsExecuted: number): void; recordPrivateEffectsInsertion(durationUs: number, type: 'revertible' | 'non-revertible'): void; recordProverMetrics(txLabel: string, metrics: Partial): void; prettyPrint(filter?: PublicTxMetricsFilter): void; toPrettyString(filter?: PublicTxMetricsFilter): string; toJSON(indent?: number): string; toGithubActionBenchmarkJSON(indent?: number): string; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9leGVjdXRvcl9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3Rlc3RfZXhlY3V0b3JfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFFNUYsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdEQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRixNQUFNLFdBQVcseUJBQXlCO0lBQ3hDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIseUJBQXlCLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLFFBQVEsRUFBRSxPQUFPLENBQUM7Q0FDbkI7QUFFRCxNQUFNLFdBQVcsZUFBZTtJQUU5QixlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLFFBQVEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzdCLHlCQUF5QixFQUFFLE1BQU0sQ0FBQztJQUNsQyxnQ0FBZ0MsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ3JELDZCQUE2QixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDbEQsYUFBYSxFQUFFLHlCQUF5QixFQUFFLENBQUM7SUFDM0MsWUFBWSxFQUFFLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFFckMsc0JBQXNCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMzQyxtQkFBbUIsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ3hDLDJCQUEyQixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFFaEQsNkJBQTZCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNsRCx1QkFBdUIsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzVDLGlCQUFpQixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDdEMsWUFBWSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDakMsNkJBQTZCLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNsRCx3Q0FBd0MsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzdELHdCQUF3QixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7Q0FDOUM7QUFXRCxvQkFBWSxxQkFBcUI7SUFDL0IsR0FBRyxJQUFBO0lBQ0gsTUFBTSxJQUFBO0lBQ04sU0FBUyxJQUFBO0lBQ1QsWUFBWSxJQUFBO0lBQ1osT0FBTyxJQUFBO0NBQ1I7QUEyQkQscUJBQWEsbUJBQW9CLFlBQVcsd0JBQXdCOztJQUNsRSxPQUFPLENBQUMsTUFBTSxDQUFTO0lBRXZCLE9BQU8sQ0FBQyxTQUFTLENBQTJDO0lBQzVELE9BQU8sQ0FBQyxjQUFjLENBQXFCO0lBQzNDLE9BQU8sQ0FBQyxPQUFPLENBQW9CO0lBRW5DLFlBQVksUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUVwQztJQUVELDBCQUEwQixDQUFDLE9BQU8sRUFBRSxNQUFNLFFBTXpDO0lBRUQseUJBQXlCLENBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUNqQixZQUFZLENBQUMsRUFBRSxVQUFVLEVBQ3pCLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBZ0IvQjtJQUVELDRCQUE0QixDQUMxQixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLHlCQUF5QixFQUFFLE1BQU0sUUFHbEM7SUFFRCxtQ0FBbUMsQ0FDakMsTUFBTSxFQUFFLE1BQU0sRUFDZCxVQUFVLEVBQUUsTUFBTSxFQUNsQixRQUFRLEVBQUUsTUFBTSxFQUNoQix5QkFBeUIsRUFBRSxNQUFNLFFBR2xDO0lBb0JELDZCQUE2QixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksR0FBRyxnQkFBZ0IsUUFnQnRGO0lBRUQsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQVVyRTtJQUVELFdBQVcsQ0FBQyxNQUFNLEdBQUUscUJBQWlELFFBRXBFO0lBRUQsY0FBYyxDQUFDLE1BQU0sR0FBRSxxQkFBaUQsVUErRXZFO0lBMEJELE1BQU0sQ0FBQyxNQUFNLFNBQUksVUFFaEI7SUFFRCwyQkFBMkIsQ0FBQyxNQUFNLFNBQUksVUE0RnJDO0NBQ0YifQ==