/**
 * Structured per-request tracing with timing waterfall.
 * Zero allocation when not used — phases are only tracked when mark() is called.
 */
export interface TracePhase {
    name: string;
    timestampMs: number;
    durationMs: number;
}
export interface TraceResult {
    requestId: string;
    phases: TracePhase[];
    totalMs: number;
}
export interface RequestTrace {
    mark(phase: string): void;
    end(): TraceResult;
}
export declare function createTrace(requestId: string): RequestTrace;
export declare function getRecentTraces(count?: number): TraceResult[];
export declare function resetTraces(): void;
