import type { Ledger } from "./ledger.js"; export declare function ensureFactsSchema(ledger: Ledger): void; export interface ExtractedFact { subject: string; predicate: string; object: string; quote?: string; } /** Tolerant parse of the model's JSON fact list. */ export declare function parseFacts(raw: string): ExtractedFact[]; export declare function extractFactsFromMaterial(day: string, material: string, opts?: { apiKey?: string; fetchImpl?: typeof fetch; }): Promise; /** * Store a day's facts. Non-destructive update: a new fact with the same * subject+predicate but a DIFFERENT object closes the old fact's validity * (valid_to = new stated_at) and chains it via superseded_by. */ export declare function upsertDayFacts(ledger: Ledger, day: string, facts: ExtractedFact[], statedAt: number): number; export interface FactRow { id: number; subject: string; predicate: string; object: string; statedDay: string; current: boolean; supersededOn?: string; quote?: string; expand?: number; } /** Facts matching `query` — current first, superseded history included. * `asOf` (epoch ms) answers "what did we believe THEN". */ export declare function queryFacts(ledger: Ledger, query: string, opts?: { limit?: number; asOf?: number; }): FactRow[];