/** * @fileoverview Single clinical study resource by NCT ID, bounded to a size a * client can hold. A resource read takes no arguments, so the caps are fixed * server-side and every omission is disclosed with the tool that retrieves it. * @module mcp-server/resources/definitions/study.resource */ import { z } from '@cyanheads/mcp-ts-core'; import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors'; export declare const studyResource: import("@cyanheads/mcp-ts-core").ResourceDefinition, z.ZodObject<{ nctId: z.ZodString; study: z.ZodRecord; resultsSummary: z.ZodOptional; seriousAdverseEvents: z.ZodOptional; otherAdverseEvents: z.ZodOptional; participantFlowPeriods: z.ZodOptional; baselineMeasures: z.ZodOptional; }, z.core.$strip>>; filtersApplied: z.ZodObject<{ totalLocations: z.ZodOptional; locationLimit: z.ZodOptional; totalSecondaryOutcomes: z.ZodOptional; totalOtherOutcomes: z.ZodOptional; totalReferences: z.ZodOptional; outcomeLimit: z.ZodOptional; referenceLimit: z.ZodOptional; }, z.core.$strip>; truncated: z.ZodBoolean; retrieval: z.ZodOptional>; }, z.core.$strip>, readonly [{ readonly reason: "study_not_found"; readonly code: JsonRpcErrorCode.NotFound; readonly when: "The provided NCT ID does not match any study at ClinicalTrials.gov."; readonly recovery: "Verify the NCT ID at clinicaltrials.gov or call clinicaltrials_search_studies to discover a valid identifier."; readonly thrownBy: "service"; }, { readonly reason: "rate_limited"; readonly code: JsonRpcErrorCode.RateLimited; readonly when: "ClinicalTrials.gov answered HTTP 429 on every attempt, or the call’s time budget ran out after a 429."; readonly recovery: "ClinicalTrials.gov rate-limited the request after several retries; wait about a minute before trying again."; readonly retryable: true; readonly thrownBy: "service"; }, { readonly reason: "retry_deadline_exceeded"; readonly code: JsonRpcErrorCode.Timeout; readonly when: "ClinicalTrials.gov did not answer within the read’s time budget, which covers every attempt and wait the read makes."; readonly recovery: "Retry after a minute or two. If the call asked for a lot at once — a large pageSize, many fields, or many nctIds — ask for less per call, or split the request across several calls."; readonly retryable: true; readonly thrownBy: "service"; }, { readonly reason: "upstream_timeout"; readonly code: JsonRpcErrorCode.Timeout; readonly when: "ClinicalTrials.gov answered HTTP 504 (gateway timeout) or 408 (request timeout), or sent no answer within the per-attempt timeout, on every attempt."; readonly recovery: "Retry after a few minutes. If it fails again, narrow the request — a more specific query or filter, a smaller pageSize, or fewer fields or nctIds — so ClinicalTrials.gov has less to compute and return."; readonly retryable: true; readonly thrownBy: "service"; }, { readonly reason: "upstream_unavailable"; readonly code: JsonRpcErrorCode.ServiceUnavailable; readonly when: "Every attempt failed on ClinicalTrials.gov’s side — HTTP 500, 502, or 503, a dropped connection or one the network gave up opening, or a 200 body that is not the JSON the route serves (an HTML page, unparseable text, the wrong shape) — or it answered with another 5xx, such as 505, or the connection was refused or its host name did not resolve, none of which is retried."; readonly recovery: "Retry the same call unchanged after a few minutes — the arguments were not at fault. If it keeps failing, ClinicalTrials.gov is down; tell the user rather than rewording the query."; readonly retryable: true; readonly thrownBy: "service"; }, { readonly reason: "upstream_rejected"; readonly code: JsonRpcErrorCode.ServiceUnavailable; readonly when: "ClinicalTrials.gov refused the request with a status its API does not use for a bad query — HTTP 501, a 3xx, or a 4xx such as 401, 403, or 410 — or answered with an HTML error page in place of its own 404."; readonly recovery: "Do not retry the same call right away or reword it — ClinicalTrials.gov refused it for a reason unrelated to the arguments, and it will refuse again. Tell the user the registry is not serving this request, and try again later."; readonly retryable: false; readonly thrownBy: "service"; }]>; //# sourceMappingURL=study.resource.d.ts.map