/**
 * Sections whose values do not appear as literal text in spec.md body —
 * applied/verified at the metadata layer, never via string-replace.
 * Shared by apply-changes.ts (skip) and verify-write.ts (skip).
 */
export declare const RECONCILE_METADATA_SECTIONS: ReadonlySet<string>;
/** A single failed post-write verification entry (Bug D). */
export interface VerifyWriteFailure {
    section: string;
    newValue: string;
    reason: string;
}
/** Result of verifyWriteSucceeded (Bug D). */
export interface VerifyWriteResult {
    verified: boolean;
    missingChanges: VerifyWriteFailure[];
}
/** A change that could not be applied to spec.md body (Bug D). */
export interface SkippedChange {
    section: string;
    originalValue: string;
    reason: string;
}
/** Result of applyChangesToSpec (Bug D). */
export interface ApplyChangesResult {
    applied: number;
    skipped: SkippedChange[];
    fileWritten: boolean;
}
/** Body bounds of a markdown section, used by apply-changes' anchoring. */
export interface SectionBounds {
    start: number;
    end: number;
}
/** Parsed snapshot of status.json used by status-reconciler (Bug G). */
export interface CurrentStatus {
    totalSpecs: number;
    content: Record<string, unknown>;
    /** True when status.json exists; false when missing (ENOENT). */
    exists: boolean;
    /** True when status.json existed but could not be parsed/read for non-ENOENT reasons. */
    corrupt: boolean;
}
/** Result of reconcileStatusFromDisk (Bug G). */
export interface StatusReconcileResult {
    reconciled: boolean;
    before: number;
    after: number;
}
import type { ProjectKnowledge } from './project/core.js';
/** Result when a project was resolved via resolveProjectFromPath (Bug F). */
export interface ResolvedProject {
    projectId: string;
    knowledge: ProjectKnowledge;
    /** True when knowledge was recovered from disk fingerprint. */
    recovered: boolean;
}
//# sourceMappingURL=reconcile.d.ts.map