import type { CanonicalGjcWorkflowSkill } from "../skill-state/active-state"; import type { SkillManifest } from "./workflow-manifest"; export declare const STATE_FIELD_ALLOWLIST: readonly ["skill", "phase", "current_phase", "next", "active", "status", "fresh", "fresh_until", "receipt", "artifact_path", "plan_path", "spec_path", "run_id", "stage", "stage_n", "session_id", "updated_at", "handoff_to", "handoff_from", "counts", "hud"]; export type StateProjectionField = (typeof STATE_FIELD_ALLOWLIST)[number]; export interface StateStatusSummary { skill: CanonicalGjcWorkflowSkill; phase: string; active: boolean; fresh: boolean; fresh_until?: string; next: string[]; receipt_status: string; storage_path: string; } export declare function compactProjectStateJson(skill: CanonicalGjcWorkflowSkill, stateJson: Record, manifest: SkillManifest): Record; export declare function projectStateFields(skill: CanonicalGjcWorkflowSkill, stateJson: Record, manifest: SkillManifest, fields: readonly StateProjectionField[]): Record; export declare function buildStateStatusSummary(skill: CanonicalGjcWorkflowSkill, stateJson: Record, manifest: SkillManifest, storagePath: string): StateStatusSummary; export declare function renderStateStatusLine(summary: StateStatusSummary): string; export declare function renderContractMarkdown(skill: CanonicalGjcWorkflowSkill, contract: unknown): string; export declare function renderHistoryMarkdown(history: { entries: unknown[]; limit: number; since?: string; truncated: boolean; }): string; export declare function renderUltragoalStatusMarkdown(summary: { exists: boolean; status: string; paths: { goalsPath: string; ledgerPath?: string; }; gjcObjective?: string; currentGoal?: { id: string; status: string; title?: string; objective?: string; }; counts: Record; goals: unknown[]; nudgeBudget?: number; nudgeCount?: number; nudgeRemaining?: number; nudgeGoalId?: string; nudgeTargetKind?: string; }): string; export declare function renderStateMarkdown(skill: CanonicalGjcWorkflowSkill, stateJson: Record, manifest: SkillManifest): string;