import type { FastifySchema } from "fastify"; export type SwaggerValueType = | string | number | boolean | null | SwaggerValueType[] | { [key: string]: SwaggerValueType }; type SwaggerMediaType = "object" | "string" | "integer" | "boolean" | "array" | "number"; type SwaggerMediaFormat = | "binary" | "base64" | "uuid" | "email" | "date" | "date-time" | "password" | "byte" | "uri" | "hostname" | "ipv4" | "ipv6"; export type SwaggerMessage = { type?: SwaggerMediaType; description?: string; format?: SwaggerMediaFormat; pattern?: string; nullable?: boolean; uniqueItems?: boolean; writeOnly?: boolean; readOnly?: boolean; items?: SwaggerMessage; additionalProperties?: SwaggerMessage | boolean; properties?: Record>; examples?: SwaggerValueType[]; example?: SwaggerValueType; required?: string[]; oneOf?: SwaggerMessage[]; allOf?: SwaggerMessage[]; }; export type SwaggerSchema = FastifySchema & { params?: SwaggerMessage; body?: SwaggerMessage; querystring?: SwaggerMessage; response?: Record; };