UNPKG

@kareemaly/researcher

Version:
49 lines (48 loc) 1.25 kB
import { SearchResult, ProcessedContent } from './search'; export interface StorageConfig { basePath: string; createDirectories?: boolean; } export interface StorageStats { totalSizeBytes: number; searchCount: number; contentCount: number; } export interface IStorage { /** * Initialize storage, creating necessary directories */ initialize(): Promise<void>; /** * Save search results and return the unique ID */ saveSearch(search: SearchResult): Promise<string>; /** * Save processed content for a URL */ saveContent(searchId: string, content: ProcessedContent): Promise<void>; /** * Get search results by ID */ getSearch(id: string): Promise<SearchResult | null>; /** * Get processed content for a URL */ getContent(searchId: string, url: string): Promise<ProcessedContent | null>; /** * List all searches with optional pagination */ listSearches(): Promise<SearchResult[]>; /** * Get storage statistics */ getStats(): Promise<StorageStats>; /** * Clean up old data */ cleanOlderThan(date: Date): Promise<number>; /** * Clean all data */ cleanAll(): Promise<number>; }