export type StartupTracePhase = 'config-ready' | 'setupAppRuntimePlugins' | 'route-registry' | 'server-listen' | 'first-byte' | 'first-page-browser-graph' | 'dev-client-transform' | 'first-request-ssr' | 'client-transfer' | 'client-hydration'; type PhaseRecord = { durationMs: number; wallMs: number; }; export type StartupTraceReport = { generatedAt: string; runtime: string; platform: string; phases: Partial>; firstRequest?: { path: string; bundleCount: number; clientBundleBytes: number; graphBuildCount: number; wallMs: number; }; client?: { requestCount: number; transferredBytes: number; hmrConnected: boolean; hydrationReadyMs: number | null; }; }; declare class StartupTrace { private readonly phaseNesting; private readonly phases; private firstRequestPending; private firstRequestPath; private firstRequestBundleCount; private firstRequestClientBytes; private firstRequestGraphBuildCount; private firstRequestCompletedWallMs; private summaryEmitted; private firstPageBrowserGraphEmitted; private devClientTransformEmitted; private clientRequestCount; private clientTransferredBytes; private hmrConnected; private hydrationReadyMs; isEnabled(): boolean; markPhaseStart(phase: StartupTracePhase): void; markPhaseEnd(phase: StartupTracePhase): void; markConfigReady(): void; markServerListening(): void; beginServerListen(): void; markFirstByte(): void; beginFirstByte(): void; beginDevClientTransform(): void; endDevClientTransform(): void; /** * Records the first Page Browser Graph completion for startup tracing. * * @param graphBuildCount Session graph build counter when the first Page Browser Graph finished. */ markFirstPageBrowserGraphReady(graphBuildCount?: number): void; recordBrowserBundle(outputs: Array<{ path: string; }>): void; recordClientTransfer(requestCount: number, transferredBytes: number): void; beginClientTransfer(): void; recordClientHydration(durationMs: number): void; beginClientHydration(): void; recordHmrConnected(): void; traceFirstRequest(request: Request, handler: () => Promise): Promise; private emitFirstRequestSummary; private writeJsonReport; createReport(): StartupTraceReport; /** Resets mutable trace state for unit tests. */ resetForTests(): void; /** * Resets only the first-request bundle counters. * * @remarks * Used by tests that need to re-measure first-request browser bundle work * without clearing earlier startup phase records. */ resetFirstRequestCounters(): void; } export declare const startupTrace: StartupTrace; export {};