import type { VersionedTaskPlan } from "../../agent/task-plan.js"; import { PlanTask, SessionPlan } from "./sqlite-backend.js"; export declare function isBareTaskIdTitle(title: string): boolean; export declare function stripBareTaskIdTasks(tasks: PlanTask[]): PlanTask[]; export declare function savePlan(plan: SessionPlan): Promise; export interface PlanMutationResult { ok: boolean; plan?: SessionPlan | undefined; reason?: "missing-plan" | "version-conflict" | "no-change" | "invalid" | "persist-failed" | "private-mode" | undefined; repairs?: string[] | undefined; } export declare function mutatePlan(sessionId: string, reducer: (draft: SessionPlan) => boolean | void, opts?: { expectedVersion?: number | undefined; retries?: number | undefined; }): Promise; export declare function loadPlan(sessionId: string): Promise; export declare function toVersionedTaskPlan(plan: SessionPlan): VersionedTaskPlan; export declare function validateSessionPlan(plan: SessionPlan): { ok: true; } | { ok: false; reason: string; }; export declare function activeForegroundTasks(plan: SessionPlan): PlanTask[]; export declare function enforcePlanInvariants(plan: SessionPlan): string[];