import { OneOrMany, SourceRecord } from "../source.js";
import { z } from "zod";

//#region src/lib/sources/arduino-library-properties.d.ts
declare const arduinoLibraryPropertiesSchema: z.ZodObject<{
  architectures: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>;
  authors: z.ZodArray<z.ZodObject<{
    email: z.ZodOptional<z.ZodString>;
    name: z.ZodString;
  }, z.core.$strip>>;
  category: z.ZodOptional<z.ZodEnum<{
    Communication: "Communication";
    "Data Processing": "Data Processing";
    "Data Storage": "Data Storage";
    "Device Control": "Device Control";
    Display: "Display";
    Other: "Other";
    Sensors: "Sensors";
    "Signal Input/Output": "Signal Input/Output";
    Timing: "Timing";
    Uncategorized: "Uncategorized";
  }>>;
  depends: z.ZodArray<z.ZodObject<{
    name: z.ZodString;
    versionConstraint: z.ZodOptional<z.ZodString>;
  }, z.core.$strip>>;
  email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  includes: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>;
  license: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  maintainer: z.ZodOptional<z.ZodObject<{
    email: z.ZodOptional<z.ZodString>;
    name: z.ZodString;
  }, z.core.$strip>>;
  name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  paragraph: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  raw: z.ZodRecord<z.ZodString, z.ZodString>;
  repository: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  sentence: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  version: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
}, z.core.$strip>;
type ArduinoLibraryProperties = z.infer<typeof arduinoLibraryPropertiesSchema>;
type ArduinoLibraryPropertiesData = OneOrMany<SourceRecord<ArduinoLibraryProperties>> | undefined;
//#endregion
export { ArduinoLibraryPropertiesData };