import { z } from "@hono/zod-openapi";

//#region src/validation/json-schemas.d.ts
interface PrimitiveSchema {
  type: 'string' | 'number' | 'integer' | 'boolean' | 'null';
}
interface ArraySchema {
  type: 'array';
  items?: JsonSchemaProperty | JsonSchemaProperty[];
}
interface ObjectSchema {
  type: 'object';
  properties?: Record<string, JsonSchemaProperty>;
}
type JsonSchemaProperty = (PrimitiveSchema | ArraySchema | ObjectSchema) & {
  [key: string]: unknown;
  description: string;
};
type JsonSchemaForLlmSchemaType = z.infer<typeof JsonSchemaForLlmSchema>;
declare const JsonSchemaForLlmSchema: z.ZodObject<{
  type: z.ZodLiteral<"object">;
  properties: z.ZodRecord<z.ZodString, z.ZodType<JsonSchemaProperty, unknown, z.core.$ZodTypeInternals<JsonSchemaProperty, unknown>>>;
  required: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
  additionalProperties: z.ZodOptional<z.ZodBoolean>;
  description: z.ZodOptional<z.ZodString>;
}, z.core.$loose>;
//#endregion
export { JsonSchemaForLlmSchema, JsonSchemaForLlmSchemaType, JsonSchemaProperty };