export interface TimingEntry { name: string; start?: number; duration?: number; description?: string; } export declare class ServerTimingContext { private entries; private requestStart; constructor(); /** Start a named timer */ start(name: string): void; /** End a named timer */ end(name: string): void; /** Add a metric with a known duration */ add(name: string, duration: number, description?: string): void; /** Get total request duration */ get totalDuration(): number; /** Build the Server-Timing header value */ toHeader(): string; } /** * Server Timing middleware — tracks request timing and adds Server-Timing header. * * @example * router.useRouter([serverTiming()]) * * // In handler: * async show(ctx) { * ctx.timing.start('db') * const user = await User.find(1) * ctx.timing.end('db') * return user * } * * // Browser DevTools shows: * // total: 12.5ms, db: 8.2ms */ export declare function serverTiming(): (ctx: any, next: () => Promise) => Promise; declare module './types' { interface HttpContext { timing: { start: (name: string) => void; end: (name: string) => void; add: (name: string, duration: number, description?: string) => void; }; } }