/** * index-map — PURE mapping from a VaultNote's frontmatter to FactInput records. * * PURE: Never calls Date.now() or new Date() — timestamps are injected via `opts.now`. * Never touches the filesystem — no fs or network imports. * * bober: one FactInput per frontmatter key; empty-stringified values are skipped * to satisfy FactSchema's value.min(1) constraint. Arrays/objects use * JSON.stringify for stable deterministic ids. */ import type { VaultNote } from "./types.js"; import type { FactInput } from "../state/facts.js"; /** * Map a single VaultNote to one FactInput per frontmatter key. * * subject resolution: * - frontmatter.id (as string) if present and non-empty * - otherwise: note.path * * value stringification: * - string scalars: as-is * - number/boolean: String() * - arrays/objects: JSON.stringify (stable, preserves structure) * - empty-stringified values are SKIPPED (FactSchema value.min(1)) * * status:superseded filtering belongs in reindexNotes, NOT here. * This function maps ALL keys unconditionally. */ export declare function noteToFacts(note: VaultNote, opts: { scope: string; now: string; sourceRunId?: string | null; }): FactInput[]; export { SUPERSEDED_STATUS } from "./conventions.js"; //# sourceMappingURL=index-map.d.ts.map