import type { MemoryIndex, ProjectMemoryKind, ProjectMemoryReadResult, ProjectMemoryShowResult, StoredProjectMemory } from '../types.js'; export declare function listMarkdownFiles(dirPath: string, options?: { maxDepth?: number; skipDotfiles?: boolean; }): string[]; export declare function emptyByKind(): Record; export declare function emptyIndex(): MemoryIndex; export declare function renderEmptyIndex(): string; /** * Ensure `.peaks/memory/` and its `index.json` exist for a project, with * the same full-shape empty index the generator emits when there are zero * memories. Idempotent — safe to call on every skill activation. * * Why this exists: before this helper, `.peaks/memory/` was only created * by `extractSessionMemories` when at least one memory markdown was being * written, and `index.json` was only emitted by the generator when at * least one markdown was on disk. Stock projects therefore had no * `.peaks/memory/` directory and no index, even after `peaks project * memories` was read. Bootstrap closes that cold-start gap. * * This function is fail-open for the same reason the rest of the * presence layer is fail-open: a failure here must NOT block skill * activation. Any error is swallowed and surfaced only via the returned * boolean. Callers that need the truth should check the result. */ export declare function ensureMemoryBootstrap(projectRoot: string): boolean; export declare function readProjectMemories(projectRoot: string): ProjectMemoryReadResult; /** * Read a single project memory's full body by name. Returns null when * the memory does not exist. The on-disk body is returned verbatim * (pretty). The CLI layer applies `formatMdCompact` when `format: 'compact'` */ export declare function readProjectMemoryBody(projectRoot: string, name: string): ProjectMemoryShowResult | null;