export type PasteContentType = 'markdown' | 'plain'; export interface PasteRow { id: string; content: string; content_type: PasteContentType; title: string | null; source: string | null; job_id: number | null; created_at: number; view_count: number; } export interface SavePasteOpts { content: string; content_type?: PasteContentType; title?: string; source?: string; job_id?: number; } /** * Save a paste. Returns the new row's id (uuidv4). Returns null if the * underlying DB is broken (caller should fall back to truncation). */ export declare function savePaste(opts: SavePasteOpts): string | null; export declare function getPaste(id: string): PasteRow | null; export declare function bumpViewCount(id: string): void; export interface ListOpts { limit?: number; offset?: number; } export declare function listPastes(opts?: ListOpts): PasteRow[]; export declare function deletePaste(id: string): boolean; export declare function countPastes(): number; /** Public retention API — used by tests + manual /api/viewer/prune. */ export declare function pruneExpiredPastes(): number; /** Stop the periodic retention sweep (tests + graceful shutdown). */ export declare function stopViewerRetentionSweep(): void; export declare function closeViewerDb(): void; //# sourceMappingURL=viewer-local.d.ts.map