import { AsyncLocalStorage } from "node:async_hooks"; export type DiagnosticPhase = "oauth" | "role" | "runtime" | "catalog" | "dispatcherBuild" | "dispatch"; export type CatalogSource = "not-reached" | "kv-hit" | "d1-miss" | "d1-repair" | "d1-kv-error" | "binding-absent"; export interface BindingDiagnostics { calls: number; failures: number; inFlight: number; maxInFlight: number; byteSamples: number; wallMs: number; bytes: number | null; bytesSource: "utf8" | "buffer" | "serialized-result" | "object-result" | "mixed" | null; } export interface RequestDiagnosticRecord { version: 1; requestId: string; surface: "health" | "catalog" | "view" | "procedure" | "admin" | "mcp" | "web" | "r2" | "setup"; arrivalAt: number; simultaneousArrivals: number; status: number | null; outcome: "http-ok" | "denied" | "error"; totalMs: number; rpcOutcome: "result" | "error" | "tool-error" | "notification" | "invalid-response" | null; phases: Record; catalog: { source: CatalogSource; sharedWait: boolean; waitMs: number | null; bootPublications: number; }; d1: null | { bindingCalls: number; statements: number; unknownStatementCalls: number; failures: number; inFlight: number; maxInFlight: number; /** Sums of available metadata; check coverage before treating them as totals. */ wallMs: number; metadataStatements: number; durationMs: number | null; rowsRead: number | null; rowsWritten: number | null; resultBytes: number | null; }; kv: null | Record<"get" | "put" | "delete" | "list", BindingDiagnostics>; r2: null | Record<"head" | "get" | "put" | "delete" | "list", BindingDiagnostics>; } export declare const requestDiagnosticContext: AsyncLocalStorage; /** Capture the initiating request before any asynchronous or shared work. */ export declare function beginDiagnosticPhase(phase: DiagnosticPhase): () => void; export declare function diagnosticPhase(phase: DiagnosticPhase, run: () => Promise): Promise; //# sourceMappingURL=requestDiagnostics.d.ts.map