import { buildNoteIndexMeta } from './note-index-meta.js'; import type { Note, NoteIndexEntry, NoteSnapshot, NoteSnapshotEntry, NotesListQuery, SnapshotTrigger } from './types.js'; export declare class NotesStore { private initialized; private readonly failedCleanupPaths; initialize(): Promise; addNote(note: Note): void; getNote(id: string): Note | null; updateNote(id: string, patch: Partial): Note | null; deleteNoteAtomically(id: string): boolean; listNotes(query?: NotesListQuery): Promise<{ items: NoteIndexEntry[]; total: number; limit: number; offset: number; hasMore: boolean; }>; saveAttachment(noteId: string, fileName: string, buffer: Buffer | { filePath: string; }): Promise<{ relativePath: string; size: number; }>; resolveAttachmentPath(noteId: string, relativePath: string): string; deleteAttachmentFile(noteId: string, relativePath: string): Promise; saveSnapshot(note: Note, trigger: SnapshotTrigger): void; listSnapshots(noteId: string): NoteSnapshotEntry[]; getSnapshot(noteId: string, timestamp: number): NoteSnapshot | null; pruneSnapshots(noteId: string, maxCount: number): void; queueAttachmentCleanup(noteId: string, relativePath: string): void; queueDeletionCleanup(kind: 'media' | 'share', id: string): void; drainDeletionCleanup(limit?: number): void; /** Called after commit and on startup. A failed deletion remains durable for the next attempt. */ drainAttachmentCleanup(limit?: number): void; } export { buildNoteIndexMeta };