import { Database as BunDatabase } from "bun:sqlite"; import type { Library, Page, CrawlJob } from "../types.js"; export declare class Database { private db; private hasColumn; private ensureColumn; init(): void; /** Expose raw DB for search engine direct queries */ raw(): BunDatabase; private migrate; addLibrary(lib: { id: string; name: string; displayName: string; url: string; version?: string; crawlConfig?: object; }): import("bun:sqlite").Changes; listLibraries(status?: string): Library[]; getLibraryByName(name: string): Library | undefined; getLibraryById(id: string): Library | undefined; removeLibrary(id: string): import("bun:sqlite").Changes; renameLibrary(id: string, name: string, displayName: string): import("bun:sqlite").Changes; updateLibraryStatus(id: string, status: string): import("bun:sqlite").Changes; updateLibraryStats(id: string, pageCount: number, chunkCount: number): import("bun:sqlite").Changes; upsertPage(page: { id: string; libraryId: string; url: string; path: string; title: string; contentMarkdown: string; contentHash: string; headings: object[]; }): string; getPage(opts: { url?: string; library?: string; path?: string; }): Page | undefined; getPagesByLibrary(libraryId: string): Page[]; insertChunks(chunks: Array<{ id: string; pageId: string; libraryId: string; content: string; headingContext: string; chunkIndex: number; tokenCount: number; hasCodeBlock: boolean; }>): void; deleteChunksByPage(pageId: string): void; createJob(job: { id: string; libraryId: string; sessionId?: string; }): CrawlJob; getJob(id: string): CrawlJob | undefined; updateJob(id: string, updates: Partial>): void; listJobs(libraryId?: string): CrawlJob[]; }