import type { LiveActivityItem, SessionTreeNode } from "../../types.js"; import type { SliceRunProjection } from "./slice-run-projections.js"; import type { RuntimeInstanceRecord } from "../../runtime-instance-store.js"; import type { DecisionActionType } from "../../contracts/shared-types.js"; export type SliceKind = "work_slice" | "runtime_reporting" | "system_maintenance"; export type SliceLifecycleStateV2 = "queued" | "dispatching" | "running" | "awaiting_input" | "completed" | "failed" | "archived"; export type OutcomeState = "succeeded_with_artifacts" | "succeeded_without_artifacts" | "failed_actionable" | "failed_non_actionable" | "needs_input"; export type ActorType = "agent" | "user" | "orgx" | "system"; export type SliceActionType = DecisionActionType; export type ActorProvenance = { actorType: ActorType; actorId: string; displayName: string; avatarKey: string; }; export type LineageRef = { initiativeIds: string[]; initiativeTitles: string[]; workstreamIds: string[]; workstreamTitles: string[]; taskIds: string[]; milestoneIds: string[]; iwmtIds: string[]; sliceRunId: string; sessionId: string | null; }; export type ArtifactEnvelope = { artifactId: string; sliceRunId: string; type: string; title: string; url: string | null; preview: string | null; validation: "present" | "missing" | "invalid"; confidence: number; producedAt: string | null; producer: "agent" | "system" | "user"; }; export type ActionContract = { actionType: SliceActionType; label: string; payloadSchema: Record; primary: boolean; }; export type WorkSliceProjectionV2 = { projectionVersion: number; lastEventId: string | null; consistencyFlags: string[]; sliceRunId: string; runId: string | null; sliceKind: SliceKind; lifecycleState: SliceLifecycleStateV2; outcomeState: OutcomeState; statusExplainer: string; actorProvenance: ActorProvenance; lineage: LineageRef; artifacts: ArtifactEnvelope[]; artifactCount: number; hasArtifact: boolean; actionContract: ActionContract | null; updatedAt: string | null; completedAt: string | null; failedAt: string | null; archivedAt: string | null; runtimeState: string | null; sourceClient: string | null; confidence: "low" | "medium" | "high"; }; export type TimelineNarrativeProjection = { projectionVersion: number; sliceRunId: string; title: string; occurredAt: string | null; actorProvenance: ActorProvenance; intent: string; dispatch: string; highlights: string[]; outcome: { state: OutcomeState; summary: string; artifactCount: number; }; nextAction: ActionContract | null; technicalTrace: { eventCount: number; eventIds: string[]; }; }; export type SnapshotV2Payload = { generatedAt: string; runningWorkSlices: number; needsInput: number; failedActionable: number; completedToday: number; inProgress: WorkSliceProjectionV2[]; needsInputItems: WorkSliceProjectionV2[]; failedItems: WorkSliceProjectionV2[]; nextUpByInitiative: Array<{ initiativeId: string | null; initiativeTitle: string; pendingCount: number; queue: Array<{ workstreamId: string | null; workstreamTitle: string; queueState: string; priorityNum: number | null; dependencySummary: string | null; tasksRemaining: number | null; }>; }>; timelineNarrative: TimelineNarrativeProjection[]; consistencyFlags: string[]; dataHealth: { status: "healthy" | "degraded"; totals: { slices: number; missingTerminal: number; lineageGap: number; artifactMismatch: number; invalidActor: number; }; }; }; type BuildSliceExperienceV2Input = { generatedAt: string; sliceRuns: SliceRunProjection[]; sessions: SessionTreeNode[]; activity: LiveActivityItem[]; runtimeInstances: RuntimeInstanceRecord[]; nextUpItems: Array>; }; export declare function buildSliceExperienceSnapshotV2(input: BuildSliceExperienceV2Input): SnapshotV2Payload & { projections: WorkSliceProjectionV2[]; }; export declare function findSliceNarrative(timelineNarrative: TimelineNarrativeProjection[], sliceRunId: string): TimelineNarrativeProjection | null; export declare function findSessionDetailProjection(projections: WorkSliceProjectionV2[], sessionId: string): WorkSliceProjectionV2 | null; export {};