/** * AI Classification for Search Results * * Stage 5 of the entity resolution pipeline. * Uses Gemini to rank URLs by likelihood of being the correct match. */ import type { ResponseCache } from '../caching/types'; import type { CostTracker } from '../costs/tracker'; import type { AIClassificationConfig, ClassificationResult, DeferredItem } from './types'; /** * Full configuration for AI classification. */ export interface ClassificationFullConfig extends AIClassificationConfig { /** Response cache for API calls */ cache?: ResponseCache | undefined; /** Cost tracker for API usage billing */ costTracker?: CostTracker | undefined; /** Request timeout in milliseconds */ timeout?: number | undefined; /** Custom fetch function (for testing) */ customFetch?: typeof fetch | undefined; } /** * Classify a single deferred item using AI. * * @param item - Deferred item with search results * @param config - AI classification configuration * @returns Classification result with ranked URLs */ export declare function classifyItem(item: DeferredItem, config: ClassificationFullConfig): Promise; /** * Classify multiple deferred items using AI. * * @param items - Array of deferred items * @param config - AI classification configuration * @returns Array of classification results */ export declare function classifyItems(items: DeferredItem[], config: ClassificationFullConfig): Promise; /** * Get the best URL from a classification result. * * @param result - Classification result * @returns Best URL or null if none found */ export declare function getBestUrl(result: ClassificationResult): string | null; /** * Convert classification result to a simplified match format. */ export declare function classificationToMatch(result: ClassificationResult): { url: string; source: string; title: string; } | null; //# sourceMappingURL=classification.d.ts.map