/** * Per-request and process-wide counters for the development render pipeline. * * @remarks * Gated behind {@link isRequestPipelineMetricsEnabled} so production paths stay quiet. * Benchmarks and structural invariant tests read the snapshot via * {@link getRequestPipelineMetricsSnapshot}. */ export type PageModuleLoadOutcome = 'import-cache-hit' | 'disk-cache-hit' | 'cold-build' | 'host-loader' | 'unified-graph'; export type RouteRenderPhase = 'resolve-route-inputs' | 'ownership-validation' | 'resolve-dependencies' | 'page-browser-graph' | 'render-body' | 'transform-response'; export type RouteRenderPhaseRecord = { count: number; totalDurationMs: number; lastDurationMs: number; }; export type RequestPipelineMetricsSnapshot = { runtime: 'node' | 'bun'; pageModuleLoads: number; pageModuleBuilds: number; pageModuleCacheHits: number; hostLoaderLoads: number; diskCacheHits: number; routeModuleArtifacts: number; mdxTransforms: number; collectionBuilds: number; routeRenderPhases: Partial>; }; export declare function isRequestPipelineMetricsEnabled(): boolean; export declare function getRequestPipelineMetricsHeaderName(): string; export declare function resolveRequestPipelineRuntime(): 'node' | 'bun'; export declare function recordPageModuleLoad(outcome: PageModuleLoadOutcome, artifactCount?: number): void; export declare function recordMdxTransform(): void; export declare function recordCollectionBuild(): void; export declare function recordRouteRenderPhase(phase: RouteRenderPhase, durationMs: number): void; export declare function measureRouteRenderPhase(phase: RouteRenderPhase, fn: () => Promise): Promise; export declare function getRequestPipelineMetricsSnapshot(): RequestPipelineMetricsSnapshot; export declare function serializeRequestPipelineMetricsHeader(): string; export declare function resetRequestPipelineMetrics(): void;