/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */

/**
 * A rule-set and config for the Solidarity JSON checker
 */
export interface Solidarity {
  config?: {
    /**
     * Identify what kind output should happen when a check is called
     */
    output?: "moderate" | "verbose" | "silent";
    [k: string]: unknown;
  };
  /**
   * List of requirement rules for your particular environment
   */
  requirements: {
    /**
     * @minItems 1
     */
    [k: string]: [Cli | Dir | File | Env | Shell | Custom, ...(Cli | Dir | File | Env | Shell | Custom)[]];
  };
  [k: string]: unknown;
}
/**
 * CLI Rule
 */
export interface Cli {
  rule: "cli";
  binary: string;
  semver?: string;
  version?: string;
  line?: string | number;
  matchIndex?: number;
  platform?: "darwin" | "macos" | "freebsd" | "linux" | "sunos" | "win32" | "windows";
  error?: string;
  ci?: boolean;
  [k: string]: unknown;
}
/**
 * Dir Rule
 */
export interface Dir {
  rule: "dir" | "directory";
  platform?: "darwin" | "macos" | "freebsd" | "linux" | "sunos" | "win32" | "windows";
  error?: string;
  ci?: boolean;
  [k: string]: unknown;
}
/**
 * File Rule
 */
export interface File {
  rule: "file";
  platform?: "darwin" | "macos" | "freebsd" | "linux" | "sunos" | "win32" | "windows";
  error?: string;
  ci?: boolean;
  [k: string]: unknown;
}
/**
 * ENV Rule
 */
export interface Env {
  rule: "env";
  platform?: "darwin" | "macos" | "freebsd" | "linux" | "sunos" | "win32" | "windows";
  error?: string;
  ci?: boolean;
  [k: string]: unknown;
}
/**
 * Shell Rule
 */
export interface Shell {
  rule: "shell";
  platform?: "darwin" | "macos" | "freebsd" | "linux" | "sunos" | "win32" | "windows";
  error?: string;
  ci?: boolean;
  /**
   * A regexp to search the output.
   */
  match: string;
  [k: string]: unknown;
}
/**
 * Custom Rule
 */
export interface Custom {
  rule: "custom";
  plugin: string;
  name: string;
  platform?: "darwin" | "macos" | "freebsd" | "linux" | "sunos" | "win32" | "windows";
  error?: string;
  ci?: boolean;
  /**
   * A regexp to search the output.
   */
  match?: string;
  [k: string]: unknown;
}
