/** * StartupTimer — Lightweight startup phase timing instrumentation. * * Tracks per-phase durations during server initialization, split into * critical (pre-connect) and deferred (post-connect) categories. * * Registered as a DI singleton so BuildInfoService can expose timings * via `get_build_info`. * * Issue #706: MCP Startup Race Hardening */ export interface PhaseEntry { name: string; critical: boolean; startMs: number; endMs: number | null; durationMs: number | null; } export interface StartupReport { phases: Array<{ name: string; critical: boolean; durationMs: number; }>; criticalPathMs: number; deferredMs: number; totalMs: number; connectAtMs: number | null; } export declare class StartupTimer { private phases; private originMs; private connectAtMs; constructor(); /** * Begin timing a named phase. * @param name Unique phase identifier (e.g. "config_manager") * @param critical true = pre-connect critical path, false = deferred */ startPhase(name: string, critical: boolean): void; /** * End a previously started phase. Idempotent — second call is a no-op. */ endPhase(name: string): void; /** * Record the instant MCP `server.connect()` completes. */ markConnect(): void; /** * Produce the final report. Un-ended phases are auto-closed. */ getReport(): StartupReport; } //# sourceMappingURL=StartupTimer.d.ts.map