import { type ContextPlugin } from "@nifrajs/core/server"; export interface TimingMetric { readonly name: string; readonly duration: number; readonly description?: string; } export interface TimingControls { mark(name: string): void; measure(name: string, start: string, end?: string): void; metric(name: string, duration: number, description?: string): void; } export interface TimingOptions { /** Name for the automatic total request metric. Default `"total"`; set `false` to disable. */ readonly total?: string | false; /** Decimal places for durations. Default `1`. */ readonly precision?: number; /** Only emit timing for matching requests. Default `true`. */ readonly enabled?: boolean | ((request: Request) => boolean); } /** * Adds a `Server-Timing` response header and typed `c.timing` controls for custom metrics. * Put request-rewriting middleware (for example `methodOverride`) before `timing()` so timing is * attached to the final routed request. */ export declare function timing(options?: TimingOptions): ContextPlugin<{ timing: TimingControls; }>; //# sourceMappingURL=timing.d.ts.map