/**
 * @fileoverview Logic for the searchPubMedArticles MCP tool.
 * Handles constructing ESearch and ESummary queries, interacting with
 * the NcbiService, and formatting the results.
 * @module src/mcp-server/tools/searchPubMedArticles/logic
 */
import { z } from "zod";
import { ParsedBriefSummary } from "../../../types-global/pubmedXml.js";
import { RequestContext } from "../../../utils/index.js";
export declare const SearchPubMedArticlesInputSchema: z.ZodObject<{
    queryTerm: z.ZodString;
    maxResults: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    sortBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["relevance", "pub_date", "author", "journal_name"]>>>;
    dateRange: z.ZodOptional<z.ZodObject<{
        minDate: z.ZodOptional<z.ZodString>;
        maxDate: z.ZodOptional<z.ZodString>;
        dateType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["pdat", "mdat", "edat"]>>>;
    }, "strip", z.ZodTypeAny, {
        dateType: "pdat" | "mdat" | "edat";
        minDate?: string | undefined;
        maxDate?: string | undefined;
    }, {
        minDate?: string | undefined;
        maxDate?: string | undefined;
        dateType?: "pdat" | "mdat" | "edat" | undefined;
    }>>;
    filterByPublicationTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    fetchBriefSummaries: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
    queryTerm: string;
    maxResults: number;
    sortBy: "relevance" | "pub_date" | "author" | "journal_name";
    fetchBriefSummaries: number;
    dateRange?: {
        dateType: "pdat" | "mdat" | "edat";
        minDate?: string | undefined;
        maxDate?: string | undefined;
    } | undefined;
    filterByPublicationTypes?: string[] | undefined;
}, {
    queryTerm: string;
    maxResults?: number | undefined;
    sortBy?: "relevance" | "pub_date" | "author" | "journal_name" | undefined;
    dateRange?: {
        minDate?: string | undefined;
        maxDate?: string | undefined;
        dateType?: "pdat" | "mdat" | "edat" | undefined;
    } | undefined;
    filterByPublicationTypes?: string[] | undefined;
    fetchBriefSummaries?: number | undefined;
}>;
export type SearchPubMedArticlesInput = z.infer<typeof SearchPubMedArticlesInputSchema>;
export type SearchPubMedArticlesOutput = {
    searchParameters: SearchPubMedArticlesInput;
    effectiveESearchTerm: string;
    totalFound: number;
    retrievedPmidCount: number;
    pmids: string[];
    briefSummaries: ParsedBriefSummary[];
    eSearchUrl: string;
    eSummaryUrl?: string;
};
export declare function searchPubMedArticlesLogic(input: SearchPubMedArticlesInput, parentRequestContext: RequestContext): Promise<SearchPubMedArticlesOutput>;
