/** This is a budget for the single progress body, not for the enclosing Status JSON. */ export declare const DEFAULT_PUBLIC_PROGRESS_CODE_POINTS = 800; export interface BackendProgressItem { id: string; type: string; text?: string; phase?: string | null; delivery?: string | null; status?: unknown; exitCode?: unknown; /** Native item times only: never synthesize these from the read or turn time. */ startedAtMs?: number | null; completedAtMs?: number | null; } export interface BackendProgressTurn { id?: string; turnId?: string; itemsComplete: boolean; items: BackendProgressItem[]; } export type BackendProgressReadError = "read_failed" | "missing_exact_turn" | "incomplete_items" | "identity_mismatch"; export interface BackendPublicProgress { state: "available" | "no_public_progress" | "read_error"; text: string; native_turn_id: string | null; read_at: string; latest_item_at: string | null; truncated: boolean; reason?: BackendProgressReadError; } /** Status-only projection. Callers must also verify the snapshot's exact thread identity. */ export declare function backendPublicProgress(options: { nativeTurnId: string | null; turn?: BackendProgressTurn; readAt: string; }): BackendPublicProgress; export declare function backendPublicProgressReadError(nativeTurnId: string | null, readAt: string, reason?: BackendProgressReadError): BackendPublicProgress; export declare function validNativeItemTime(value: unknown): value is number;