/** * @fileoverview The citation locators a work record deposits — volume, issue, page range, and * article number — as one set of output fields, one projection, and one Markdown line. Both * crossref_get_work and crossref_search_works return them, and sharing the three pieces is what * keeps the two tools naming, describing, and rendering a locator identically. * @module mcp-server/tools/work-locators */ import { z } from '@cyanheads/mcp-ts-core'; import type { RawCrossrefWork } from '../../services/crossref/types.js'; /** The locator output fields, spread into a work's output schema. */ export declare const locatorFields: { volume: z.ZodOptional; issue: z.ZodOptional; page: z.ZodOptional; articleNumber: z.ZodOptional; }; type Locators = { volume?: string | undefined; issue?: string | undefined; page?: string | undefined; articleNumber?: string | undefined; }; /** * Each locator the record deposits, as deposited. A page and an article number are relayed * independently: some publishers deposit the same value in both, and neither is derived from * the other. */ export declare function projectLocators(raw: Pick): Locators; /** * The locators on one Markdown line, in citation order, or nothing when the record deposits * none. A locator is a string the publisher typed rather than a registry identifier — `N° 3`, * `4_Supplement`, `157-158` — so it takes the same escape as the rest of the deposited text. */ export declare function locatorLine(w: Locators): string | undefined; export {}; //# sourceMappingURL=work-locators.d.ts.map