import type { CorrelationMetadata } from "../kernel/correlation.ts"; export type DashboardState = "authorised" | "starting" | "running" | "completed" | "failed" | "refused" | "incomplete" | "historical"; export interface DashboardRuntimeIdentity { herdrPaneId?: string; herdrAgentName?: string; } export interface DashboardNode { executionId: string; parentExecutionId: string | null; logicalParentId?: string; logicalChildId: string; depth: number; agentName: string; state: DashboardState; provenance: "pi-daddy-enforced" | "historical-unjoinable"; startedAt: string; endedAt?: string; updatedAt: string; durationMs: number; effectiveGrant: string[]; denied: string[]; executor?: "process" | "herdr"; workspace?: { id: string; access: "read" | "write"; root: string; }; runtime?: DashboardRuntimeIdentity; correlation?: CorrelationMetadata; refusal?: { code?: string; message?: string; }; } export interface DashboardWorkflow { runId: string; label: string; assurance?: string; phases: string[]; /** Correlation is supplied by a caller. It is a label, never controller validation or enforcement. */ provenance: "caller-declared"; } export interface DashboardCorruptLine { line: number; /** Raw corrupt content is deliberately excluded: it may contain forbidden task/output text. */ reason: string; } export interface DashboardProjection { nodes: DashboardNode[]; workflows: DashboardWorkflow[]; corrupt: DashboardCorruptLine[]; orphanEvents: number; active: number; maxDepth: number; } export interface DashboardProjectionOptions { now?: Date; /** A decision with no start is briefly authorised, then incomplete. */ startGraceMs?: number; } export declare function parseDashboardLedger(text: string, options?: DashboardProjectionOptions): DashboardProjection; //# sourceMappingURL=dashboard-projection.d.ts.map