/**
 * Discovery service for unified research paper search
 *
 * @module research/services/discovery
 */
import { ResearchPaper } from '../types.js';
import { SemanticScholarClient } from '../clients/semantic-scholar.js';
import { CrossRefClient } from '../clients/crossref.js';
import { ArxivClient } from '../clients/arxiv.js';
import { CacheManager } from '../cache/manager.js';
import { SearchOptionsExtended, GapReport } from './types.js';
/**
 * Configuration for discovery service
 */
export interface DiscoveryConfig {
    /** Semantic Scholar client */
    semanticScholar?: SemanticScholarClient;
    /** CrossRef client */
    crossref?: CrossRefClient;
    /** arXiv client */
    arxiv?: ArxivClient;
    /** Cache manager */
    cache?: CacheManager;
    /** Corpus path for gap analysis */
    corpusPath?: string;
}
/**
 * Discovery service for unified search across API clients
 */
export declare class DiscoveryService {
    private semanticScholar;
    private crossref;
    private arxiv;
    private cache;
    constructor(config?: DiscoveryConfig);
    /**
     * Search across all configured API clients
     */
    search(query: string, options?: SearchOptionsExtended): Promise<ResearchPaper[]>;
    /**
     * Analyze gaps in research corpus
     */
    analyzeGaps(_corpusRefIds: string[]): Promise<GapReport>;
    /**
     * Follow citation network starting from a paper
     */
    followCitations(paperId: string, depth?: number): Promise<ResearchPaper[]>;
    /**
     * Search Semantic Scholar
     */
    private searchSemanticScholar;
    /**
     * Search CrossRef
     */
    private searchCrossRef;
    /**
     * Search arXiv
     */
    private searchArxiv;
    /**
     * Deduplicate papers by DOI, arXiv ID, or title similarity
     */
    private deduplicatePapers;
    /**
     * Rank papers by relevance to query
     */
    private rankByRelevance;
    /**
     * Calculate relevance score (0-1) for a paper
     */
    private calculateRelevance;
    /**
     * Recursively follow citations
     */
    private followCitationsRecursive;
}
//# sourceMappingURL=discovery.d.ts.map