/** * Shared output-schema fragments reused across tool domains. * * Part of the `outputSchema` work scoped in * docs/projects/mcp-server/outputschema-scope.md (issue #105). * * Fragments are exposed as **factory functions**, not shared constants. * The JSON Schema converter emits a `$ref` whenever it sees the *same * schema object* more than once in a single conversion -- so a tool that * uses `imageSchema` several times (e.g. an artist card with images on * the artist, its top tracks, and its top albums) would serialise with * `$ref`s, which older Claude Desktop builds failed to compile. Calling a * factory yields a fresh object per use, so every occurrence inlines. * * Object schemas use `.passthrough()` so the advertised JSON Schema is * `additionalProperties`-open -- a field the Rewind API adds later does * not break a client validating against it. */ import { z } from 'zod'; /** * Image reference attached to listening / watching / collecting * entities. Every key is optional and nullable -- the API omits keys it * has no value for, and the whole object is null when there is no image. */ export declare function imageSchema(): z.ZodNullable>; url: z.ZodOptional>; thumbhash: z.ZodOptional>; dominant_color: z.ZodOptional>; accent_color: z.ZodOptional>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ cdn_url: z.ZodOptional>; url: z.ZodOptional>; thumbhash: z.ZodOptional>; dominant_color: z.ZodOptional>; accent_color: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ cdn_url: z.ZodOptional>; url: z.ZodOptional>; thumbhash: z.ZodOptional>; dominant_color: z.ZodOptional>; accent_color: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">>>; /** * Canonical pagination block -- the `pagination` field of a * `{ data: [...], pagination: {...} }` response. Used by the browse / * collection list endpoints. Always present on a paginated response. */ export declare function paginationSchema(): z.ZodObject<{ page: z.ZodNumber; limit: z.ZodNumber; total: z.ZodNumber; total_pages: z.ZodNumber; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ page: z.ZodNumber; limit: z.ZodNumber; total: z.ZodNumber; total_pages: z.ZodNumber; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ page: z.ZodNumber; limit: z.ZodNumber; total: z.ZodNumber; total_pages: z.ZodNumber; }, z.ZodTypeAny, "passthrough">>; /** * Pagination variants that are NOT the canonical four-field block. * Centralised here so a domain does not have to re-discover them: * - search / semantic_search report only a result `total` * - the unified feed reports only a `has_more` cursor flag * - the reading-highlights endpoint omits `limit` */ export declare function searchPaginationSchema(): z.ZodObject<{ total: z.ZodNumber; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ total: z.ZodNumber; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ total: z.ZodNumber; }, z.ZodTypeAny, "passthrough">>; export declare function feedPaginationSchema(): z.ZodObject<{ has_more: z.ZodBoolean; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ has_more: z.ZodBoolean; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ has_more: z.ZodBoolean; }, z.ZodTypeAny, "passthrough">>; export declare function highlightsPaginationSchema(): z.ZodObject<{ page: z.ZodNumber; total: z.ZodNumber; total_pages: z.ZodNumber; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ page: z.ZodNumber; total: z.ZodNumber; total_pages: z.ZodNumber; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ page: z.ZodNumber; total: z.ZodNumber; total_pages: z.ZodNumber; }, z.ZodTypeAny, "passthrough">>;