/** * @fileoverview The post-publication update links a work record carries — `updated-by` (the * notices issued against it) and `update-to` (the works it is itself a notice for) — as one pair * of output fields, one projection, and one Markdown list per field. Both crossref_get_work and * crossref_search_works return them, and sharing the pieces is what keeps the two tools naming, * describing, and rendering an update entry identically. * @module mcp-server/tools/work-updates */ import { z } from '@cyanheads/mcp-ts-core'; import type { RawCrossrefWork } from '../../services/crossref/types.js'; declare const UpdateSchema: z.ZodObject<{ doi: z.ZodString; type: z.ZodString; source: z.ZodString; recordId: z.ZodOptional; updated: z.ZodOptional; month: z.ZodOptional; day: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; /** One update link as both tools return it. */ export type Update = z.infer; /** The update output fields, spread into a work's output schema. */ export declare const updateFields: { updatedBy: z.ZodOptional; updated: z.ZodOptional; month: z.ZodOptional; day: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>>; updateTo: z.ZodOptional; updated: z.ZodOptional; month: z.ZodOptional; day: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>>>; }; /** * Each update list the record deposits, every entry in deposited order. A list deposited as `[]` * is no update at all and is omitted, like one never deposited. */ export declare function projectUpdates(raw: Pick): { updatedBy?: Update[]; updateTo?: Update[]; }; /** The labelled Markdown list for each update field the work carries, `updatedBy` first. */ export declare function updateSections(w: { updatedBy?: Update[] | undefined; updateTo?: Update[] | undefined; }): string[][]; export {}; //# sourceMappingURL=work-updates.d.ts.map