export interface AutoResolution { backend: "files" | "sqlite"; reason: "sqlite-state" | "legacy-content" | "fresh"; } export declare function resolveAutoBackend(twiningDir: string): AutoResolution; export declare function hasLegacyContent(twiningDir: string): boolean; /** Per-tier legacy detection (2.16.0 review LS-1/CS-5): the amnesia * warning must compare each legacy tier against ITS database table — a * migrated blackboard-only store has an empty decisions table forever and * must not cry amnesia over it. */ export interface LegacyContentTiers { decisions: boolean; blackboard: boolean; graph: boolean; /** Ids from decisions/index.json when readable and well-formed; * null when the index is missing, empty, or unparseable. */ decision_ids: string[] | null; } export declare function legacyContentTiers(twiningDir: string): LegacyContentTiers; /** Whether the committed records/ export tree holds any file — used to * detect the reverse-stranding shape (2.16.0 review SC-4): a sqlite→files * fallback serving stale legacy history while the migrated truth sits * unreadable in records/ + twining.db. */ export declare function hasRecordsContent(twiningDir: string): boolean; //# sourceMappingURL=backend-resolve.d.ts.map