import type { OrchestratorConfig, SessionId } from "./types.js"; export type ObservabilityLevel = "debug" | "info" | "warn" | "error"; export type ObservabilityOutcome = "success" | "failure"; export type ObservabilityHealthStatus = "ok" | "warn" | "error"; export type ObservabilityMetricName = "api_request" | "claim_pr" | "cleanup" | "kill" | "lifecycle_poll" | "restore" | "send" | "spawn" | "sse_connect" | "sse_disconnect" | "sse_snapshot" | "websocket_connect" | "websocket_disconnect" | "websocket_error"; export interface ObservabilityMetricCounter { total: number; success: number; failure: number; lastAt?: string; lastSuccessAt?: string; lastFailureAt?: string; lastFailureReason?: string; } export interface ObservabilityTraceRecord { id: string; timestamp: string; component: string; operation: string; outcome: ObservabilityOutcome; correlationId: string; projectId?: string; sessionId?: SessionId; path?: string; reason?: string; durationMs?: number; data?: Record; } export interface ObservabilitySessionStatus { sessionId: SessionId; projectId?: string; correlationId: string; operation: string; outcome: ObservabilityOutcome; updatedAt: string; reason?: string; } export interface ObservabilityHealthSurface { surface: string; status: ObservabilityHealthStatus; updatedAt: string; component: string; projectId?: string; correlationId?: string; reason?: string; details?: Record; } export interface ObservabilityProjectSnapshot { projectId: string; updatedAt: string; metrics: Record; health: Record; recentTraces: ObservabilityTraceRecord[]; sessions: Record; } export interface ObservabilitySummary { generatedAt: string; overallStatus: ObservabilityHealthStatus; projects: Record; } export interface RecordOperationInput { metric: ObservabilityMetricName; operation?: string; outcome: ObservabilityOutcome; correlationId: string; projectId?: string; sessionId?: SessionId; reason?: string; durationMs?: number; path?: string; data?: Record; level?: ObservabilityLevel; } export interface SetHealthInput { surface: string; status: ObservabilityHealthStatus; projectId?: string; correlationId?: string; reason?: string; details?: Record; } export interface ProjectObserver { readonly component: string; recordOperation(input: RecordOperationInput): void; setHealth(input: SetHealthInput): void; } export declare function createCorrelationId(prefix?: string): string; export declare function createProjectObserver(config: OrchestratorConfig, component: string): ProjectObserver; export declare function readObservabilitySummary(config: OrchestratorConfig): ObservabilitySummary; //# sourceMappingURL=observability.d.ts.map