/**
 * @fileoverview Search clinical trial studies from ClinicalTrials.gov.
 * @module mcp-server/tools/definitions/search-studies.tool
 */
import { z } from '@cyanheads/mcp-ts-core';
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
export declare const searchStudies: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
    query: z.ZodOptional<z.ZodString>;
    conditionQuery: z.ZodOptional<z.ZodString>;
    interventionQuery: z.ZodOptional<z.ZodString>;
    locationQuery: z.ZodOptional<z.ZodString>;
    sponsorQuery: z.ZodOptional<z.ZodString>;
    titleQuery: z.ZodOptional<z.ZodString>;
    outcomeQuery: z.ZodOptional<z.ZodString>;
    statusFilter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    phaseFilter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    advancedFilter: z.ZodOptional<z.ZodString>;
    geoFilter: z.ZodOptional<z.ZodString>;
    nctIds: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
    sort: z.ZodOptional<z.ZodString>;
    pageSize: z.ZodDefault<z.ZodNumber>;
    pageToken: z.ZodOptional<z.ZodString>;
    countTotal: z.ZodDefault<z.ZodBoolean>;
    includeUnknownEnrollment: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>, z.ZodObject<{
    studies: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    totalCount: z.ZodOptional<z.ZodNumber>;
    nextPageToken: z.ZodOptional<z.ZodString>;
    requestedFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>, readonly [{
    readonly reason: "ids_not_found";
    readonly code: JsonRpcErrorCode.NotFound;
    readonly when: "One or more NCT IDs in the nctIds filter are not present at ClinicalTrials.gov.";
    readonly recovery: "Verify each NCT ID exists at clinicaltrials.gov, or call clinicaltrials_search_studies first to discover valid identifiers.";
}, {
    readonly reason: "field_invalid";
    readonly code: JsonRpcErrorCode.ValidationError;
    readonly when: "A field name in the fields parameter or AREA[] expression is invalid (often a module name instead of a piece name).";
    readonly recovery: "Call clinicaltrials_get_field_definitions to browse the field tree; use PascalCase piece names like OverallStatus, Phase, or StudyType.";
}, {
    readonly reason: "enum_invalid";
    readonly code: JsonRpcErrorCode.ValidationError;
    readonly when: "statusFilter or phaseFilter contains a value ClinicalTrials.gov does not accept.";
    readonly recovery: "Call clinicaltrials_get_field_values with fields=[\"OverallStatus\"] or fields=[\"Phase\"] to see the valid enum values the filter accepts.";
}, {
    readonly reason: "query_parse_error";
    readonly code: JsonRpcErrorCode.ValidationError;
    readonly when: "A free-text query or advancedFilter expression uses syntax the upstream Essie parser rejects — typically `[ ]` (AREA[]-reserved) or an unmatched `(` / `)` in a query/conditionQuery/etc. value.";
    readonly recovery: "Field-scoped search uses advancedFilter with AREA[FieldName]value (call clinicaltrials_get_field_definitions to look up the right FieldName); free-text fields (query, conditionQuery, etc.) take plain words plus AND, OR, NOT — `[ ]` are reserved (advancedFilter AREA[] only); `( )` group sub-expressions and are safe when matched; `,` acts as AND.";
}, {
    readonly reason: "rate_limited";
    readonly code: JsonRpcErrorCode.RateLimited;
    readonly when: "ClinicalTrials.gov returned 429 after retry budget exhausted.";
    readonly recovery: "ClinicalTrials.gov rate-limited the request after several retries; wait about a minute before trying again.";
    readonly retryable: true;
}], {
    readonly searchCriteria: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    readonly notice: z.ZodOptional<z.ZodString>;
}>;
//# sourceMappingURL=search-studies.tool.d.ts.map