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

//#region src/lib/sources/publiccode-yaml.d.ts
declare const publiccodeSchema: z.ZodObject<{
  applicationSuite: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  availableLanguages: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>;
  categories: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>;
  contacts: z.ZodArray<z.ZodObject<{
    affiliation: z.ZodOptional<z.ZodString>;
    email: z.ZodOptional<z.ZodString>;
    name: z.ZodString;
    phone: z.ZodOptional<z.ZodString>;
  }, z.core.$strip>>;
  contractors: z.ZodArray<z.ZodObject<{
    name: z.ZodString;
    until: z.ZodOptional<z.ZodString>;
    website: z.ZodOptional<z.ZodString>;
  }, z.core.$strip>>;
  dependencies: z.ZodArray<z.ZodObject<{
    category: z.ZodEnum<{
      hardware: "hardware";
      open: "open";
      proprietary: "proprietary";
    }>;
    name: z.ZodString;
    optional: z.ZodOptional<z.ZodBoolean>;
    version: z.ZodOptional<z.ZodString>;
    versionMax: z.ZodOptional<z.ZodString>;
    versionMin: z.ZodOptional<z.ZodString>;
  }, z.core.$strip>>;
  description: z.ZodOptional<z.ZodObject<{
    documentation: z.ZodOptional<z.ZodString>;
    features: z.ZodArray<z.ZodString>;
    genericName: z.ZodOptional<z.ZodString>;
    localisedName: z.ZodOptional<z.ZodString>;
    longDescription: z.ZodOptional<z.ZodString>;
    shortDescription: z.ZodOptional<z.ZodString>;
  }, z.core.$strip>>;
  descriptions: z.ZodRecord<z.ZodString, z.ZodObject<{
    documentation: z.ZodOptional<z.ZodString>;
    features: z.ZodArray<z.ZodString>;
    genericName: z.ZodOptional<z.ZodString>;
    localisedName: z.ZodOptional<z.ZodString>;
    longDescription: z.ZodOptional<z.ZodString>;
    shortDescription: z.ZodOptional<z.ZodString>;
  }, z.core.$strip>>;
  developmentStatus: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  inputTypes: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>;
  isBasedOn: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  landingUrl: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  license: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  localisationReady: z.ZodOptional<z.ZodBoolean>;
  logo: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  mainCopyrightOwner: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  maintenanceType: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  monochromeLogo: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  outputTypes: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>;
  platforms: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>;
  publiccodeYmlVersion: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  releaseDate: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  repoOwner: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  roadmap: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  softwareType: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  softwareVersion: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  usedBy: z.ZodPipe<z.ZodTransform<string[], unknown>, z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
type Publiccode = z.infer<typeof publiccodeSchema>;
type PubliccodeYamlData = OneOrMany<SourceRecord<Publiccode>> | undefined;
//#endregion
export { PubliccodeYamlData };