import { SCOPE_REOPEN_KIND, SCOPE_REOPEN_SCHEMA_VERSION } from './lifecycle-state'; import type { ScopeCompletion } from '../types'; export { SCOPE_REOPEN_KIND, SCOPE_REOPEN_SCHEMA_VERSION }; export interface ScopeReopenRequest { scope: string; reason: string; } export type ScopeReopenState = 'fresh' | 'resumable' | 'already-applied'; export interface ScopeReopenPreparation { request: ScopeReopenRequest; requestDigest: string; currentStatus: string; /** The completion this reopen supersedes — live for a fresh reopen, historical for a resume. */ supersededCompletion: ScopeCompletion; affectedFiles: string[]; validations: string[]; state: ScopeReopenState; } export interface ScopeReopenApplyResult { requestDigest: string; resumed: boolean; wrote: 'both' | 'sprint-only' | 'registry-only' | 'none'; } /** * Unlocked, best-effort, fresh-read preview. Never authoritative — `applyScopeReopen` re-derives * everything under the lock. Digest-aware so an interrupted apply is reported as resumable instead * of being rejected as an already-open scope. */ export declare function buildScopeReopenPreparation(request: ScopeReopenRequest): ScopeReopenPreparation; /** The sole write authority for scope reopen. Locked, re-validated, idempotent, recoverable. */ export declare function applyScopeReopen(request: ScopeReopenRequest): ScopeReopenApplyResult; //# sourceMappingURL=scope-reopen.d.ts.map