/**
 * Extraction operations for DatabaseService
 *
 * Handles all CRUD operations for structured extractions
 * from page_schema processing.
 */
import Database from 'better-sqlite3';
import { Extraction } from '../../../models/extraction.js';
/**
 * Insert an extraction record
 *
 * @param db - Database connection
 * @param extraction - Extraction data
 * @param updateMetadataCounts - Callback to update metadata counts
 * @returns string - The extraction ID
 */
export declare function insertExtraction(db: Database.Database, extraction: Extraction, updateMetadataCounts: () => void): string;
/**
 * Get all extractions for a document
 *
 * @param db - Database connection
 * @param documentId - Document ID
 * @returns Extraction[] - Array of extractions ordered by created_at DESC
 */
export declare function getExtractionsByDocument(db: Database.Database, documentId: string): Extraction[];
/**
 * Get a single extraction by ID
 *
 * @param db - Database connection
 * @param id - Extraction ID
 * @returns Extraction or null if not found
 */
export declare function getExtraction(db: Database.Database, id: string): Extraction | null;
/**
 * Search extractions by text matching within extraction_json content.
 * Uses LIKE for simple text matching (no FTS5 for extractions).
 *
 * @param db - Database connection
 * @param query - Search query string
 * @param filters - Optional filters (document_filter, limit)
 * @returns Extraction[] - Matching extractions ordered by created_at DESC
 */
export declare function searchExtractions(db: Database.Database, query: string, filters?: {
    document_filter?: string[];
    limit?: number;
}): Extraction[];
//# sourceMappingURL=extraction-operations.d.ts.map