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

//#region src/lib/sources/codemeta-json.d.ts
declare const codeMetaJsonDataSchema: z.ZodObject<{
  applicationCategory: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  applicationSubCategory: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  author: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
    affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    type: z.ZodOptional<z.ZodEnum<{
      Organization: "Organization";
      Person: "Person";
    }>>;
    url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  }, z.core.$strip>>>>>;
  buildInstructions: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  codeRepository: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  continuousIntegration: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  contributor: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
    affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    type: z.ZodOptional<z.ZodEnum<{
      Organization: "Organization";
      Person: "Person";
    }>>;
    url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  }, z.core.$strip>>>>>;
  copyrightHolder: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
    affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    type: z.ZodOptional<z.ZodEnum<{
      Organization: "Organization";
      Person: "Person";
    }>>;
    url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  }, z.core.$strip>>>>>;
  copyrightYear: z.ZodPipe<z.ZodTransform<number | undefined, unknown>, z.ZodOptional<z.ZodNumber>>;
  dateCreated: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  dateModified: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  datePublished: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  description: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  developmentStatus: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  downloadUrl: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  funder: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
    affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    type: z.ZodOptional<z.ZodEnum<{
      Organization: "Organization";
      Person: "Person";
    }>>;
    url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  }, z.core.$strip>>>>>;
  funding: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  identifier: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  installUrl: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  isAccessibleForFree: z.ZodOptional<z.ZodBoolean>;
  issueTracker: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  keywords: z.ZodOptional<z.ZodPipe<z.ZodTransform<string[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>;
  license: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | string[] | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>>;
  maintainer: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
    affiliation: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    email: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    familyName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    givenName: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    id: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    type: z.ZodOptional<z.ZodEnum<{
      Organization: "Organization";
      Person: "Person";
    }>>;
    url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
  }, z.core.$strip>>>>>;
  name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  operatingSystem: z.ZodOptional<z.ZodPipe<z.ZodTransform<string[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>;
  programmingLanguage: z.ZodOptional<z.ZodPipe<z.ZodTransform<string[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>;
  readme: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  relatedLink: z.ZodOptional<z.ZodPipe<z.ZodTransform<string | string[] | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>>;
  releaseNotes: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  runtimePlatform: z.ZodOptional<z.ZodPipe<z.ZodTransform<string[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodString>>>>;
  softwareHelp: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  softwareRequirements: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
    identifier: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    runtimePlatform: 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>>>>>;
  softwareSuggestions: z.ZodOptional<z.ZodPipe<z.ZodTransform<Record<string, unknown>[] | undefined, unknown>, z.ZodOptional<z.ZodArray<z.ZodObject<{
    identifier: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    name: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>;
    runtimePlatform: 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>>>>>;
  softwareVersion: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  url: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
  version: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodString>>>;
}, z.core.$strip>;
type CodeMetaJson = z.infer<typeof codeMetaJsonDataSchema>;
type CodeMetaJsonData = OneOrMany<SourceRecord<CodeMetaJson>> | undefined;
//#endregion
export { CodeMetaJson, CodeMetaJsonData };