import type { SpecRequirement, SpecScenario, SprintFile, Task } from '../types'; declare const TASK_FIELDS: readonly ["title", "description", "context", "acceptance_criteria", "files_to_touch", "depends_on", "scenario_refs"]; type TaskField = typeof TASK_FIELDS[number]; type TaskUpdate = Pick & (Partial> | { action: 'cancel'; reason: string; }); type RequirementUpdate = SpecRequirement | { id: string; action: 'remove'; }; export interface ActivePlanInput { scope?: string; sprint: { n: number; slug: string; }; reason: string; tasks: TaskUpdate[]; requirements: RequirementUpdate[]; scenarios: SpecScenario[]; } export interface ActivePlanChange { target: string; field: string; before: unknown; after: unknown; } export interface ActivePlanPreview { scope: string; sprint: { n: number; slug: string; }; digest: string; reason: string; changes: ActivePlanChange[]; affectedTaskIds: string[]; invalidatedTaskIds: string[]; changedRequirementIds: string[]; changedScenarioIds: string[]; /** Why each affected task must be revalidated; one row per affectedTaskIds entry. */ taskImpact: ActivePlanTaskImpact[]; /** Affected tasks whose recorded evidence stays as reference material, not renewed approval. */ retainedEvidenceTaskIds: string[]; projected: SprintFile; } /** edited: definition changed or cancelled; scenario: consumes a changed scenario; dependency: depends on an affected task. */ export interface ActivePlanTaskImpact { taskId: string; cause: 'edited' | 'scenario' | 'dependency'; via: string[]; } /** Closed input surface: task field updates and full requirement/scenario definitions, never JSON paths. */ export declare function parseActivePlanInput(raw: unknown): ActivePlanInput; /** Read-only preparation; includes state, input, policy and inspected history in the decision digest. */ export declare function prepareActivePlan(scope: string, input: ActivePlanInput): ActivePlanPreview; /** Single-file transaction: contract changes and invalidation commit together, never via the ordinary multi-write plan. */ export declare function applyActivePlan(scope: string, input: ActivePlanInput, digest: string): ActivePlanPreview; export {}; //# sourceMappingURL=active-plan.d.ts.map