export type SortOption = 'relevance' | 'pub_date' | 'first_author';
export type OutputMode = 'compact' | 'full';
export type SectionType = 'abstract' | 'introduction' | 'methods' | 'results' | 'discussion' | 'conclusions' | 'references' | 'all';
export interface SearchFilters {
    publication_types?: string[];
    date_range?: {
        start?: string;
        end?: string;
    };
    languages?: string[];
    has_abstract?: boolean;
    free_full_text?: boolean;
    humans_only?: boolean;
}
export interface PubMedSearchResult {
    idList: string[];
    count: number;
    retMax: number;
    retStart: number;
    queryTranslation?: string;
}
export interface PubMedArticle {
    pmid: string;
    title: string;
    authors: string[];
    journal: string;
    publicationDate: string;
    abstract?: string;
    doi?: string;
    pmcId?: string;
    url: string;
}
export interface PubMedSummary {
    pmid: string;
    title: string;
    authors: string[];
    journal: string;
    publicationDate: string;
    doi?: string;
    pmcId?: string;
}
export interface FullAbstractResult {
    pmid: string;
    title: string;
    authors: string[];
    journal: string;
    publicationDate: string;
    fullAbstract: string;
    doi?: string;
    pmcId?: string;
}
export interface FullTextResult {
    pmid: string;
    pmcId: string;
    title: string;
    fullText: string;
    sections: {
        title: string;
        content: string;
    }[];
}
export interface RISExportResult {
    pmids: string[];
    risData: string;
    successCount: number;
    errorCount: number;
    errors: string[];
}
export interface CitationCountResult {
    pmid: string;
    title: string;
    citationCount: number;
    citingPmids: string[];
    error?: string;
}
export interface CountResult {
    query: string;
    queryTranslation?: string;
    count: number;
}
export interface IdConversionResult {
    conversions: {
        input: string;
        pmid?: string;
        pmcid?: string;
        doi?: string;
    }[];
    failed: string[];
}
export interface CompactArticle {
    pmid: string;
    title: string;
    authors: string;
    journal: string;
    year: string;
    pmcid?: string;
    doi?: string;
}
export interface CompactSearchResult {
    total: number;
    showing: number;
    retstart: number;
    results: CompactArticle[];
    next_start?: number;
}
export declare function searchPubMed(query: string, maxResults?: number, startIndex?: number, sort?: SortOption, filters?: SearchFilters): Promise<PubMedSearchResult>;
export declare function countResults(query: string): Promise<CountResult>;
export declare function getArticleSummaries(pmids: string[]): Promise<PubMedSummary[]>;
export declare function getArticleDetails(pmids: string[]): Promise<PubMedArticle[]>;
export declare function getFullAbstract(pmids: string[]): Promise<FullAbstractResult[]>;
export declare function getFullText(pmcIds: string[], sections?: SectionType[]): Promise<FullTextResult[]>;
export declare function exportRIS(pmids: string[]): Promise<RISExportResult>;
export declare function searchAndFetchArticles(query: string, maxResults?: number): Promise<PubMedArticle[]>;
export declare function getCitationCounts(pmids: string[]): Promise<CitationCountResult[]>;
export interface SimilarArticleResult {
    pmid: string;
    title: string;
    authors: string[];
    journal: string;
    publicationDate: string;
    abstract?: string;
    similarityScore?: number;
    doi?: string;
    pmcId?: string;
}
export interface BatchOperation {
    pmid: string;
    operation: 'abstract' | 'citations' | 'similar' | 'ris_export' | 'full_text';
    status: 'pending' | 'processing' | 'completed' | 'error';
    result?: any;
    error?: string;
}
export interface BatchProcessingResult {
    taskId: string;
    operations: BatchOperation[];
    summary: {
        total: number;
        completed: number;
        failed: number;
        processing: number;
    };
    results: {
        abstracts?: FullAbstractResult[];
        citations?: CitationCountResult[];
        similar?: {
            [pmid: string]: SimilarArticleResult[];
        };
        risExports?: string;
        fullTexts?: FullTextResult[];
    };
}
export declare function findSimilarArticles(pmid: string, maxResults?: number): Promise<SimilarArticleResult[]>;
export declare function convertIds(ids: string[], fromType: 'pmid' | 'pmcid' | 'doi', toType: 'pmid' | 'pmcid' | 'doi'): Promise<IdConversionResult>;
export declare function batchProcess(pmids: string[], operations: string[], maxConcurrency?: number): Promise<BatchProcessingResult>;
//# sourceMappingURL=pubmed-api.d.ts.map