/* 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.
 */

/**
 * @minItems 0
 * @maxItems 1
 */
export type SortSchema =
  | []
  | [
      {
        /**
         * Specifiese the order in which the group blocks appear. Groups not listed will be appended, sorted by 'name'
         */
        groupOrder?: string[];
        /**
         * Defines additional groups imports can belong to. Keys of this object are the group names.
         */
        groups?: {
          [k: string]: Group;
        };
        /**
         * Whether to separate group blocks by a newline
         */
        separateGroups?: boolean;
        /**
         * Whether to insert a comment containing the groups label at the beginning of the groups block
         */
        useLabels?: boolean;
      }
    ];

/**
 * This interface was referenced by `undefined`'s JSON-Schema definition
 * via the `patternProperty` ".*".
 */
export interface Group {
  /**
   * Label for the group
   */
  label?: string;
  /**
   * If two or more groups are a match for a given import, groups with higher priority 'win'. Defaults to 0. Negative numbers disable the group. Some groups cannot be disabled (named, namespace, sideEffect)
   */
  priority?: number;
  /**
   * String representation of a regular expression that selects the imports for this group. Matches against 'source' string of import
   */
  rxSource?: string;
  /**
   * Sort imports in this group as if they had no side effects
   */
  sortWhenNoLocalName?: boolean;
}
