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

export type JSONSchemaForNPMPackageJsonFiles = JSONSchemaForNPMPackageJsonFiles1 & JSONSchemaForNPMPackageJsonFiles2;
export type JSONSchemaForNPMPackageJsonFiles1 = {
  [k: string]: unknown | undefined;
};
/**
 * A person who has been involved in creating or maintaining this package.
 */
export type Person = {
  name: string;
  url?: string;
  email?: string;
  [k: string]: unknown | undefined;
} & Person1;
export type Person1 =
  | {
      name: string;
      url?: string;
      email?: string;
      [k: string]: unknown | undefined;
    }
  | string;
export type PackageExportsEntry = PackageExportsEntryPath | PackageExportsEntryObject;
/**
 * The module path that is resolved when this specifier is imported. Set to `null` to disallow importing this module.
 */
export type PackageExportsEntryPath = string | null;
/**
 * Used to allow fallbacks in case this environment doesn't support the preceding entries.
 */
export type PackageExportsFallback = PackageExportsEntry[];
/**
 * Used to allow fallbacks in case this environment doesn't support the preceding entries.
 */
export type PackageExportsFallback1 = PackageExportsEntry[];
/**
 * URL to a website with details about how to fund the package.
 */
export type FundingUrl = string;
/**
 * Run AFTER the package is published.
 */
export type ScriptsPublishAfter = string;
/**
 * Run AFTER the package is installed.
 */
export type ScriptsInstallAfter = string;
/**
 * Run BEFORE the package is uninstalled.
 */
export type ScriptsUninstallBefore = string;
/**
 * Run BEFORE bump the package version.
 */
export type ScriptsVersionBefore = string;
/**
 * Run by the 'npm test' command.
 */
export type ScriptsTest = string;
/**
 * Run by the 'npm stop' command.
 */
export type ScriptsStop = string;
/**
 * Run by the 'npm start' command.
 */
export type ScriptsStart = string;
/**
 * Run by the 'npm restart' command. Note: 'npm restart' will run the stop and start scripts if no restart script is provided.
 */
export type ScriptsRestart = string;
/**
 * ESLint supports the use of third-party plugins. Before using the plugin, you have to install it using npm.
 */
export type Plugins = string[];
/**
 * ESLint comes with a large number of rules. You can modify which rules your project uses either using configuration comments or configuration files.
 */
export type Rules = PossibleErrors &
  BestPractices &
  StrictMode &
  Variables &
  NodeAndCommonJs &
  StylisticIssues &
  EcmaScript6 &
  Legacy;
/**
 * Allows to override configuration for files and folders, specified by glob patterns
 */
export type Overrides = {
  /**
   * Glob pattern for files to apply 'overrides' configuration, relative to the directory of the config file
   */
  files: string | [string, ...string[]];
  /**
   * If you want to extend a specific configuration file, you can use the extends property and specify the path to the file. The path can be either relative or absolute.
   */
  extends?: string | string[];
  /**
   * If a file matches any of the 'excludedFiles' glob patterns, the 'overrides' configuration won't apply
   */
  excludedFiles?: string | string[];
  ecmaFeatures?: EcmaFeatures;
  env?: Env;
  globals?: Globals;
  parser?: string;
  parserOptions?: ParserOptions;
  plugins?: Plugins;
  /**
   * To specify a processor, specify the plugin name and processor name joined by a forward slash
   */
  processor?: string;
  rules?: Rules;
  settings?: Settings;
  overrides?: Overrides;
}[];
export type SchemaForPrettierrc = (OptionsDefinition & OverridesDefinition) | string;
/**
 * Your configuration can extend an existing configuration(s) (whether your own or a third-party config)
 */
export type SimpleStringOrArrayStringRule = (string | SimpleArrayStringRule) &
  (((string | SimpleArrayStringRule) & string) | ((string | SimpleArrayStringRule) & unknown[]));
/**
 * @minItems 1
 *
 * This interface was referenced by `undefined`'s JSON-Schema definition
 * via the `patternProperty` ".*".
 */
export type SimpleArrayStringRule = [string, ...string[]];
/**
 * Plugins are rules or sets of rules built by the community that support methodologies, toolsets, non-standard CSS features, or very specific use cases
 *
 * @minItems 1
 */
export type SimpleArrayStringRule1 = [string, ...string[]];
export type AllRules = AtRule &
  Block &
  Color &
  Comment &
  CustomMedia &
  CustomProperty &
  Declaration &
  DeclarationBlock &
  Font &
  Function &
  GeneralSheet &
  KeyframeDeclaration &
  Length &
  MediaFeature &
  MediaQueryList &
  Number &
  Property &
  RootRule &
  Rule &
  Selector &
  SelectorList &
  ShorthandProperty &
  String &
  StylelintDisableComment &
  Time &
  Unit &
  Value &
  ValueList;
/**
 * Specify a blacklist of disallowed at-rules
 */
export type ArrayStringRule = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Specify lowercase or uppercase for at-rules names
 */
export type LowerUpperRule = (
  | null
  | ("lower" | "upper" | [])
  | [
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline after at-rule names
 */
export type AlwaysMultiLineRule = (
  | null
  | ("always" | "always-multi-line" | [])
  | [
      (("always" | "always-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | [])
          | [
              (("always" | "always-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | [])
        | [
            (("always" | "always-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | [])
        | [
            (("always" | "always-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Disallow vendor prefixes for at-rules
 */
export type BooleanRule = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed at-rules
 */
export type ArrayStringRule1 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace after the closing brace of blocks
 */
export type NewlineSpaceWithIgnoreRule = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
  | [
      (
        | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
        | CoreRule
      ) &
        (
          | ((
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              string)
          | (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            )
        ),
      (
        | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
        | CoreRule
      ) &
        (
          | ((
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              string)
          | (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            )
        )
    ]
) &
  (
    | (null &
        (
          | null
          | (
              | "always"
              | "never"
              | "always-single-line"
              | "never-single-line"
              | "always-multi-line"
              | "never-multi-line"
              | []
            )
          | [
              (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                ),
              (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                )
            ]
        ))
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        string)
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace before the closing brace of blocks
 */
export type NewlineRule = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the closing brace of blocks
 */
export type NewlineSpaceRule = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
  | [
      (
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | {}
          )
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              string)
          | (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            )
        ),
      (
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | {}
          )
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              string)
          | (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            )
        )
    ]
) &
  (
    | (null &
        (
          | null
          | (
              | "always"
              | "never"
              | "always-single-line"
              | "never-single-line"
              | "always-multi-line"
              | "never-multi-line"
              | []
            )
          | [
              (
                | (
                    | "always"
                    | "never"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                ),
              (
                | (
                    | "always"
                    | "never"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                )
            ]
        ))
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        string)
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the closing brace of blocks
 */
export type NewlineSpaceRule1 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
  | [
      (
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | {}
          )
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              string)
          | (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            )
        ),
      (
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | {}
          )
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              string)
          | (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            )
        )
    ]
) &
  (
    | (null &
        (
          | null
          | (
              | "always"
              | "never"
              | "always-single-line"
              | "never-single-line"
              | "always-multi-line"
              | "never-multi-line"
              | []
            )
          | [
              (
                | (
                    | "always"
                    | "never"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                ),
              (
                | (
                    | "always"
                    | "never"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                )
            ]
        ))
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        string)
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        unknown[])
  );
/**
 * Disallow empty blocks
 */
export type BooleanRule1 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow single-line blocks
 */
export type BooleanRule2 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline after the opening brace of blocks
 */
export type NewlineRule1 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the opening brace of blocks
 */
export type NewlineSpaceRule2 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
  | [
      (
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | {}
          )
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              string)
          | (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            )
        ),
      (
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | {}
          )
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              string)
          | (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            )
        )
    ]
) &
  (
    | (null &
        (
          | null
          | (
              | "always"
              | "never"
              | "always-single-line"
              | "never-single-line"
              | "always-multi-line"
              | "never-multi-line"
              | []
            )
          | [
              (
                | (
                    | "always"
                    | "never"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                ),
              (
                | (
                    | "always"
                    | "never"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "never"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                )
            ]
        ))
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        string)
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | (
                  | "always"
                  | "never"
                  | "always-single-line"
                  | "never-single-line"
                  | "always-multi-line"
                  | "never-multi-line"
                  | {}
                )
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "never"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the opening brace of blocks
 */
export type NewlineSpaceWithIgnoreRule1 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
  | [
      (
        | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
        | CoreRule
      ) &
        (
          | ((
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              string)
          | (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            )
        ),
      (
        | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
        | CoreRule
      ) &
        (
          | ((
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              string)
          | (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            )
        )
    ]
) &
  (
    | (null &
        (
          | null
          | (
              | "always"
              | "never"
              | "always-single-line"
              | "never-single-line"
              | "always-multi-line"
              | "never-multi-line"
              | []
            )
          | [
              (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                ),
              (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                )
            ]
        ))
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        string)
    | ((
        | null
        | (
            | "always"
            | "never"
            | "always-single-line"
            | "never-single-line"
            | "always-multi-line"
            | "never-multi-line"
            | []
          )
        | [
            (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              ),
            (
              | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  ) &
                    string)
                | (
                    | (
                        | "always"
                        | "always-single-line"
                        | "never-single-line"
                        | "always-multi-line"
                        | "never-multi-line"
                        | {}
                      )
                    | CoreRule
                  )
              )
          ]
      ) &
        unknown[])
  );
/**
 * Specify lowercase or uppercase for hex colors
 */
export type LowerUpperRule1 = (
  | null
  | ("lower" | "upper" | [])
  | [
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow hex colors
 */
export type BooleanRule3 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow invalid hex colors
 */
export type BooleanRule4 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow empty comments
 */
export type BooleanRule5 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require or disallow whitespace on the inside of comment markers
 */
export type AlwaysNeverRule = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a blacklist of disallowed words within comments
 */
export type ArrayStringRule2 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Specify a pattern for custom media query names
 */
export type StringRule = (
  | (null | string)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow custom properties outside of `:root` rules
 */
export type BooleanRule6 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a pattern for custom properties
 */
export type StringRule1 = (
  | (null | string)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the bang of declarations
 */
export type AlwaysNeverRule1 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the bang of declarations
 */
export type AlwaysNeverRule2 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace after the colon of declarations
 */
export type AlwaysMultiLineRule1 = (
  | null
  | ("always" | "always-multi-line" | [])
  | [
      (("always" | "always-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | [])
          | [
              (("always" | "always-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | [])
        | [
            (("always" | "always-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | [])
        | [
            (("always" | "always-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the colon of declarations
 */
export type AlwaysNeverRule3 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow `!important` within declarations
 */
export type BooleanRule7 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a blacklist of disallowed property and unit pairs within declarations
 */
export type ObjectRule = (
  | null
  | {
      [k: string]: SimpleArrayStringRule;
    }
  | [CoreRule, CoreRule]
) &
  (
    | (null &
        (
          | null
          | {
              [k: string]: SimpleArrayStringRule;
            }
          | [CoreRule, CoreRule]
        ))
    | (
        | null
        | {
            [k: string]: SimpleArrayStringRule;
          }
        | [CoreRule, CoreRule]
      )
    | ((
        | null
        | {
            [k: string]: SimpleArrayStringRule;
          }
        | [CoreRule, CoreRule]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed property and unit pairs within declarations
 */
export type ObjectRule1 = (
  | null
  | {
      [k: string]: SimpleArrayStringRule;
    }
  | [CoreRule, CoreRule]
) &
  (
    | (null &
        (
          | null
          | {
              [k: string]: SimpleArrayStringRule;
            }
          | [CoreRule, CoreRule]
        ))
    | (
        | null
        | {
            [k: string]: SimpleArrayStringRule;
          }
        | [CoreRule, CoreRule]
      )
    | ((
        | null
        | {
            [k: string]: SimpleArrayStringRule;
          }
        | [CoreRule, CoreRule]
      ) &
        unknown[])
  );
/**
 * Specify a blacklist of disallowed property and value pairs within declarations
 */
export type ObjectRule2 = (
  | null
  | {
      [k: string]: SimpleArrayStringRule;
    }
  | [CoreRule, CoreRule]
) &
  (
    | (null &
        (
          | null
          | {
              [k: string]: SimpleArrayStringRule;
            }
          | [CoreRule, CoreRule]
        ))
    | (
        | null
        | {
            [k: string]: SimpleArrayStringRule;
          }
        | [CoreRule, CoreRule]
      )
    | ((
        | null
        | {
            [k: string]: SimpleArrayStringRule;
          }
        | [CoreRule, CoreRule]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed property and value pairs within declarations
 */
export type ObjectRule3 = (
  | null
  | {
      [k: string]: SimpleArrayStringRule;
    }
  | [CoreRule, CoreRule]
) &
  (
    | (null &
        (
          | null
          | {
              [k: string]: SimpleArrayStringRule;
            }
          | [CoreRule, CoreRule]
        ))
    | (
        | null
        | {
            [k: string]: SimpleArrayStringRule;
          }
        | [CoreRule, CoreRule]
      )
    | ((
        | null
        | {
            [k: string]: SimpleArrayStringRule;
          }
        | [CoreRule, CoreRule]
      ) &
        unknown[])
  );
/**
 * Disallow property values that are ignored due to another property value in the same rule
 */
export type BooleanRule8 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow shorthand properties that override related longhand properties
 */
export type BooleanRule9 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace after the semicolons of declaration blocks
 */
export type NewlineRule2 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace before the semicolons of declaration blocks
 */
export type NewlineRule3 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the semicolons of declaration blocks
 */
export type SpaceRule = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the semicolons of declaration blocks
 */
export type SpaceRule1 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Limit the number of declaration within a single line declaration block
 */
export type IntegerRule = (
  | (null | number)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | (number &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | number)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require or disallow a trailing semicolon within declaration blocks
 */
export type AlwaysNeverRule4 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a blacklist of disallowed functions
 */
export type ArrayStringRule3 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Disallow an unspaced operator within `calc` functions
 */
export type BooleanRule10 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace after the commas of functions
 */
export type NewlineRule4 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace before the commas of functions
 */
export type NewlineRule5 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the commas of functions
 */
export type SpaceRule2 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the commas of functions
 */
export type SpaceRule3 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Disallow direction values in `linear-gradient()` calls that are not valid according to the standard syntax
 */
export type BooleanRule11 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Limit the number of adjacent empty lines within functions
 */
export type IntegerRule1 = (
  | (null | number)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | (number &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | number)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace on the inside of the parentheses of functions
 */
export type NewlineRule6 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace on the inside of the parentheses of functions
 */
export type SpaceRule4 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require or disallow data URIs for urls
 */
export type AlwaysNeverRule5 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow scheme-relative urls
 */
export type BooleanRule12 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require or disallow quotes for urls
 */
export type AlwaysNeverRule6 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed url schemes
 */
export type ArrayStringRule4 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed functions
 */
export type ArrayStringRule5 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Require or disallow whitespace after functions
 */
export type AlwaysNeverRule7 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Limit the number of adjacent empty lines
 */
export type IntegerRule2 = (
  | (null | number)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | (number &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | number)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow selectors of lower specificity from coming after overriding selectors of higher specificity
 */
export type BooleanRule13 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow duplicate selectors within a stylesheet
 */
export type BooleanRule14 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow empty sources
 */
export type BooleanRule15 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow extra semicolons
 */
export type BooleanRule16 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow double-slash comments `(//...)` which are not supported by CSS and could lead to unexpected results
 */
export type BooleanRule17 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow missing end-of-source newlines
 */
export type BooleanRule18 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow animation names that do not correspond to a `@keyframes` declaration
 */
export type BooleanRule19 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require or disallow Unicode BOM
 */
export type AlwaysNeverRule8 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow !important within keyframe declarations
 */
export type BooleanRule20 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow units for zero lengths
 */
export type BooleanRule21 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the colon in media features
 */
export type AlwaysNeverRule9 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the colon in media features
 */
export type AlwaysNeverRule10 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify lowercase or uppercase for media feature names
 */
export type LowerUpperRule2 = (
  | null
  | ("lower" | "upper" | [])
  | [
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow vendor prefixes for media feature names
 */
export type BooleanRule22 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow missing punctuation for non-boolean media features
 */
export type BooleanRule23 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace on the inside of the parentheses within media features
 */
export type AlwaysNeverRule11 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the range operator in media features
 */
export type AlwaysNeverRule12 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the range operator in media features
 */
export type AlwaysNeverRule13 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace after the commas of media query lists
 */
export type NewlineRule7 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace before the commas of media query lists
 */
export type NewlineRule8 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the commas of media query lists
 */
export type SpaceRule5 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the commas of media query lists
 */
export type SpaceRule6 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require or disallow a leading zero for fractional numbers less than 1
 */
export type AlwaysNeverRule14 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Limit the number of decimal places allowed in numbers
 */
export type IntegerRule3 = (
  | (null | number)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | (number &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | number)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow trailing zeros in numbers
 */
export type BooleanRule24 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a blacklist of disallowed properties
 */
export type ArrayStringRule6 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Specify lowercase or uppercase for properties
 */
export type LowerUpperRule3 = (
  | null
  | ("lower" | "upper" | [])
  | [
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow vendor prefixes for properties
 */
export type BooleanRule25 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed properties
 */
export type ArrayStringRule7 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Disallow standard properties inside `:root` rules
 */
export type BooleanRule26 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace on the inside of the brackets within attribute selector
 */
export type AlwaysNeverRule15 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a blacklist of disallowed attribute operators
 */
export type ArrayStringRule8 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after operators within attribute selectors
 */
export type AlwaysNeverRule16 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before operators within attribute selectors
 */
export type AlwaysNeverRule17 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed attribute operators
 */
export type ArrayStringRule9 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Require or disallow quotes for attribute values
 */
export type AlwaysNeverRule18 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the combinators of selectors
 */
export type AlwaysNeverRule19 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the combinators of selectors
 */
export type AlwaysNeverRule20 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow non-space characters for descendant combinators of selectors
 */
export type BooleanRule27 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a pattern for id selectors
 */
export type StringRule2 = (
  | (null | string)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Limit the number of compound selectors in a selector
 */
export type IntegerRule4 = (
  | (null | number)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | (number &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | number)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Limit the specificity of selectors
 */
export type StringRule3 = (
  | (null | string)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a pattern for the selectors of rules nested within rules
 */
export type StringRule4 = (
  | (null | string)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & string) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow attribute selectors
 */
export type BooleanRule28 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow combinators in selectors
 */
export type BooleanRule29 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow id selectors
 */
export type BooleanRule30 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow the universal selector
 */
export type BooleanRule31 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow vendor prefixes for selectors
 */
export type BooleanRule32 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify lowercase or uppercase for pseudo-class selectors
 */
export type LowerUpperRule4 = (
  | null
  | ("lower" | "upper" | [])
  | [
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace on the inside of the parentheses within pseudo-class selectors
 */
export type AlwaysNeverRule21 = (
  | null
  | ("always" | "never" | [])
  | [
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
      (("always" | "never" | {}) | CoreRule) &
        (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | [])
        | [
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
            (("always" | "never" | {}) | CoreRule) &
              (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed pseudo-class selectors
 */
export type ArrayStringRule10 = (
  | (null | string)
  | [
      (([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ),
      ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
        (
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
          | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
          | (([] | {}) | SimpleArrayStringRule | CoreRule)
        ))[]
    ]
) &
  (
    | (null &
        (
          | (null | string)
          | [
              (([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ),
              ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
                (
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                  | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (([] | {}) | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ))
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        string)
    | ((
        | (null | string)
        | [
            (([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ),
            ...((([] | {}) | SimpleArrayStringRule | CoreRule) &
              (
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & string)
                | ((([] | {}) | SimpleArrayStringRule | CoreRule) & unknown[])
                | (([] | {}) | SimpleArrayStringRule | CoreRule)
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Specify lowercase or uppercase for pseudo-element selectors
 */
export type LowerUpperRule5 = (
  | null
  | ("lower" | "upper" | [])
  | [
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify single or double colon notation for applicable pseudo-elements
 */
export type SingleDoubleRule = (
  | null
  | ("single" | "double" | [])
  | [
      (("single" | "double" | {}) | CoreRule) &
        (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule)),
      (("single" | "double" | {}) | CoreRule) &
        (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("single" | "double" | [])
          | [
              (("single" | "double" | {}) | CoreRule) &
                (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule)),
              (("single" | "double" | {}) | CoreRule) &
                (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("single" | "double" | [])
        | [
            (("single" | "double" | {}) | CoreRule) &
              (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule)),
            (("single" | "double" | {}) | CoreRule) &
              (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("single" | "double" | [])
        | [
            (("single" | "double" | {}) | CoreRule) &
              (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule)),
            (("single" | "double" | {}) | CoreRule) &
              (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow the composition of :root in selectors
 */
export type BooleanRule33 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify lowercase or uppercase for type selectors
 */
export type LowerUpperRule6 = (
  | null
  | ("lower" | "upper" | [])
  | [
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Limit the number of adjacent empty lines within selectors
 */
export type IntegerRule5 = (
  | (null | number)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | (number &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | number)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace after the commas of selector lists
 */
export type NewlineRule9 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace before the commas of selector lists
 */
export type NewlineRule10 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the commas of selector lists
 */
export type SpaceRule7 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the commas of selector lists
 */
export type SpaceRule8 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Disallow redundant values in shorthand properties
 */
export type BooleanRule34 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow (unescaped) newlines in strings
 */
export type BooleanRule35 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify single or double quotes around strings
 */
export type SingleDoubleRule1 = (
  | null
  | ("single" | "double" | [])
  | [
      (("single" | "double" | {}) | CoreRule) &
        (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule)),
      (("single" | "double" | {}) | CoreRule) &
        (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("single" | "double" | [])
          | [
              (("single" | "double" | {}) | CoreRule) &
                (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule)),
              (("single" | "double" | {}) | CoreRule) &
                (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("single" | "double" | [])
        | [
            (("single" | "double" | {}) | CoreRule) &
              (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule)),
            (("single" | "double" | {}) | CoreRule) &
              (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("single" | "double" | [])
        | [
            (("single" | "double" | {}) | CoreRule) &
              (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule)),
            (("single" | "double" | {}) | CoreRule) &
              (((("single" | "double" | {}) | CoreRule) & string) | (("single" | "double" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Disallow `animation` and `transition` less than or equal to 100ms
 */
export type BooleanRule36 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a blacklist of disallowed units
 */
export type UnitRule = (
  | null
  | (
      | "em"
      | "ex"
      | "px"
      | "%"
      | "rem"
      | "vw"
      | "vh"
      | "vm"
      | "vmin"
      | "vmax"
      | "ch"
      | "in"
      | "cm"
      | "mm"
      | "q"
      | "pt"
      | "pc"
      | "deg"
      | "grad"
      | "rad"
      | "turn"
      | "ms"
      | "s"
      | "Hz"
      | "kHz"
      | "dpi"
      | "dpcm"
      | "dppx"
      | "fr"
      | []
    )
  | [
      (
        | (
            | "em"
            | "ex"
            | "px"
            | "%"
            | "rem"
            | "vw"
            | "vh"
            | "vm"
            | "vmin"
            | "vmax"
            | "ch"
            | "in"
            | "cm"
            | "mm"
            | "q"
            | "pt"
            | "pc"
            | "deg"
            | "grad"
            | "rad"
            | "turn"
            | "ms"
            | "s"
            | "Hz"
            | "kHz"
            | "dpi"
            | "dpcm"
            | "dppx"
            | "fr"
            | []
            | {}
          )
        | [
            (
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
            ),
            ...(
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
            )[]
          ]
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              string)
          | ((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              unknown[])
          | (
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            )
        ),
      ...((
        | (
            | "em"
            | "ex"
            | "px"
            | "%"
            | "rem"
            | "vw"
            | "vh"
            | "vm"
            | "vmin"
            | "vmax"
            | "ch"
            | "in"
            | "cm"
            | "mm"
            | "q"
            | "pt"
            | "pc"
            | "deg"
            | "grad"
            | "rad"
            | "turn"
            | "ms"
            | "s"
            | "Hz"
            | "kHz"
            | "dpi"
            | "dpcm"
            | "dppx"
            | "fr"
            | []
            | {}
          )
        | [
            (
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
            ),
            ...(
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
            )[]
          ]
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              string)
          | ((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              unknown[])
          | (
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            )
        ))[]
    ]
) &
  (
    | (null &
        (
          | null
          | (
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
              | []
            )
          | [
              (
                | (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                    | []
                    | {}
                  )
                | [
                    (
                      | "em"
                      | "ex"
                      | "px"
                      | "%"
                      | "rem"
                      | "vw"
                      | "vh"
                      | "vm"
                      | "vmin"
                      | "vmax"
                      | "ch"
                      | "in"
                      | "cm"
                      | "mm"
                      | "q"
                      | "pt"
                      | "pc"
                      | "deg"
                      | "grad"
                      | "rad"
                      | "turn"
                      | "ms"
                      | "s"
                      | "Hz"
                      | "kHz"
                      | "dpi"
                      | "dpcm"
                      | "dppx"
                      | "fr"
                    ),
                    ...(
                      | "em"
                      | "ex"
                      | "px"
                      | "%"
                      | "rem"
                      | "vw"
                      | "vh"
                      | "vm"
                      | "vmin"
                      | "vmax"
                      | "ch"
                      | "in"
                      | "cm"
                      | "mm"
                      | "q"
                      | "pt"
                      | "pc"
                      | "deg"
                      | "grad"
                      | "rad"
                      | "turn"
                      | "ms"
                      | "s"
                      | "Hz"
                      | "kHz"
                      | "dpi"
                      | "dpcm"
                      | "dppx"
                      | "fr"
                    )[]
                  ]
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    ) &
                      string)
                  | ((
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    ) &
                      unknown[])
                  | (
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    )
                ),
              ...((
                | (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                    | []
                    | {}
                  )
                | [
                    (
                      | "em"
                      | "ex"
                      | "px"
                      | "%"
                      | "rem"
                      | "vw"
                      | "vh"
                      | "vm"
                      | "vmin"
                      | "vmax"
                      | "ch"
                      | "in"
                      | "cm"
                      | "mm"
                      | "q"
                      | "pt"
                      | "pc"
                      | "deg"
                      | "grad"
                      | "rad"
                      | "turn"
                      | "ms"
                      | "s"
                      | "Hz"
                      | "kHz"
                      | "dpi"
                      | "dpcm"
                      | "dppx"
                      | "fr"
                    ),
                    ...(
                      | "em"
                      | "ex"
                      | "px"
                      | "%"
                      | "rem"
                      | "vw"
                      | "vh"
                      | "vm"
                      | "vmin"
                      | "vmax"
                      | "ch"
                      | "in"
                      | "cm"
                      | "mm"
                      | "q"
                      | "pt"
                      | "pc"
                      | "deg"
                      | "grad"
                      | "rad"
                      | "turn"
                      | "ms"
                      | "s"
                      | "Hz"
                      | "kHz"
                      | "dpi"
                      | "dpcm"
                      | "dppx"
                      | "fr"
                    )[]
                  ]
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    ) &
                      string)
                  | ((
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    ) &
                      unknown[])
                  | (
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    )
                ))[]
            ]
        ))
    | ((
        | null
        | (
            | "em"
            | "ex"
            | "px"
            | "%"
            | "rem"
            | "vw"
            | "vh"
            | "vm"
            | "vmin"
            | "vmax"
            | "ch"
            | "in"
            | "cm"
            | "mm"
            | "q"
            | "pt"
            | "pc"
            | "deg"
            | "grad"
            | "rad"
            | "turn"
            | "ms"
            | "s"
            | "Hz"
            | "kHz"
            | "dpi"
            | "dpcm"
            | "dppx"
            | "fr"
            | []
          )
        | [
            (
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    string)
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    unknown[])
                | (
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  )
              ),
            ...((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    string)
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    unknown[])
                | (
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  )
              ))[]
          ]
      ) &
        string)
    | ((
        | null
        | (
            | "em"
            | "ex"
            | "px"
            | "%"
            | "rem"
            | "vw"
            | "vh"
            | "vm"
            | "vmin"
            | "vmax"
            | "ch"
            | "in"
            | "cm"
            | "mm"
            | "q"
            | "pt"
            | "pc"
            | "deg"
            | "grad"
            | "rad"
            | "turn"
            | "ms"
            | "s"
            | "Hz"
            | "kHz"
            | "dpi"
            | "dpcm"
            | "dppx"
            | "fr"
            | []
          )
        | [
            (
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    string)
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    unknown[])
                | (
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  )
              ),
            ...((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    string)
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    unknown[])
                | (
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  )
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Specify lowercase or uppercase for units
 */
export type LowerUpperRule7 = (
  | null
  | ("lower" | "upper" | [])
  | [
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
      (("lower" | "upper" | {}) | CoreRule) &
        (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        string)
    | ((
        | null
        | ("lower" | "upper" | [])
        | [
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
            (("lower" | "upper" | {}) | CoreRule) &
              (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Specify a whitelist of allowed units
 */
export type UnitRule1 = (
  | null
  | (
      | "em"
      | "ex"
      | "px"
      | "%"
      | "rem"
      | "vw"
      | "vh"
      | "vm"
      | "vmin"
      | "vmax"
      | "ch"
      | "in"
      | "cm"
      | "mm"
      | "q"
      | "pt"
      | "pc"
      | "deg"
      | "grad"
      | "rad"
      | "turn"
      | "ms"
      | "s"
      | "Hz"
      | "kHz"
      | "dpi"
      | "dpcm"
      | "dppx"
      | "fr"
      | []
    )
  | [
      (
        | (
            | "em"
            | "ex"
            | "px"
            | "%"
            | "rem"
            | "vw"
            | "vh"
            | "vm"
            | "vmin"
            | "vmax"
            | "ch"
            | "in"
            | "cm"
            | "mm"
            | "q"
            | "pt"
            | "pc"
            | "deg"
            | "grad"
            | "rad"
            | "turn"
            | "ms"
            | "s"
            | "Hz"
            | "kHz"
            | "dpi"
            | "dpcm"
            | "dppx"
            | "fr"
            | []
            | {}
          )
        | [
            (
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
            ),
            ...(
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
            )[]
          ]
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              string)
          | ((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              unknown[])
          | (
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            )
        ),
      ...((
        | (
            | "em"
            | "ex"
            | "px"
            | "%"
            | "rem"
            | "vw"
            | "vh"
            | "vm"
            | "vmin"
            | "vmax"
            | "ch"
            | "in"
            | "cm"
            | "mm"
            | "q"
            | "pt"
            | "pc"
            | "deg"
            | "grad"
            | "rad"
            | "turn"
            | "ms"
            | "s"
            | "Hz"
            | "kHz"
            | "dpi"
            | "dpcm"
            | "dppx"
            | "fr"
            | []
            | {}
          )
        | [
            (
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
            ),
            ...(
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
            )[]
          ]
        | CoreRule
      ) &
        (
          | ((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              string)
          | ((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              unknown[])
          | (
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            )
        ))[]
    ]
) &
  (
    | (null &
        (
          | null
          | (
              | "em"
              | "ex"
              | "px"
              | "%"
              | "rem"
              | "vw"
              | "vh"
              | "vm"
              | "vmin"
              | "vmax"
              | "ch"
              | "in"
              | "cm"
              | "mm"
              | "q"
              | "pt"
              | "pc"
              | "deg"
              | "grad"
              | "rad"
              | "turn"
              | "ms"
              | "s"
              | "Hz"
              | "kHz"
              | "dpi"
              | "dpcm"
              | "dppx"
              | "fr"
              | []
            )
          | [
              (
                | (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                    | []
                    | {}
                  )
                | [
                    (
                      | "em"
                      | "ex"
                      | "px"
                      | "%"
                      | "rem"
                      | "vw"
                      | "vh"
                      | "vm"
                      | "vmin"
                      | "vmax"
                      | "ch"
                      | "in"
                      | "cm"
                      | "mm"
                      | "q"
                      | "pt"
                      | "pc"
                      | "deg"
                      | "grad"
                      | "rad"
                      | "turn"
                      | "ms"
                      | "s"
                      | "Hz"
                      | "kHz"
                      | "dpi"
                      | "dpcm"
                      | "dppx"
                      | "fr"
                    ),
                    ...(
                      | "em"
                      | "ex"
                      | "px"
                      | "%"
                      | "rem"
                      | "vw"
                      | "vh"
                      | "vm"
                      | "vmin"
                      | "vmax"
                      | "ch"
                      | "in"
                      | "cm"
                      | "mm"
                      | "q"
                      | "pt"
                      | "pc"
                      | "deg"
                      | "grad"
                      | "rad"
                      | "turn"
                      | "ms"
                      | "s"
                      | "Hz"
                      | "kHz"
                      | "dpi"
                      | "dpcm"
                      | "dppx"
                      | "fr"
                    )[]
                  ]
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    ) &
                      string)
                  | ((
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    ) &
                      unknown[])
                  | (
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    )
                ),
              ...((
                | (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                    | []
                    | {}
                  )
                | [
                    (
                      | "em"
                      | "ex"
                      | "px"
                      | "%"
                      | "rem"
                      | "vw"
                      | "vh"
                      | "vm"
                      | "vmin"
                      | "vmax"
                      | "ch"
                      | "in"
                      | "cm"
                      | "mm"
                      | "q"
                      | "pt"
                      | "pc"
                      | "deg"
                      | "grad"
                      | "rad"
                      | "turn"
                      | "ms"
                      | "s"
                      | "Hz"
                      | "kHz"
                      | "dpi"
                      | "dpcm"
                      | "dppx"
                      | "fr"
                    ),
                    ...(
                      | "em"
                      | "ex"
                      | "px"
                      | "%"
                      | "rem"
                      | "vw"
                      | "vh"
                      | "vm"
                      | "vmin"
                      | "vmax"
                      | "ch"
                      | "in"
                      | "cm"
                      | "mm"
                      | "q"
                      | "pt"
                      | "pc"
                      | "deg"
                      | "grad"
                      | "rad"
                      | "turn"
                      | "ms"
                      | "s"
                      | "Hz"
                      | "kHz"
                      | "dpi"
                      | "dpcm"
                      | "dppx"
                      | "fr"
                    )[]
                  ]
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    ) &
                      string)
                  | ((
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    ) &
                      unknown[])
                  | (
                      | (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                          | []
                          | {}
                        )
                      | [
                          (
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          ),
                          ...(
                            | "em"
                            | "ex"
                            | "px"
                            | "%"
                            | "rem"
                            | "vw"
                            | "vh"
                            | "vm"
                            | "vmin"
                            | "vmax"
                            | "ch"
                            | "in"
                            | "cm"
                            | "mm"
                            | "q"
                            | "pt"
                            | "pc"
                            | "deg"
                            | "grad"
                            | "rad"
                            | "turn"
                            | "ms"
                            | "s"
                            | "Hz"
                            | "kHz"
                            | "dpi"
                            | "dpcm"
                            | "dppx"
                            | "fr"
                          )[]
                        ]
                      | CoreRule
                    )
                ))[]
            ]
        ))
    | ((
        | null
        | (
            | "em"
            | "ex"
            | "px"
            | "%"
            | "rem"
            | "vw"
            | "vh"
            | "vm"
            | "vmin"
            | "vmax"
            | "ch"
            | "in"
            | "cm"
            | "mm"
            | "q"
            | "pt"
            | "pc"
            | "deg"
            | "grad"
            | "rad"
            | "turn"
            | "ms"
            | "s"
            | "Hz"
            | "kHz"
            | "dpi"
            | "dpcm"
            | "dppx"
            | "fr"
            | []
          )
        | [
            (
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    string)
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    unknown[])
                | (
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  )
              ),
            ...((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    string)
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    unknown[])
                | (
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  )
              ))[]
          ]
      ) &
        string)
    | ((
        | null
        | (
            | "em"
            | "ex"
            | "px"
            | "%"
            | "rem"
            | "vw"
            | "vh"
            | "vm"
            | "vmin"
            | "vmax"
            | "ch"
            | "in"
            | "cm"
            | "mm"
            | "q"
            | "pt"
            | "pc"
            | "deg"
            | "grad"
            | "rad"
            | "turn"
            | "ms"
            | "s"
            | "Hz"
            | "kHz"
            | "dpi"
            | "dpcm"
            | "dppx"
            | "fr"
            | []
          )
        | [
            (
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    string)
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    unknown[])
                | (
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  )
              ),
            ...((
              | (
                  | "em"
                  | "ex"
                  | "px"
                  | "%"
                  | "rem"
                  | "vw"
                  | "vh"
                  | "vm"
                  | "vmin"
                  | "vmax"
                  | "ch"
                  | "in"
                  | "cm"
                  | "mm"
                  | "q"
                  | "pt"
                  | "pc"
                  | "deg"
                  | "grad"
                  | "rad"
                  | "turn"
                  | "ms"
                  | "s"
                  | "Hz"
                  | "kHz"
                  | "dpi"
                  | "dpcm"
                  | "dppx"
                  | "fr"
                  | []
                  | {}
                )
              | [
                  (
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  ),
                  ...(
                    | "em"
                    | "ex"
                    | "px"
                    | "%"
                    | "rem"
                    | "vw"
                    | "vh"
                    | "vm"
                    | "vmin"
                    | "vmax"
                    | "ch"
                    | "in"
                    | "cm"
                    | "mm"
                    | "q"
                    | "pt"
                    | "pc"
                    | "deg"
                    | "grad"
                    | "rad"
                    | "turn"
                    | "ms"
                    | "s"
                    | "Hz"
                    | "kHz"
                    | "dpi"
                    | "dpcm"
                    | "dppx"
                    | "fr"
                  )[]
                ]
              | CoreRule
            ) &
              (
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    string)
                | ((
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  ) &
                    unknown[])
                | (
                    | (
                        | "em"
                        | "ex"
                        | "px"
                        | "%"
                        | "rem"
                        | "vw"
                        | "vh"
                        | "vm"
                        | "vmin"
                        | "vmax"
                        | "ch"
                        | "in"
                        | "cm"
                        | "mm"
                        | "q"
                        | "pt"
                        | "pc"
                        | "deg"
                        | "grad"
                        | "rad"
                        | "turn"
                        | "ms"
                        | "s"
                        | "Hz"
                        | "kHz"
                        | "dpi"
                        | "dpcm"
                        | "dppx"
                        | "fr"
                        | []
                        | {}
                      )
                    | [
                        (
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        ),
                        ...(
                          | "em"
                          | "ex"
                          | "px"
                          | "%"
                          | "rem"
                          | "vw"
                          | "vh"
                          | "vm"
                          | "vmin"
                          | "vmax"
                          | "ch"
                          | "in"
                          | "cm"
                          | "mm"
                          | "q"
                          | "pt"
                          | "pc"
                          | "deg"
                          | "grad"
                          | "rad"
                          | "turn"
                          | "ms"
                          | "s"
                          | "Hz"
                          | "kHz"
                          | "dpi"
                          | "dpcm"
                          | "dppx"
                          | "fr"
                        )[]
                      ]
                    | CoreRule
                  )
              ))[]
          ]
      ) &
        unknown[])
  );
/**
 * Disallow vendor prefixes for values
 */
export type BooleanRule37 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace after the commas of value lists
 */
export type NewlineRule11 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a newline or disallow whitespace before the commas of value lists
 */
export type NewlineRule12 = (
  | null
  | ("always" | "always-multi-line" | "never-multi-line" | [])
  | [
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        ),
      (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
        (
          | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
          | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "always-multi-line" | "never-multi-line" | [])
        | [
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              ),
            (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
              (
                | ((("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                | (("always" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace after the commas of value lists
 */
export type SpaceRule9 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Require a single space or disallow whitespace before the commas of value lists
 */
export type SpaceRule10 = (
  | null
  | ("always" | "never" | "always-single-line" | "never-single-line" | [])
  | [
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        ),
      (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
        (
          | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
          | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
        )
    ]
) &
  (
    | (null &
        (
          | null
          | ("always" | "never" | "always-single-line" | "never-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
                )
            ]
        ))
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        string)
    | ((
        | null
        | ("always" | "never" | "always-single-line" | "never-single-line" | [])
        | [
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              ),
            (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) &
              (
                | ((("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule) & string)
                | (("always" | "never" | "always-single-line" | "never-single-line" | {}) | CoreRule)
              )
          ]
      ) &
        unknown[])
  );
/**
 * Limit the number of adjacent empty lines within value lists
 */
export type IntegerRule6 = (
  | (null | number)
  | [
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
      ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
    ]
) &
  (
    | (null &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | (number &
        (
          | (null | number)
          | [
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
              ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
            ]
        ))
    | ((
        | (null | number)
        | [
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule)),
            ({} | CoreRule) & ((({} | CoreRule) & number) | ({} | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Provide a glob or array of globs to ignore specific files
 */
export type SimpleStringOrArrayStringRule1 = (string | SimpleArrayStringRule) &
  (((string | SimpleArrayStringRule) & string) | ((string | SimpleArrayStringRule) & unknown[]));
/**
 * Report stylelint-disable comments without a description.
 */
export type BooleanRule38 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Report stylelint-disable comments that don't match rules that are specified in the configuration object.
 */
export type BooleanRule39 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * Report stylelint-disable comments that don't actually match any lints that need to be disabled
 */
export type BooleanRule40 = (
  | null
  | (true | [])
  | [
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
      ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
    ]
) &
  (
    | (null &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | (boolean &
        (
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ))
    | ((
        | null
        | (true | [])
        | [
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
            ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
          ]
      ) &
        unknown[])
  );
/**
 * An array of glob patterns to select test files. Files with an underscore prefix are ignored. By default only selects files with `cjs`, `mjs` & `js` extensions, even if the pattern matches other files. Specify `extensions` to allow other file extensions
 */
export type ArrayOfPaths = string[];
/**
 * An array of glob patterns to match files that, even if changed, are ignored by the watcher
 */
export type ArrayOfPaths1 = string[];
/**
 * Not typically useful in the `package.json` configuration, but equivalent to specifying `--match` on the CLI
 */
export type ArrayOfPaths2 = string[];
export type ArrayOfStrings = string[];
/**
 * Extra modules to require before tests are run. Modules are required in the worker processes
 */
export type ArrayOfPaths3 = string[];
/**
 * Configure Node.js arguments used to launch worker processes
 */
export type ArrayOfStrings1 = string[];
/**
 * You can configure AVA to recognize additional file extensions as TypeScript (e.g., `["ts", "tsx"]` to add partial JSX support). Note that the preserve mode for JSX is not (yet) supported. See also AVA's `extensions` object
 */
export type ArrayOfPaths4 = string[];

export interface JSONSchemaForNPMPackageJsonFiles2 {
  /**
   * The name of the package.
   */
  name?: string;
  /**
   * Version must be parseable by node-semver, which is bundled with npm as a dependency.
   */
  version?: string;
  /**
   * This helps people discover your package, as it's listed in 'npm search'.
   */
  description?: string;
  /**
   * This helps people discover your package as it's listed in 'npm search'.
   */
  keywords?: string[];
  /**
   * The url to the project homepage.
   */
  homepage?: string;
  /**
   * The url to your project's issue tracker and / or the email address to which issues should be reported. These are helpful for people who encounter issues with your package.
   */
  bugs?:
    | {
        /**
         * The url to your project's issue tracker.
         */
        url?: string;
        /**
         * The email address to which issues should be reported.
         */
        email?: string;
        [k: string]: unknown | undefined;
      }
    | string;
  /**
   * You should specify a license for your package so that people know how they are permitted to use it, and any restrictions you're placing on it.
   */
  license?: string;
  /**
   * DEPRECATED: Instead, use SPDX expressions, like this: { "license": "ISC" } or { "license": "(MIT OR Apache-2.0)" } see: 'https://docs.npmjs.com/files/package.json#license'.
   */
  licenses?: {
    type?: string;
    url?: string;
    [k: string]: unknown | undefined;
  }[];
  author?: Person;
  /**
   * A list of people who contributed to this package.
   */
  contributors?: Person1[];
  /**
   * A list of people who maintains this package.
   */
  maintainers?: Person1[];
  /**
   * The 'files' field is an array of files to include in your project. If you name a folder in the array, then it will also include the files inside that folder.
   */
  files?: string[];
  /**
   * The main field is a module ID that is the primary entry point to your program.
   */
  main?: string;
  /**
   * The "exports" field is used to restrict external access to non-exported module files, also enables a module to import itself using "name".
   */
  exports?:
    | (string | null)
    | {
        /**
         * The module path that is resolved when the module specifier matches "name", shadows the "main" field.
         */
        "."?: PackageExportsEntry | PackageExportsFallback;
        /**
         * The module path prefix that is resolved when the module specifier starts with "name/", set to "./*" to allow external modules to import any subpath.
         *
         * This interface was referenced by `undefined`'s JSON-Schema definition
         * via the `patternProperty` "^\./.+".
         */
        [k: string]: PackageExportsEntry | PackageExportsFallback | undefined;
      }
    | PackageExportsEntryObject1
    | PackageExportsFallback1;
  bin?:
    | string
    | {
        [k: string]: string | undefined;
      };
  /**
   * When set to "module", the type field allows a package to specify all .js files within are ES modules. If the "type" field is omitted or set to "commonjs", all .js files are treated as CommonJS.
   */
  type?: "commonjs" | "module";
  /**
   * Set the types property to point to your bundled declaration file.
   */
  types?: string;
  /**
   * Note that the "typings" field is synonymous with "types", and could be used as well.
   */
  typings?: string;
  /**
   * The "typesVersions" field is used since TypeScript 3.1 to support features that were only made available in newer TypeScript versions.
   */
  typesVersions?: {
    /**
     * Contains overrides for the TypeScript version that matches the version range matching the property key.
     */
    [k: string]:
      | {
          /**
           * Maps all file paths to the file paths specified in the array.
           */
          "*"?: string[];
        }
      | undefined;
  };
  /**
   * Specify either a single file or an array of filenames to put in place for the man program to find.
   */
  man?: string[] | string;
  directories?: {
    /**
     * If you specify a 'bin' directory, then all the files in that folder will be used as the 'bin' hash.
     */
    bin?: string;
    /**
     * Put markdown files in here. Eventually, these will be displayed nicely, maybe, someday.
     */
    doc?: string;
    /**
     * Put example scripts in here. Someday, it might be exposed in some clever way.
     */
    example?: string;
    /**
     * Tell people where the bulk of your library is. Nothing special is done with the lib folder in any way, but it's useful meta info.
     */
    lib?: string;
    /**
     * A folder that is full of man pages. Sugar to generate a 'man' array by walking the folder.
     */
    man?: string;
    test?: string;
    [k: string]: unknown | undefined;
  };
  /**
   * Specify the place where your code lives. This is helpful for people who want to contribute.
   */
  repository?:
    | {
        type?: string;
        url?: string;
        directory?: string;
        [k: string]: unknown | undefined;
      }
    | string;
  funding?: FundingUrl | FundingWay | [FundingUrl | FundingWay, ...(FundingUrl | FundingWay)[]];
  /**
   * The 'scripts' member is an object hash of script commands that are run at various times in the lifecycle of your package. The key is the lifecycle event, and the value is the command to run at that point.
   */
  scripts?: {
    /**
     * Run code quality tools, e.g. ESLint, TSLint, etc.
     */
    lint?: string;
    /**
     * Run BEFORE the package is published (Also run on local npm install without any arguments).
     */
    prepublish?: string;
    /**
     * Run both BEFORE the package is packed and published, and on local npm install without any arguments. This is run AFTER prepublish, but BEFORE prepublishOnly.
     */
    prepare?: string;
    /**
     * Run BEFORE the package is prepared and packed, ONLY on npm publish.
     */
    prepublishOnly?: string;
    /**
     * run BEFORE a tarball is packed (on npm pack, npm publish, and when installing git dependencies).
     */
    prepack?: string;
    /**
     * Run AFTER the tarball has been generated and moved to its final destination.
     */
    postpack?: string;
    /**
     * Publishes a package to the registry so that it can be installed by name. See https://docs.npmjs.com/cli/v8/commands/npm-publish
     */
    publish?: string;
    postpublish?: ScriptsPublishAfter;
    /**
     * Run BEFORE the package is installed.
     */
    preinstall?: string;
    install?: ScriptsInstallAfter;
    postinstall?: ScriptsInstallAfter;
    preuninstall?: ScriptsUninstallBefore;
    uninstall?: ScriptsUninstallBefore;
    /**
     * Run AFTER the package is uninstalled.
     */
    postuninstall?: string;
    preversion?: ScriptsVersionBefore;
    version?: ScriptsVersionBefore;
    /**
     * Run AFTER bump the package version.
     */
    postversion?: string;
    pretest?: ScriptsTest;
    test?: ScriptsTest;
    posttest?: ScriptsTest;
    prestop?: ScriptsStop;
    stop?: ScriptsStop;
    poststop?: ScriptsStop;
    prestart?: ScriptsStart;
    start?: ScriptsStart;
    poststart?: ScriptsStart;
    prerestart?: ScriptsRestart;
    restart?: ScriptsRestart;
    postrestart?: ScriptsRestart;
    /**
     * Start dev server to serve application files
     */
    serve?: string;
    [k: string]: string | undefined | undefined;
  };
  /**
   * A 'config' hash can be used to set configuration parameters used in package scripts that persist across upgrades.
   */
  config?: {
    [k: string]: unknown | undefined;
  };
  dependencies?: Dependency;
  devDependencies?: Dependency;
  optionalDependencies?: Dependency;
  peerDependencies?: Dependency;
  /**
   * When a user installs your package, warnings are emitted if packages specified in "peerDependencies" are not already installed. The "peerDependenciesMeta" field serves to provide more information on how your peer dependencies are utilized. Most commonly, it allows peer dependencies to be marked as optional. Metadata for this field is specified with a simple hash of the package name to a metadata object.
   */
  peerDependenciesMeta?: {
    [k: string]:
      | {
          /**
           * Specifies that this peer dependency is optional and should not be installed automatically.
           */
          optional?: boolean;
          [k: string]: unknown | undefined;
        }
      | undefined;
  };
  /**
   * Array of package names that will be bundled when publishing the package.
   */
  bundledDependencies?: string[] | boolean;
  /**
   * DEPRECATED: This field is honored, but "bundledDependencies" is the correct field name.
   */
  bundleDependencies?: string[] | boolean;
  /**
   * Resolutions is used to support selective version resolutions using yarn, which lets you define custom package versions or ranges inside your dependencies. For npm, use overrides instead. See: https://classic.yarnpkg.com/en/docs/selective-version-resolutions
   */
  resolutions?: {
    [k: string]: unknown | undefined;
  };
  /**
   * Overrides is used to support selective version overrides using npm, which lets you define custom package versions or ranges inside your dependencies. For yarn, use resolutions instead. See: https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides
   */
  overrides?: {
    [k: string]: unknown | undefined;
  };
  /**
   * Defines which package manager is expected to be used when working on the current project. This field is currently experimental and needs to be opted-in; see https://nodejs.org/api/corepack.html
   */
  packageManager?: string;
  engines?: {
    node?: string;
    [k: string]: string | undefined;
  };
  engineStrict?: boolean;
  /**
   * Specify which operating systems your module will run on.
   */
  os?: string[];
  /**
   * Specify that your code only runs on certain cpu architectures.
   */
  cpu?: string[];
  /**
   * DEPRECATED: This option used to trigger an npm warning, but it will no longer warn. It is purely there for informational purposes. It is now recommended that you install any binaries as local devDependencies wherever possible.
   */
  preferGlobal?: boolean;
  /**
   * If set to true, then npm will refuse to publish it.
   */
  private?: boolean | ("false" | "true");
  publishConfig?: {
    access?: "public" | "restricted";
    tag?: string;
    registry?: string;
    [k: string]: unknown | undefined;
  };
  dist?: {
    shasum?: string;
    tarball?: string;
    [k: string]: unknown | undefined;
  };
  readme?: string;
  /**
   * An ECMAScript module ID that is the primary entry point to your program.
   */
  module?: string;
  /**
   * A module ID with untranspiled code that is the primary entry point to your program.
   */
  esnext?:
    | string
    | {
        main?: string;
        browser?: string;
        [k: string]: string | undefined;
      };
  /**
   * Allows packages within a directory to depend on one another using direct linking of local files. Additionally, dependencies within a workspace are hoisted to the workspace root when possible to reduce duplication. Note: It's also a good idea to set "private" to true when using this feature.
   */
  workspaces?:
    | string[]
    | {
        /**
         * Workspace package paths. Glob patterns are supported.
         */
        packages?: string[];
        /**
         * Packages to block from hoisting to the workspace root. Currently only supported in Yarn only.
         */
        nohoist?: string[];
        [k: string]: unknown | undefined;
      };
  jspm?: JSONSchemaForNPMPackageJsonFiles1;
  eslintConfig?: JSONSchemaForESLintConfigurationFiles;
  prettier?: SchemaForPrettierrc;
  stylelint?: JSONSchemaForTheStylelintConfigurationFiles;
  ava?: AVAConfigSchema;
  release?: SemanticReleaseSchema;
  jscpd?: HttpsJsonSchemastoreOrgJscpdJson;
  /**
   * Any property starting with _ is valid.
   *
   * This interface was referenced by `JSONSchemaForNPMPackageJsonFiles2`'s JSON-Schema definition
   * via the `patternProperty` "^_".
   */
  [k: string]: any;
}
/**
 * Used to specify conditional exports, note that Conditional exports are unsupported in older environments, so it's recommended to use the fallback array option if support for those environments is a concern.
 */
export interface PackageExportsEntryObject {
  /**
   * The module path that is resolved when this specifier is imported as a CommonJS module using the `require(...)` function.
   */
  require?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved when this specifier is imported as an ECMAScript module using an `import` declaration or the dynamic `import(...)` function.
   */
  import?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved when this environment is Node.js.
   */
  node?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved when no other export type matches.
   */
  default?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved for TypeScript types when this specifier is imported. Should be listed before other conditions.
   */
  types?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved when this environment matches the property name.
   *
   * This interface was referenced by `PackageExportsEntryObject`'s JSON-Schema definition
   * via the `patternProperty` "^(?![\.0-9]).".
   *
   * This interface was referenced by `PackageExportsEntryObject1`'s JSON-Schema definition
   * via the `patternProperty` "^(?![\.0-9]).".
   */
  [k: string]: PackageExportsEntry | PackageExportsFallback | undefined;
}
/**
 * Used to specify conditional exports, note that Conditional exports are unsupported in older environments, so it's recommended to use the fallback array option if support for those environments is a concern.
 */
export interface PackageExportsEntryObject1 {
  /**
   * The module path that is resolved when this specifier is imported as a CommonJS module using the `require(...)` function.
   */
  require?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved when this specifier is imported as an ECMAScript module using an `import` declaration or the dynamic `import(...)` function.
   */
  import?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved when this environment is Node.js.
   */
  node?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved when no other export type matches.
   */
  default?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved for TypeScript types when this specifier is imported. Should be listed before other conditions.
   */
  types?: PackageExportsEntry | PackageExportsFallback;
  /**
   * The module path that is resolved when this environment matches the property name.
   *
   * This interface was referenced by `PackageExportsEntryObject`'s JSON-Schema definition
   * via the `patternProperty` "^(?![\.0-9]).".
   *
   * This interface was referenced by `PackageExportsEntryObject1`'s JSON-Schema definition
   * via the `patternProperty` "^(?![\.0-9]).".
   */
  [k: string]: PackageExportsEntry | PackageExportsFallback | undefined;
}
/**
 * Used to inform about ways to help fund development of the package.
 */
export interface FundingWay {
  url: FundingUrl;
  /**
   * The type of funding or the platform through which funding can be provided, e.g. patreon, opencollective, tidelift or github.
   */
  type?: string;
}
/**
 * Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.
 */
export interface Dependency {
  [k: string]: string | undefined;
}
export interface JSONSchemaForESLintConfigurationFiles {
  ecmaFeatures?: EcmaFeatures;
  env?: Env;
  /**
   * If you want to extend a specific configuration file, you can use the extends property and specify the path to the file. The path can be either relative or absolute.
   */
  extends?: string | string[];
  globals?: Globals;
  /**
   * Prevent comments from changing config or rules
   */
  noInlineConfig?: boolean;
  parser?: string;
  parserOptions?: ParserOptions;
  plugins?: Plugins;
  /**
   * By default, ESLint will look for configuration files in all parent folders up to the root directory. This can be useful if you want all of your projects to follow a certain convention, but can sometimes lead to unexpected results. To limit ESLint to a specific project, set this to `true` in a configuration in the root of your project.
   */
  root?: boolean;
  /**
   * Tell ESLint to ignore specific files and directories. Each value uses the same pattern as the `.eslintignore` file.
   */
  ignorePatterns?: string | string[];
  rules?: Rules;
  settings?: Settings;
  overrides?: Overrides;
  [k: string]: unknown | undefined;
}
/**
 * By default, ESLint supports only ECMAScript 5 syntax. You can override that setting to enable support for ECMAScript 6 as well as JSX by using configuration settings.
 */
export interface EcmaFeatures {
  arrowFunctions?: boolean;
  binaryLiterals?: boolean;
  blockBindings?: boolean;
  classes?: boolean;
  defaultParams?: boolean;
  destructuring?: boolean;
  /**
   * Enables support for the experimental object rest/spread properties (IMPORTANT: This is an experimental feature that may change significantly in the future. It's recommended that you do not write rules relying on this functionality unless you are willing to incur maintenance cost when it changes.)
   */
  experimentalObjectRestSpread?: boolean;
  forOf?: boolean;
  generators?: boolean;
  /**
   * allow return statements in the global scope
   */
  globalReturn?: boolean;
  /**
   * enable global strict mode (if ecmaVersion is 5 or greater)
   */
  impliedStrict?: boolean;
  /**
   * enable JSX
   */
  jsx?: boolean;
  modules?: boolean;
  objectLiteralComputedProperties?: boolean;
  objectLiteralDuplicateProperties?: boolean;
  objectLiteralShorthandMethods?: boolean;
  objectLiteralShorthandProperties?: boolean;
  octalLiterals?: boolean;
  regexUFlag?: boolean;
  regexYFlag?: boolean;
  restParams?: boolean;
  spread?: boolean;
  superInFunctions?: boolean;
  templateStrings?: boolean;
  unicodeCodePointEscapes?: boolean;
  [k: string]: unknown | undefined;
}
/**
 * An environment defines global variables that are predefined.
 */
export interface Env {
  /**
   * defines require() and define() as global variables as per the amd spec
   */
  amd?: boolean;
  /**
   * AppleScript global variables
   */
  applescript?: boolean;
  /**
   * Atom test helper globals
   */
  atomtest?: boolean;
  /**
   * browser global variables
   */
  browser?: boolean;
  /**
   * CommonJS global variables and CommonJS scoping (use this for browser-only code that uses Browserify/WebPack)
   */
  commonjs?: boolean;
  /**
   * Globals common to both Node and Browser
   */
  "shared-node-browser"?: boolean;
  /**
   * Ember test helper globals
   */
  embertest?: boolean;
  /**
   * enable all ECMAScript 6 features except for modules
   */
  es6?: boolean;
  /**
   * GreaseMonkey globals
   */
  greasemonkey?: boolean;
  /**
   * adds all of the Jasmine testing global variables for version 1.3 and 2.0
   */
  jasmine?: boolean;
  /**
   * Jest global variables
   */
  jest?: boolean;
  /**
   * jQuery global variables
   */
  jquery?: boolean;
  /**
   * Meteor global variables
   */
  meteor?: boolean;
  /**
   * adds all of the Mocha test global variables
   */
  mocha?: boolean;
  /**
   * MongoDB global variables
   */
  mongo?: boolean;
  /**
   * Java 8 Nashorn global variables
   */
  nashorn?: boolean;
  /**
   * Node.js global variables and Node.js scoping
   */
  node?: boolean;
  /**
   * PhantomJS global variables
   */
  phantomjs?: boolean;
  /**
   * Prototype.js global variables
   */
  prototypejs?: boolean;
  /**
   * Protractor global variables
   */
  protractor?: boolean;
  /**
   * QUnit global variables
   */
  qunit?: boolean;
  /**
   * Service Worker global variables
   */
  serviceworker?: boolean;
  /**
   * ShellJS global variables
   */
  shelljs?: boolean;
  /**
   * WebExtensions globals
   */
  webextensions?: boolean;
  /**
   * web workers global variables
   */
  worker?: boolean;
  [k: string]: unknown | undefined;
}
/**
 * Set each global variable name equal to true to allow the variable to be overwritten or false to disallow overwriting.
 */
export interface Globals {
  [k: string]: (("readonly" | "writable" | "off") | boolean) | undefined;
}
/**
 * The JavaScript language options to be supported
 */
export interface ParserOptions {
  ecmaFeatures?: EcmaFeatures;
  /**
   * Set to 3, 5, 6, 7, 8, 9, 10, 11 (default), 12, 13, 14 or "latest" to specify the version of ECMAScript syntax you want to use. You can also set to 2015 (same as 6), 2016 (same as 7), 2017 (same as 8), 2018 (same as 9), 2019 (same as 10), 2020 (same as 11), 2021 (same as 12), 2022 (same as 13) or 2023 (same as 14) to use the year-based naming. "latest" always enables the latest supported ECMAScript version.
   */
  ecmaVersion?:
    | 3
    | 5
    | 6
    | 2015
    | 7
    | 2016
    | 8
    | 2017
    | 9
    | 2018
    | 10
    | 2019
    | 11
    | 2020
    | 12
    | 2021
    | 13
    | 2022
    | 14
    | 2023
    | "latest";
  /**
   * set to "script" (default) or "module" if your code is in ECMAScript modules
   */
  sourceType?: "script" | "module";
  [k: string]: unknown | undefined;
}
export interface PossibleErrors {
  /**
   * Require or disallow trailing commas
   */
  "comma-dangle"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce "for" loop update clause moving the counter in the right direction
   */
  "for-direction"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce return statements in getters
   */
  "getter-return"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow await inside of loops
   */
  "no-await-in-loop"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow comparing against -0
   */
  "no-compare-neg-zero"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow assignment operators in conditional expressions
   */
  "no-cond-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of console
   */
  "no-console"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow constant expressions in conditions
   */
  "no-constant-condition"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow control characters in regular expressions
   */
  "no-control-regex"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of debugger
   */
  "no-debugger"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow duplicate arguments in function definitions
   */
  "no-dupe-args"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow duplicate keys in object literals
   */
  "no-dupe-keys"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow duplicate case labels
   */
  "no-duplicate-case"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow empty block statements
   */
  "no-empty"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow empty character classes in regular expressions
   */
  "no-empty-character-class"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow reassigning exceptions in catch clauses
   */
  "no-ex-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary boolean casts
   */
  "no-extra-boolean-cast"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary parentheses
   */
  "no-extra-parens"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary semicolons
   */
  "no-extra-semi"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow reassigning function declarations
   */
  "no-func-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow function or var declarations in nested blocks
   */
  "no-inner-declarations"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow invalid regular expression strings in RegExp constructors
   */
  "no-invalid-regexp"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow irregular whitespace outside of strings and comments
   */
  "no-irregular-whitespace"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow negating the left operand in in expressions (deprecated)
   */
  "no-negated-in-lhs"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow calling global object properties as functions
   */
  "no-obj-calls"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow calling some Object.prototype methods directly on objects
   */
  "no-prototype-builtins"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow multiple spaces in regular expressions
   */
  "no-regex-spaces"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow sparse arrays
   */
  "no-sparse-arrays"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow template literal placeholder syntax in regular strings
   */
  "no-template-curly-in-string"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow confusing multiline expressions
   */
  "no-unexpected-multiline"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unreachable code after return, throw, continue, and break statements
   */
  "no-unreachable"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow control flow statements in finally blocks
   */
  "no-unsafe-finally"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow negating the left operand of relational operators
   */
  "no-unsafe-negation"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require calls to isNaN() when checking for NaN
   */
  "use-isnan"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce valid JSDoc comments
   */
  "valid-jsdoc"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce comparing typeof expressions against valid strings
   */
  "valid-typeof"?: number | ("off" | "warn" | "error") | unknown[];
  [k: string]: unknown | undefined;
}
export interface BestPractices {
  /**
   * Enforce getter and setter pairs in objects
   */
  "accessor-pairs"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce return statements in callbacks of array methods
   */
  "array-callback-return"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce the use of variables within the scope they are defined
   */
  "block-scoped-var"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce that class methods utilize this
   */
  "class-methods-use-this"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a maximum cyclomatic complexity allowed in a program
   */
  complexity?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require return statements to either always or never specify values
   */
  "consistent-return"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent brace style for all control statements
   */
  curly?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require default cases in switch statements
   */
  "default-case"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent newlines before and after dots
   */
  "dot-location"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce dot notation whenever possible
   */
  "dot-notation"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require the use of === and !==
   */
  eqeqeq?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require for-in loops to include an if statement
   */
  "guard-for-in"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of alert, confirm, and prompt
   */
  "no-alert"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of arguments.caller or arguments.callee
   */
  "no-caller"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow lexical declarations in case clauses
   */
  "no-case-declarations"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow division operators explicitly at the beginning of regular expressions
   */
  "no-div-regex"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow else blocks after return statements in if statements
   */
  "no-else-return"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow empty functions
   */
  "no-empty-function"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow empty destructuring patterns
   */
  "no-empty-pattern"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow null comparisons without type-checking operators
   */
  "no-eq-null"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of eval()
   */
  "no-eval"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow extending native types
   */
  "no-extend-native"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary calls to .bind()
   */
  "no-extra-bind"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary labels
   */
  "no-extra-label"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow fallthrough of case statements
   */
  "no-fallthrough"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow leading or trailing decimal points in numeric literals
   */
  "no-floating-decimal"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow assignments to native objects or read-only global variables
   */
  "no-global-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow shorthand type conversions
   */
  "no-implicit-coercion"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow var and named function declarations in the global scope
   */
  "no-implicit-globals"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of eval()-like methods
   */
  "no-implied-eval"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow this keywords outside of classes or class-like objects
   */
  "no-invalid-this"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of the __iterator__ property
   */
  "no-iterator"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow labeled statements
   */
  "no-labels"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary nested blocks
   */
  "no-lone-blocks"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow function declarations and expressions inside loop statements
   */
  "no-loop-func"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow magic numbers
   */
  "no-magic-numbers"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow multiple spaces
   */
  "no-multi-spaces"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow multiline strings
   */
  "no-multi-str"?: number | ("off" | "warn" | "error") | unknown[];
  "no-native-reassign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow new operators outside of assignments or comparisons
   */
  "no-new"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow new operators with the Function object
   */
  "no-new-func"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow new operators with the String, Number, and Boolean objects
   */
  "no-new-wrappers"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow octal literals
   */
  "no-octal"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow octal escape sequences in string literals
   */
  "no-octal-escape"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow reassigning function parameters
   */
  "no-param-reassign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of the __proto__ property
   */
  "no-proto"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow var redeclaration
   */
  "no-redeclare"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow certain properties on certain objects
   */
  "no-restricted-properties"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow assignment operators in return statements
   */
  "no-return-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary return await
   */
  "no-return-await"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow javascript: urls
   */
  "no-script-url"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow assignments where both sides are exactly the same
   */
  "no-self-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow comparisons where both sides are exactly the same
   */
  "no-self-compare"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow comma operators
   */
  "no-sequences"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow throwing literals as exceptions
   */
  "no-throw-literal"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unmodified loop conditions
   */
  "no-unmodified-loop-condition"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unused expressions
   */
  "no-unused-expressions"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unused labels
   */
  "no-unused-labels"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary calls to .call() and .apply()
   */
  "no-useless-call"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary concatenation of literals or template literals
   */
  "no-useless-concat"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary escape characters
   */
  "no-useless-escape"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow redundant return statements
   */
  "no-useless-return"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow void operators
   */
  "no-void"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow specified warning terms in comments
   */
  "no-warning-comments"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow with statements
   */
  "no-with"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require using Error objects as Promise rejection reasons
   */
  "prefer-promise-reject-errors"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce the consistent use of the radix argument when using parseInt()
   */
  radix?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow async functions which have no await expression
   */
  "require-await"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require var declarations be placed at the top of their containing scope
   */
  "vars-on-top"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require parentheses around immediate function invocations
   */
  "wrap-iife"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or Disallow "Yoda" conditions
   */
  yoda?: number | ("off" | "warn" | "error") | unknown[];
  [k: string]: unknown | undefined;
}
export interface StrictMode {
  /**
   * require or disallow strict mode directives
   */
  strict?: number | ("off" | "warn" | "error") | unknown[];
  [k: string]: unknown | undefined;
}
export interface Variables {
  /**
   * Require or disallow initialization in var declarations
   */
  "init-declarations"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow catch clause parameters from shadowing variables in the outer scope
   */
  "no-catch-shadow"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow deleting variables
   */
  "no-delete-var"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow labels that share a name with a variable
   */
  "no-label-var"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow specified global variables
   */
  "no-restricted-globals"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow var declarations from shadowing variables in the outer scope
   */
  "no-shadow"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow identifiers from shadowing restricted names
   */
  "no-shadow-restricted-names"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of undeclared variables unless mentioned in /*global * / comments
   */
  "no-undef"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of undefined as an identifier
   */
  "no-undefined"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow initializing variables to undefined
   */
  "no-undef-init"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unused variables
   */
  "no-unused-vars"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of variables before they are defined
   */
  "no-use-before-define"?: number | ("off" | "warn" | "error") | unknown[];
  [k: string]: unknown | undefined;
}
export interface NodeAndCommonJs {
  /**
   * Require return statements after callbacks
   */
  "callback-return"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require require() calls to be placed at top-level module scope
   */
  "global-require"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require error handling in callbacks
   */
  "handle-callback-err"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow use of the Buffer() constructor
   */
  "no-buffer-constructor"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow require calls to be mixed with regular var declarations
   */
  "no-mixed-requires"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow new operators with calls to require
   */
  "no-new-require"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow string concatenation with __dirname and __filename
   */
  "no-path-concat"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of process.env
   */
  "no-process-env"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the use of process.exit()
   */
  "no-process-exit"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow specified modules when loaded by require
   */
  "no-restricted-modules"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow synchronous methods
   */
  "no-sync"?: number | ("off" | "warn" | "error") | unknown[];
  [k: string]: unknown | undefined;
}
export interface StylisticIssues {
  /**
   * Enforce line breaks after opening and before closing array brackets
   */
  "array-bracket-newline"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing inside array brackets
   */
  "array-bracket-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce line breaks after each array element
   */
  "array-element-newline"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing inside single-line blocks
   */
  "block-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent brace style for blocks
   */
  "brace-style"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce camelcase naming convention
   */
  camelcase?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce or disallow capitalization of the first letter of a comment
   */
  "capitalized-comments"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow trailing commas
   */
  "comma-dangle"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing before and after commas
   */
  "comma-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent comma style
   */
  "comma-style"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing inside computed property brackets
   */
  "computed-property-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent naming when capturing the current execution context
   */
  "consistent-this"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce at least one newline at the end of files
   */
  "eol-last"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow spacing between function identifiers and their invocations
   */
  "func-call-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require function names to match the name of the variable or property to which they are assigned
   */
  "func-name-matching"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow named function expressions
   */
  "func-names"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce the consistent use of either function declarations or expressions
   */
  "func-style"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce line breaks between arguments of a function call
   */
  "function-call-argument-newline"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent line breaks inside function parentheses
   */
  "function-paren-newline"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow specified identifiers
   */
  "id-blacklist"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce minimum and maximum identifier lengths
   */
  "id-length"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require identifiers to match a specified regular expression
   */
  "id-match"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce the location of arrow function bodies
   */
  "implicit-arrow-linebreak"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent indentation
   */
  indent?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent indentation (legacy, deprecated)
   */
  "indent-legacy"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce the consistent use of either double or single quotes in JSX attributes
   */
  "jsx-quotes"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing between keys and values in object literal properties
   */
  "key-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing before and after keywords
   */
  "keyword-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce position of line comments
   */
  "line-comment-position"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow an empty line between class members
   */
  "lines-between-class-members"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent linebreak style
   */
  "linebreak-style"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require empty lines around comments
   */
  "lines-around-comment"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow newlines around directives
   */
  "lines-around-directive"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a maximum depth that blocks can be nested
   */
  "max-depth"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a maximum line length
   */
  "max-len"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a maximum number of lines per file
   */
  "max-lines"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a maximum depth that callbacks can be nested
   */
  "max-nested-callbacks"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a maximum number of parameters in function definitions
   */
  "max-params"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a maximum number of statements allowed in function blocks
   */
  "max-statements"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a maximum number of statements allowed per line
   */
  "max-statements-per-line"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce a particular style for multiline comments
   */
  "multiline-comment-style"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce newlines between operands of ternary expressions
   */
  "multiline-ternary"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require constructor function names to begin with a capital letter
   */
  "new-cap"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow an empty line after var declarations
   */
  "newline-after-var"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require an empty line before return statements
   */
  "newline-before-return"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require a newline after each call in a method chain
   */
  "newline-per-chained-call"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require parentheses when invoking a constructor with no arguments
   */
  "new-parens"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow Array constructors
   */
  "no-array-constructor"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow bitwise operators
   */
  "no-bitwise"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow continue statements
   */
  "no-continue"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow inline comments after code
   */
  "no-inline-comments"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow if statements as the only statement in else blocks
   */
  "no-lonely-if"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow mixed binary operators
   */
  "no-mixed-operators"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow mixed spaces and tabs for indentation
   */
  "no-mixed-spaces-and-tabs"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow use of chained assignment expressions
   */
  "no-multi-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow multiple empty lines
   */
  "no-multiple-empty-lines"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow negated conditions
   */
  "no-negated-condition"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow nested ternary expressions
   */
  "no-nested-ternary"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow Object constructors
   */
  "no-new-object"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow the unary operators ++ and --
   */
  "no-plusplus"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow specified syntax
   */
  "no-restricted-syntax"?: number | ("off" | "warn" | "error") | unknown[];
  "no-spaced-func"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow tabs in file
   */
  "no-tabs"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow ternary operators
   */
  "no-ternary"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow trailing whitespace at the end of lines
   */
  "no-trailing-spaces"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow dangling underscores in identifiers
   */
  "no-underscore-dangle"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow ternary operators when simpler alternatives exist
   */
  "no-unneeded-ternary"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow whitespace before properties
   */
  "no-whitespace-before-property"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce the location of single-line statements
   */
  "nonblock-statement-body-position"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent line breaks inside braces
   */
  "object-curly-newline"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing inside braces
   */
  "object-curly-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce placing object properties on separate lines
   */
  "object-property-newline"?: number | ("off" | "warn" | "error") | unknown[];
  "object-shorthand"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce variables to be declared either together or separately in functions
   */
  "one-var"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow newlines around var declarations
   */
  "one-var-declaration-per-line"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow assignment operator shorthand where possible
   */
  "operator-assignment"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent linebreak style for operators
   */
  "operator-linebreak"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow padding within blocks
   */
  "padded-blocks"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow padding lines between statements
   */
  "padding-line-between-statements"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require quotes around object literal property names
   */
  "quote-props"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce the consistent use of either backticks, double, or single quotes
   */
  quotes?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require JSDoc comments
   */
  "require-jsdoc"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow semicolons instead of ASI
   */
  semi?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing before and after semicolons
   */
  "semi-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce location of semicolons
   */
  "semi-style"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Requires object keys to be sorted
   */
  "sort-keys"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require variables within the same declaration block to be sorted
   */
  "sort-vars"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing before blocks
   */
  "space-before-blocks"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing before function definition opening parenthesis
   */
  "space-before-function-paren"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing after the // or /* in a comment
   */
  "spaced-comment"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require spacing around operators
   */
  "space-infix-ops"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing inside parentheses
   */
  "space-in-parens"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing before or after unary operators
   */
  "space-unary-ops"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce spacing around colons of switch statements
   */
  "switch-colon-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow spacing between template tags and their literals
   */
  "template-tag-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow Unicode byte order mark (BOM)
   */
  "unicode-bom"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require parenthesis around regex literals
   */
  "wrap-regex"?: number | ("off" | "warn" | "error") | unknown[];
  [k: string]: unknown | undefined;
}
export interface EcmaScript6 {
  /**
   * Require braces around arrow function bodies
   */
  "arrow-body-style"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require parentheses around arrow function arguments
   */
  "arrow-parens"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing before and after the arrow in arrow functions
   */
  "arrow-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require super() calls in constructors
   */
  "constructor-super"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce consistent spacing around * operators in generator functions
   */
  "generator-star-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow reassigning class members
   */
  "no-class-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow arrow functions where they could be confused with comparisons
   */
  "no-confusing-arrow"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow reassigning const variables
   */
  "no-const-assign"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow duplicate class members
   */
  "no-dupe-class-members"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow duplicate module imports
   */
  "no-duplicate-imports"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow new operators with the Symbol object
   */
  "no-new-symbol"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow specified modules when loaded by import
   */
  "no-restricted-imports"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow this/super before calling super() in constructors
   */
  "no-this-before-super"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary computed property keys in object literals
   */
  "no-useless-computed-key"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow unnecessary constructors
   */
  "no-useless-constructor"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow renaming import, export, and destructured assignments to the same name
   */
  "no-useless-rename"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require let or const instead of var
   */
  "no-var"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow method and property shorthand syntax for object literals
   */
  "object-shorthand"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require arrow functions as callbacks
   */
  "prefer-arrow-callback"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require const declarations for variables that are never reassigned after declared
   */
  "prefer-const"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require destructuring from arrays and/or objects
   */
  "prefer-destructuring"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Disallow parseInt() in favor of binary, octal, and hexadecimal literals
   */
  "prefer-numeric-literals"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require Reflect methods where applicable
   */
  "prefer-reflect"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require rest parameters instead of arguments
   */
  "prefer-rest-params"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require spread operators instead of .apply()
   */
  "prefer-spread"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require template literals instead of string concatenation
   */
  "prefer-template"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require generator functions to contain yield
   */
  "require-yield"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce spacing between rest and spread operators and their expressions
   */
  "rest-spread-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Enforce sorted import declarations within modules
   */
  "sort-imports"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require symbol descriptions
   */
  "symbol-description"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow spacing around embedded expressions of template strings
   */
  "template-curly-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  /**
   * Require or disallow spacing around the * in yield* expressions
   */
  "yield-star-spacing"?: number | ("off" | "warn" | "error") | unknown[];
  [k: string]: unknown | undefined;
}
export interface Legacy {
  "max-depth"?: number | ("off" | "warn" | "error") | unknown[];
  "max-len"?: number | ("off" | "warn" | "error") | unknown[];
  "max-params"?: number | ("off" | "warn" | "error") | unknown[];
  "max-statements"?: number | ("off" | "warn" | "error") | unknown[];
  "no-bitwise"?: number | ("off" | "warn" | "error") | unknown[];
  "no-plusplus"?: number | ("off" | "warn" | "error") | unknown[];
  [k: string]: unknown | undefined;
}
/**
 * ESLint supports adding shared settings into configuration file. You can add settings object to ESLint configuration file and it will be supplied to every rule that will be executed. This may be useful if you are adding custom rules and want them to have access to the same information and be easily configurable.
 */
export interface Settings {
  [k: string]: unknown | undefined;
}
export interface OptionsDefinition {
  /**
   * Include parentheses around a sole arrow function parameter.
   */
  arrowParens?: "always" | "avoid";
  /**
   * Put > of opening tags on the last line instead of on a new line.
   */
  bracketSameLine?: boolean;
  /**
   * Print spaces between brackets.
   */
  bracketSpacing?: boolean;
  /**
   * Print (to stderr) where a cursor at the given position would move to after formatting.
   * This option cannot be used with --range-start and --range-end.
   */
  cursorOffset?: number;
  /**
   * Whether parse the .editorconfig file in your project and convert its properties to the corresponding Prettier configuration. This configuration will be overridden by .prettierrc, etc.
   */
  editorconfig?: boolean;
  /**
   * Control how Prettier formats quoted code embedded in the file.
   */
  embeddedLanguageFormatting?: "auto" | "off";
  /**
   * Which end of line characters to apply.
   */
  endOfLine?: "lf" | "crlf" | "cr" | "auto";
  /**
   * Specify the input filepath. This will be used to do parser inference.
   */
  filepath?: string;
  /**
   * How to handle whitespaces in HTML.
   */
  htmlWhitespaceSensitivity?: "css" | "strict" | "ignore";
  /**
   * Insert @format pragma into file's first docblock comment.
   */
  insertPragma?: boolean;
  /**
   * Use single quotes in JSX.
   */
  jsxSingleQuote?: boolean;
  /**
   * Which parser to use.
   */
  parser?:
    | "flow"
    | "babel"
    | "babel-flow"
    | "babel-ts"
    | "typescript"
    | "acorn"
    | "espree"
    | "meriyah"
    | "css"
    | "less"
    | "scss"
    | "json"
    | "json5"
    | "json-stringify"
    | "graphql"
    | "markdown"
    | "mdx"
    | "vue"
    | "yaml"
    | "glimmer"
    | "html"
    | "angular"
    | "lwc"
    | string;
  /**
   * Custom directory that contains prettier plugins in node_modules subdirectory.
   * Overrides default behavior when plugins are searched relatively to the location of Prettier.
   * Multiple values are accepted.
   */
  pluginSearchDirs?: string[] | false;
  /**
   * Add a plugin. Multiple plugins can be passed as separate `--plugin`s.
   */
  plugins?: string[];
  /**
   * The line length where Prettier will try wrap.
   */
  printWidth?: number;
  /**
   * How to wrap prose.
   */
  proseWrap?: "always" | "never" | "preserve";
  /**
   * Change when properties in objects are quoted.
   */
  quoteProps?: "as-needed" | "consistent" | "preserve";
  /**
   * Format code ending at a given character offset (exclusive).
   * The range will extend forwards to the end of the selected statement.
   * This option cannot be used with --cursor-offset.
   */
  rangeEnd?: number;
  /**
   * Format code starting at a given character offset.
   * The range will extend backwards to the start of the first line containing the selected statement.
   * This option cannot be used with --cursor-offset.
   */
  rangeStart?: number;
  /**
   * Require either '@prettier' or '@format' to be present in the file's first docblock comment
   * in order for it to be formatted.
   */
  requirePragma?: boolean;
  /**
   * Print semicolons.
   */
  semi?: boolean;
  /**
   * Enforce single attribute per line in HTML, Vue and JSX.
   */
  singleAttributePerLine?: boolean;
  /**
   * Use single quotes instead of double quotes.
   */
  singleQuote?: boolean;
  /**
   * Number of spaces per indentation level.
   */
  tabWidth?: number;
  /**
   * Print trailing commas wherever possible when multi-line.
   */
  trailingComma?: "es5" | "none" | "all";
  /**
   * Indent with tabs instead of spaces.
   */
  useTabs?: boolean;
  /**
   * Indent script and style tags in Vue files.
   */
  vueIndentScriptAndStyle?: boolean;
  [k: string]: unknown | undefined;
}
export interface OverridesDefinition {
  /**
   * Provide a list of patterns to override prettier configuration.
   */
  overrides?: {
    /**
     * Include these files in this override.
     */
    files: string | string[];
    /**
     * Exclude these files from this override.
     */
    excludeFiles?: string | string[];
    options?: OptionsDefinition1;
  }[];
  [k: string]: unknown | undefined;
}
/**
 * The options to apply for this override.
 */
export interface OptionsDefinition1 {
  /**
   * Include parentheses around a sole arrow function parameter.
   */
  arrowParens?: "always" | "avoid";
  /**
   * Put > of opening tags on the last line instead of on a new line.
   */
  bracketSameLine?: boolean;
  /**
   * Print spaces between brackets.
   */
  bracketSpacing?: boolean;
  /**
   * Print (to stderr) where a cursor at the given position would move to after formatting.
   * This option cannot be used with --range-start and --range-end.
   */
  cursorOffset?: number;
  /**
   * Whether parse the .editorconfig file in your project and convert its properties to the corresponding Prettier configuration. This configuration will be overridden by .prettierrc, etc.
   */
  editorconfig?: boolean;
  /**
   * Control how Prettier formats quoted code embedded in the file.
   */
  embeddedLanguageFormatting?: "auto" | "off";
  /**
   * Which end of line characters to apply.
   */
  endOfLine?: "lf" | "crlf" | "cr" | "auto";
  /**
   * Specify the input filepath. This will be used to do parser inference.
   */
  filepath?: string;
  /**
   * How to handle whitespaces in HTML.
   */
  htmlWhitespaceSensitivity?: "css" | "strict" | "ignore";
  /**
   * Insert @format pragma into file's first docblock comment.
   */
  insertPragma?: boolean;
  /**
   * Use single quotes in JSX.
   */
  jsxSingleQuote?: boolean;
  /**
   * Which parser to use.
   */
  parser?:
    | "flow"
    | "babel"
    | "babel-flow"
    | "babel-ts"
    | "typescript"
    | "acorn"
    | "espree"
    | "meriyah"
    | "css"
    | "less"
    | "scss"
    | "json"
    | "json5"
    | "json-stringify"
    | "graphql"
    | "markdown"
    | "mdx"
    | "vue"
    | "yaml"
    | "glimmer"
    | "html"
    | "angular"
    | "lwc"
    | string;
  /**
   * Custom directory that contains prettier plugins in node_modules subdirectory.
   * Overrides default behavior when plugins are searched relatively to the location of Prettier.
   * Multiple values are accepted.
   */
  pluginSearchDirs?: string[] | false;
  /**
   * Add a plugin. Multiple plugins can be passed as separate `--plugin`s.
   */
  plugins?: string[];
  /**
   * The line length where Prettier will try wrap.
   */
  printWidth?: number;
  /**
   * How to wrap prose.
   */
  proseWrap?: "always" | "never" | "preserve";
  /**
   * Change when properties in objects are quoted.
   */
  quoteProps?: "as-needed" | "consistent" | "preserve";
  /**
   * Format code ending at a given character offset (exclusive).
   * The range will extend forwards to the end of the selected statement.
   * This option cannot be used with --cursor-offset.
   */
  rangeEnd?: number;
  /**
   * Format code starting at a given character offset.
   * The range will extend backwards to the start of the first line containing the selected statement.
   * This option cannot be used with --cursor-offset.
   */
  rangeStart?: number;
  /**
   * Require either '@prettier' or '@format' to be present in the file's first docblock comment
   * in order for it to be formatted.
   */
  requirePragma?: boolean;
  /**
   * Print semicolons.
   */
  semi?: boolean;
  /**
   * Enforce single attribute per line in HTML, Vue and JSX.
   */
  singleAttributePerLine?: boolean;
  /**
   * Use single quotes instead of double quotes.
   */
  singleQuote?: boolean;
  /**
   * Number of spaces per indentation level.
   */
  tabWidth?: number;
  /**
   * Print trailing commas wherever possible when multi-line.
   */
  trailingComma?: "es5" | "none" | "all";
  /**
   * Indent with tabs instead of spaces.
   */
  useTabs?: boolean;
  /**
   * Indent script and style tags in Vue files.
   */
  vueIndentScriptAndStyle?: boolean;
  [k: string]: unknown | undefined;
}
export interface JSONSchemaForTheStylelintConfigurationFiles {
  extends?: SimpleStringOrArrayStringRule;
  plugins?: SimpleArrayStringRule1;
  /**
   * Specify a custom syntax to use on your code.
   */
  customSyntax?: string;
  /**
   * Provide rule and behavior overrides for files that match particular glob patterns.
   */
  overrides?: {
    files?: string[];
    customSyntax?: string;
    rules?: AllRules;
    [k: string]: unknown | undefined;
  }[];
  /**
   * Processors are functions that hook into stylelint's pipeline, modifying code on its way into stylelint and modifying results on their way out
   */
  processors?: (
    | string
    | []
    | [
        string,
        ...{
          [k: string]: unknown | undefined;
        }[]
      ]
  )[];
  /**
   * Ignore stylelint-disable (e.g. /* stylelint-disable block-no-empty * /) comments.
   */
  ignoreDisables?: boolean;
  ignoreFiles?: SimpleStringOrArrayStringRule1;
  /**
   * The default severity level for all rules that do not have a severity specified in their secondary options
   */
  defaultSeverity?: "warning" | "error";
  reportDescriptionlessDisables?: BooleanRule38;
  reportInvalidScopeDisables?: BooleanRule39;
  reportNeedlessDisables?: BooleanRule40;
  rules?: AllRules;
  [k: string]: unknown | undefined;
}
export interface AtRule {
  "at-rule-blacklist"?: ArrayStringRule;
  /**
   * Require or disallow an empty line before at-rules
   */
  "at-rule-empty-line-before"?: (
    | null
    | ("always" | "never" | [])
    | [
        (("always" | "never" | {}) | CoreRule) &
          (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
        (("always" | "never" | {}) | CoreRule) &
          (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "never" | [])
            | [
                (("always" | "never" | {}) | CoreRule) &
                  (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
                (("always" | "never" | {}) | CoreRule) &
                  (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "at-rule-name-case"?: LowerUpperRule;
  "at-rule-name-newline-after"?: AlwaysMultiLineRule;
  /**
   * Require a single space after at-rule names
   */
  "at-rule-name-space-after"?: (
    | null
    | ("always" | "always-single-line" | [])
    | [
        (("always" | "always-single-line" | {}) | CoreRule) &
          (
            | ((("always" | "always-single-line" | {}) | CoreRule) & string)
            | (("always" | "always-single-line" | {}) | CoreRule)
          ),
        (("always" | "always-single-line" | {}) | CoreRule) &
          (
            | ((("always" | "always-single-line" | {}) | CoreRule) & string)
            | (("always" | "always-single-line" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "always-single-line" | [])
            | [
                (("always" | "always-single-line" | {}) | CoreRule) &
                  (
                    | ((("always" | "always-single-line" | {}) | CoreRule) & string)
                    | (("always" | "always-single-line" | {}) | CoreRule)
                  ),
                (("always" | "always-single-line" | {}) | CoreRule) &
                  (
                    | ((("always" | "always-single-line" | {}) | CoreRule) & string)
                    | (("always" | "always-single-line" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("always" | "always-single-line" | [])
          | [
              (("always" | "always-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-single-line" | {}) | CoreRule) & string)
                  | (("always" | "always-single-line" | {}) | CoreRule)
                ),
              (("always" | "always-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-single-line" | {}) | CoreRule) & string)
                  | (("always" | "always-single-line" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "always-single-line" | [])
          | [
              (("always" | "always-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-single-line" | {}) | CoreRule) & string)
                  | (("always" | "always-single-line" | {}) | CoreRule)
                ),
              (("always" | "always-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "always-single-line" | {}) | CoreRule) & string)
                  | (("always" | "always-single-line" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  /**
   * Disallow unknown at-rules
   */
  "at-rule-no-unknown"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "at-rule-no-vendor-prefix"?: BooleanRule;
  /**
   * Require a newline after the semicolon of at-rules
   */
  "at-rule-semicolon-newline-after"?: (
    | null
    | ("always" | [])
    | [
        (("always" | {}) | CoreRule) & (((("always" | {}) | CoreRule) & string) | (("always" | {}) | CoreRule)),
        (("always" | {}) | CoreRule) & (((("always" | {}) | CoreRule) & string) | (("always" | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | [])
            | [
                (("always" | {}) | CoreRule) & (((("always" | {}) | CoreRule) & string) | (("always" | {}) | CoreRule)),
                (("always" | {}) | CoreRule) & (((("always" | {}) | CoreRule) & string) | (("always" | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | ("always" | [])
          | [
              (("always" | {}) | CoreRule) & (((("always" | {}) | CoreRule) & string) | (("always" | {}) | CoreRule)),
              (("always" | {}) | CoreRule) & (((("always" | {}) | CoreRule) & string) | (("always" | {}) | CoreRule))
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | [])
          | [
              (("always" | {}) | CoreRule) & (((("always" | {}) | CoreRule) & string) | (("always" | {}) | CoreRule)),
              (("always" | {}) | CoreRule) & (((("always" | {}) | CoreRule) & string) | (("always" | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "at-rule-whitelist"?: ArrayStringRule1;
  [k: string]: unknown | undefined;
}
export interface CoreRule {
  disableFix?: boolean;
  /**
   * Custom message that will be used in errors and warnings
   */
  message?: string;
  reportDisables?: boolean;
  /**
   * Message status
   */
  severity?: "warning" | "error";
  [k: string]: unknown | undefined;
}
export interface Block {
  /**
   * Require or disallow an empty line before the closing brace of blocks
   */
  "block-closing-brace-empty-line-before"?: (
    | null
    | ("always-multi-line" | "never" | [])
    | [
        (("always-multi-line" | "never" | {}) | CoreRule) &
          (
            | ((("always-multi-line" | "never" | {}) | CoreRule) & string)
            | (("always-multi-line" | "never" | {}) | CoreRule)
          ),
        (("always-multi-line" | "never" | {}) | CoreRule) &
          (
            | ((("always-multi-line" | "never" | {}) | CoreRule) & string)
            | (("always-multi-line" | "never" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always-multi-line" | "never" | [])
            | [
                (("always-multi-line" | "never" | {}) | CoreRule) &
                  (
                    | ((("always-multi-line" | "never" | {}) | CoreRule) & string)
                    | (("always-multi-line" | "never" | {}) | CoreRule)
                  ),
                (("always-multi-line" | "never" | {}) | CoreRule) &
                  (
                    | ((("always-multi-line" | "never" | {}) | CoreRule) & string)
                    | (("always-multi-line" | "never" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("always-multi-line" | "never" | [])
          | [
              (("always-multi-line" | "never" | {}) | CoreRule) &
                (
                  | ((("always-multi-line" | "never" | {}) | CoreRule) & string)
                  | (("always-multi-line" | "never" | {}) | CoreRule)
                ),
              (("always-multi-line" | "never" | {}) | CoreRule) &
                (
                  | ((("always-multi-line" | "never" | {}) | CoreRule) & string)
                  | (("always-multi-line" | "never" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always-multi-line" | "never" | [])
          | [
              (("always-multi-line" | "never" | {}) | CoreRule) &
                (
                  | ((("always-multi-line" | "never" | {}) | CoreRule) & string)
                  | (("always-multi-line" | "never" | {}) | CoreRule)
                ),
              (("always-multi-line" | "never" | {}) | CoreRule) &
                (
                  | ((("always-multi-line" | "never" | {}) | CoreRule) & string)
                  | (("always-multi-line" | "never" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  "block-closing-brace-newline-after"?: NewlineSpaceWithIgnoreRule;
  "block-closing-brace-newline-before"?: NewlineRule;
  "block-closing-brace-space-after"?: NewlineSpaceRule;
  "block-closing-brace-space-before"?: NewlineSpaceRule1;
  "block-no-empty"?: BooleanRule1;
  "block-no-single-line"?: BooleanRule2;
  "block-opening-brace-newline-after"?: NewlineRule1;
  /**
   * Require a newline or disallow whitespace before the opening brace of blocks
   */
  "block-opening-brace-newline-before"?: (
    | null
    | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
    | [
        (
          | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
          | CoreRule
        ) &
          (
            | ((
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                string)
            | (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              )
          ),
        (
          | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | {})
          | CoreRule
        ) &
          (
            | ((
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                string)
            | (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              )
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
            | [
                (
                  | (
                      | "always"
                      | "always-single-line"
                      | "never-single-line"
                      | "always-multi-line"
                      | "never-multi-line"
                      | {}
                    )
                  | CoreRule
                ) &
                  (
                    | ((
                        | (
                            | "always"
                            | "always-single-line"
                            | "never-single-line"
                            | "always-multi-line"
                            | "never-multi-line"
                            | {}
                          )
                        | CoreRule
                      ) &
                        string)
                    | (
                        | (
                            | "always"
                            | "always-single-line"
                            | "never-single-line"
                            | "always-multi-line"
                            | "never-multi-line"
                            | {}
                          )
                        | CoreRule
                      )
                  ),
                (
                  | (
                      | "always"
                      | "always-single-line"
                      | "never-single-line"
                      | "always-multi-line"
                      | "never-multi-line"
                      | {}
                    )
                  | CoreRule
                ) &
                  (
                    | ((
                        | (
                            | "always"
                            | "always-single-line"
                            | "never-single-line"
                            | "always-multi-line"
                            | "never-multi-line"
                            | {}
                          )
                        | CoreRule
                      ) &
                        string)
                    | (
                        | (
                            | "always"
                            | "always-single-line"
                            | "never-single-line"
                            | "always-multi-line"
                            | "never-multi-line"
                            | {}
                          )
                        | CoreRule
                      )
                  )
              ]
          ))
      | ((
          | null
          | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
          | [
              (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                ),
              (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "always-single-line" | "never-single-line" | "always-multi-line" | "never-multi-line" | [])
          | [
              (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                ),
              (
                | (
                    | "always"
                    | "always-single-line"
                    | "never-single-line"
                    | "always-multi-line"
                    | "never-multi-line"
                    | {}
                  )
                | CoreRule
              ) &
                (
                  | ((
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    ) &
                      string)
                  | (
                      | (
                          | "always"
                          | "always-single-line"
                          | "never-single-line"
                          | "always-multi-line"
                          | "never-multi-line"
                          | {}
                        )
                      | CoreRule
                    )
                )
            ]
        ) &
          unknown[])
    );
  "block-opening-brace-space-after"?: NewlineSpaceRule2;
  "block-opening-brace-space-before"?: NewlineSpaceWithIgnoreRule1;
  [k: string]: unknown | undefined;
}
export interface Color {
  "color-hex-case"?: LowerUpperRule1;
  /**
   * Specify short or long notation for hex colors
   */
  "color-hex-length"?: (
    | null
    | ("short" | "long" | [])
    | [
        (("short" | "long" | {}) | CoreRule) &
          (((("short" | "long" | {}) | CoreRule) & string) | (("short" | "long" | {}) | CoreRule)),
        (("short" | "long" | {}) | CoreRule) &
          (((("short" | "long" | {}) | CoreRule) & string) | (("short" | "long" | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("short" | "long" | [])
            | [
                (("short" | "long" | {}) | CoreRule) &
                  (((("short" | "long" | {}) | CoreRule) & string) | (("short" | "long" | {}) | CoreRule)),
                (("short" | "long" | {}) | CoreRule) &
                  (((("short" | "long" | {}) | CoreRule) & string) | (("short" | "long" | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | ("short" | "long" | [])
          | [
              (("short" | "long" | {}) | CoreRule) &
                (((("short" | "long" | {}) | CoreRule) & string) | (("short" | "long" | {}) | CoreRule)),
              (("short" | "long" | {}) | CoreRule) &
                (((("short" | "long" | {}) | CoreRule) & string) | (("short" | "long" | {}) | CoreRule))
            ]
        ) &
          string)
      | ((
          | null
          | ("short" | "long" | [])
          | [
              (("short" | "long" | {}) | CoreRule) &
                (((("short" | "long" | {}) | CoreRule) & string) | (("short" | "long" | {}) | CoreRule)),
              (("short" | "long" | {}) | CoreRule) &
                (((("short" | "long" | {}) | CoreRule) & string) | (("short" | "long" | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  /**
   * Require (where possible) or disallow named colors
   */
  "color-named"?: (
    | null
    | ("always-where-possible" | "never" | [])
    | [
        (("always-where-possible" | "never" | {}) | CoreRule) &
          (
            | ((("always-where-possible" | "never" | {}) | CoreRule) & string)
            | (("always-where-possible" | "never" | {}) | CoreRule)
          ),
        (("always-where-possible" | "never" | {}) | CoreRule) &
          (
            | ((("always-where-possible" | "never" | {}) | CoreRule) & string)
            | (("always-where-possible" | "never" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always-where-possible" | "never" | [])
            | [
                (("always-where-possible" | "never" | {}) | CoreRule) &
                  (
                    | ((("always-where-possible" | "never" | {}) | CoreRule) & string)
                    | (("always-where-possible" | "never" | {}) | CoreRule)
                  ),
                (("always-where-possible" | "never" | {}) | CoreRule) &
                  (
                    | ((("always-where-possible" | "never" | {}) | CoreRule) & string)
                    | (("always-where-possible" | "never" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("always-where-possible" | "never" | [])
          | [
              (("always-where-possible" | "never" | {}) | CoreRule) &
                (
                  | ((("always-where-possible" | "never" | {}) | CoreRule) & string)
                  | (("always-where-possible" | "never" | {}) | CoreRule)
                ),
              (("always-where-possible" | "never" | {}) | CoreRule) &
                (
                  | ((("always-where-possible" | "never" | {}) | CoreRule) & string)
                  | (("always-where-possible" | "never" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always-where-possible" | "never" | [])
          | [
              (("always-where-possible" | "never" | {}) | CoreRule) &
                (
                  | ((("always-where-possible" | "never" | {}) | CoreRule) & string)
                  | (("always-where-possible" | "never" | {}) | CoreRule)
                ),
              (("always-where-possible" | "never" | {}) | CoreRule) &
                (
                  | ((("always-where-possible" | "never" | {}) | CoreRule) & string)
                  | (("always-where-possible" | "never" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  "color-no-hex"?: BooleanRule3;
  "color-no-invalid-hex"?: BooleanRule4;
  [k: string]: unknown | undefined;
}
export interface Comment {
  /**
   * Require or disallow an empty line before comments
   */
  "comment-empty-line-before"?: (
    | null
    | ("always" | "never" | [])
    | [
        (("always" | "never" | {}) | CoreRule) &
          (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
        (("always" | "never" | {}) | CoreRule) &
          (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "never" | [])
            | [
                (("always" | "never" | {}) | CoreRule) &
                  (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
                (("always" | "never" | {}) | CoreRule) &
                  (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "comment-no-empty"?: BooleanRule5;
  "comment-whitespace-inside"?: AlwaysNeverRule;
  "comment-word-blacklist"?: ArrayStringRule2;
  [k: string]: unknown | undefined;
}
export interface CustomMedia {
  "custom-media-pattern"?: StringRule;
  [k: string]: unknown | undefined;
}
export interface CustomProperty {
  /**
   * Require or disallow an empty line before custom properties
   */
  "custom-property-empty-line-before"?: (
    | null
    | ("always" | "never" | [])
    | [
        (("always" | "never" | {}) | CoreRule) &
          (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
        (("always" | "never" | {}) | CoreRule) &
          (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "never" | [])
            | [
                (("always" | "never" | {}) | CoreRule) &
                  (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
                (("always" | "never" | {}) | CoreRule) &
                  (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "custom-property-no-outside-root"?: BooleanRule6;
  "custom-property-pattern"?: StringRule1;
  [k: string]: unknown | undefined;
}
export interface Declaration {
  "declaration-bang-space-after"?: AlwaysNeverRule1;
  "declaration-bang-space-before"?: AlwaysNeverRule2;
  "declaration-colon-newline-after"?: AlwaysMultiLineRule1;
  /**
   * Require a single space or disallow whitespace after the colon of declarations
   */
  "declaration-colon-space-after"?: (
    | null
    | ("always" | "never" | "always-single-line" | [])
    | [
        (("always" | "never" | "always-single-line" | {}) | CoreRule) &
          (
            | ((("always" | "never" | "always-single-line" | {}) | CoreRule) & string)
            | (("always" | "never" | "always-single-line" | {}) | CoreRule)
          ),
        (("always" | "never" | "always-single-line" | {}) | CoreRule) &
          (
            | ((("always" | "never" | "always-single-line" | {}) | CoreRule) & string)
            | (("always" | "never" | "always-single-line" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "never" | "always-single-line" | [])
            | [
                (("always" | "never" | "always-single-line" | {}) | CoreRule) &
                  (
                    | ((("always" | "never" | "always-single-line" | {}) | CoreRule) & string)
                    | (("always" | "never" | "always-single-line" | {}) | CoreRule)
                  ),
                (("always" | "never" | "always-single-line" | {}) | CoreRule) &
                  (
                    | ((("always" | "never" | "always-single-line" | {}) | CoreRule) & string)
                    | (("always" | "never" | "always-single-line" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("always" | "never" | "always-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "never" | "always-single-line" | [])
          | [
              (("always" | "never" | "always-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-single-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-single-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-single-line" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  "declaration-colon-space-before"?: AlwaysNeverRule3;
  /**
   * Require or disallow an empty line before declarations
   */
  "declaration-empty-line-before"?: (
    | null
    | ("always" | "never" | [])
    | [
        (("always" | "never" | {}) | CoreRule) &
          (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
        (("always" | "never" | {}) | CoreRule) &
          (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "never" | [])
            | [
                (("always" | "never" | {}) | CoreRule) &
                  (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
                (("always" | "never" | {}) | CoreRule) &
                  (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "never" | [])
          | [
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule)),
              (("always" | "never" | {}) | CoreRule) &
                (((("always" | "never" | {}) | CoreRule) & string) | (("always" | "never" | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "declaration-no-important"?: BooleanRule7;
  "declaration-property-unit-blacklist"?: ObjectRule;
  "declaration-property-unit-whitelist"?: ObjectRule1;
  "declaration-property-value-blacklist"?: ObjectRule2;
  "declaration-property-value-whitelist"?: ObjectRule3;
  [k: string]: unknown | undefined;
}
export interface DeclarationBlock {
  /**
   * Disallow duplicate properties within declaration blocks
   */
  "declaration-block-no-duplicate-properties"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "declaration-block-no-ignored-properties"?: BooleanRule8;
  /**
   * Disallow longhand properties that can be combined into one shorthand property
   */
  "declaration-block-no-redundant-longhand-properties"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "declaration-block-no-shorthand-property-overrides"?: BooleanRule9;
  /**
   * Specify the order of properties within declaration blocks
   */
  "declaration-block-properties-order"?: (
    | null
    | ("alphabetical" | [])
    | [
        (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) &
          (
            | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & string)
            | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & unknown[])
            | (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule)
          ),
        ...((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) &
          (
            | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & string)
            | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & unknown[])
            | (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule)
          ))[]
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("alphabetical" | [])
            | [
                (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) &
                  (
                    | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & string)
                    | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & unknown[])
                    | (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule)
                  ),
                ...((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) &
                  (
                    | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & string)
                    | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & unknown[])
                    | (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule)
                  ))[]
              ]
          ))
      | ((
          | null
          | ("alphabetical" | [])
          | [
              (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) &
                (
                  | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & string)
                  | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule)
                ),
              ...((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) &
                (
                  | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & string)
                  | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ) &
          string)
      | ((
          | null
          | ("alphabetical" | [])
          | [
              (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) &
                (
                  | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & string)
                  | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule)
                ),
              ...((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) &
                (
                  | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & string)
                  | ((("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule) & unknown[])
                  | (("alphabetical" | [] | {}) | string | SimpleArrayStringRule | CoreRule)
                ))[]
            ]
        ) &
          unknown[])
    );
  "declaration-block-semicolon-newline-after"?: NewlineRule2;
  "declaration-block-semicolon-newline-before"?: NewlineRule3;
  "declaration-block-semicolon-space-after"?: SpaceRule;
  "declaration-block-semicolon-space-before"?: SpaceRule1;
  "declaration-block-single-line-max-declarations"?: IntegerRule;
  "declaration-block-trailing-semicolon"?: AlwaysNeverRule4;
  [k: string]: unknown | undefined;
}
export interface Font {
  /**
   * Specify whether or not quotation marks should be used around font family names
   */
  "font-family-name-quotes"?: (
    | null
    | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | [])
    | [
        (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
          (
            | ((("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
                string)
            | (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule)
          ),
        (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
          (
            | ((("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
                string)
            | (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | [])
            | [
                (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
                  (
                    | ((
                        | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {})
                        | CoreRule
                      ) &
                        string)
                    | (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule)
                  ),
                (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
                  (
                    | ((
                        | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {})
                        | CoreRule
                      ) &
                        string)
                    | (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | [])
          | [
              (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
                (
                  | ((
                      | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {})
                      | CoreRule
                    ) &
                      string)
                  | (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule)
                ),
              (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
                (
                  | ((
                      | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {})
                      | CoreRule
                    ) &
                      string)
                  | (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | [])
          | [
              (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
                (
                  | ((
                      | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {})
                      | CoreRule
                    ) &
                      string)
                  | (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule)
                ),
              (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule) &
                (
                  | ((
                      | ("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {})
                      | CoreRule
                    ) &
                      string)
                  | (("always-where-required" | "always-where-recommended" | "always-unless-keyword" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  /**
   * Require numeric or named (where possible) `font-weight` values. Also, when named values are expected, require only valid names
   */
  "font-weight-notation"?: (
    | null
    | ("numeric" | "named-where-possible" | [])
    | [
        (("numeric" | "named-where-possible" | {}) | CoreRule) &
          (
            | ((("numeric" | "named-where-possible" | {}) | CoreRule) & string)
            | (("numeric" | "named-where-possible" | {}) | CoreRule)
          ),
        (("numeric" | "named-where-possible" | {}) | CoreRule) &
          (
            | ((("numeric" | "named-where-possible" | {}) | CoreRule) & string)
            | (("numeric" | "named-where-possible" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("numeric" | "named-where-possible" | [])
            | [
                (("numeric" | "named-where-possible" | {}) | CoreRule) &
                  (
                    | ((("numeric" | "named-where-possible" | {}) | CoreRule) & string)
                    | (("numeric" | "named-where-possible" | {}) | CoreRule)
                  ),
                (("numeric" | "named-where-possible" | {}) | CoreRule) &
                  (
                    | ((("numeric" | "named-where-possible" | {}) | CoreRule) & string)
                    | (("numeric" | "named-where-possible" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("numeric" | "named-where-possible" | [])
          | [
              (("numeric" | "named-where-possible" | {}) | CoreRule) &
                (
                  | ((("numeric" | "named-where-possible" | {}) | CoreRule) & string)
                  | (("numeric" | "named-where-possible" | {}) | CoreRule)
                ),
              (("numeric" | "named-where-possible" | {}) | CoreRule) &
                (
                  | ((("numeric" | "named-where-possible" | {}) | CoreRule) & string)
                  | (("numeric" | "named-where-possible" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("numeric" | "named-where-possible" | [])
          | [
              (("numeric" | "named-where-possible" | {}) | CoreRule) &
                (
                  | ((("numeric" | "named-where-possible" | {}) | CoreRule) & string)
                  | (("numeric" | "named-where-possible" | {}) | CoreRule)
                ),
              (("numeric" | "named-where-possible" | {}) | CoreRule) &
                (
                  | ((("numeric" | "named-where-possible" | {}) | CoreRule) & string)
                  | (("numeric" | "named-where-possible" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  [k: string]: unknown | undefined;
}
export interface Function {
  "function-blacklist"?: ArrayStringRule3;
  "function-calc-no-unspaced-operator"?: BooleanRule10;
  "function-comma-newline-after"?: NewlineRule4;
  "function-comma-newline-before"?: NewlineRule5;
  "function-comma-space-after"?: SpaceRule2;
  "function-comma-space-before"?: SpaceRule3;
  "function-linear-gradient-no-nonstandard-direction"?: BooleanRule11;
  "function-max-empty-lines"?: IntegerRule1;
  /**
   * Specify lowercase or uppercase for function names
   */
  "function-name-case"?: (
    | null
    | ("lower" | "upper" | [])
    | [
        (("lower" | "upper" | {}) | CoreRule) &
          (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
        (("lower" | "upper" | {}) | CoreRule) &
          (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("lower" | "upper" | [])
            | [
                (("lower" | "upper" | {}) | CoreRule) &
                  (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
                (("lower" | "upper" | {}) | CoreRule) &
                  (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ) &
          string)
      | ((
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "function-parentheses-newline-inside"?: NewlineRule6;
  "function-parentheses-space-inside"?: SpaceRule4;
  "function-url-data-uris"?: AlwaysNeverRule5;
  "function-url-no-scheme-relative"?: BooleanRule12;
  "function-url-quotes"?: AlwaysNeverRule6;
  "function-url-scheme-whitelist"?: ArrayStringRule4;
  "function-whitelist"?: ArrayStringRule5;
  "function-whitespace-after"?: AlwaysNeverRule7;
  [k: string]: unknown | undefined;
}
export interface GeneralSheet {
  /**
   * Specify indentation
   */
  indentation?: (
    | (null | number)
    | ("tab" | [])
    | [number, ...number[]]
    | [
        (number | ("tab" | {}) | CoreRule) &
          (
            | ((number | ("tab" | {}) | CoreRule) & number)
            | ((number | ("tab" | {}) | CoreRule) & string)
            | (number | ("tab" | {}) | CoreRule)
          ),
        (number | ("tab" | {}) | CoreRule) &
          (
            | ((number | ("tab" | {}) | CoreRule) & number)
            | ((number | ("tab" | {}) | CoreRule) & string)
            | (number | ("tab" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | (null | number)
            | ("tab" | [])
            | [number, ...number[]]
            | [
                (number | ("tab" | {}) | CoreRule) &
                  (
                    | ((number | ("tab" | {}) | CoreRule) & number)
                    | ((number | ("tab" | {}) | CoreRule) & string)
                    | (number | ("tab" | {}) | CoreRule)
                  ),
                (number | ("tab" | {}) | CoreRule) &
                  (
                    | ((number | ("tab" | {}) | CoreRule) & number)
                    | ((number | ("tab" | {}) | CoreRule) & string)
                    | (number | ("tab" | {}) | CoreRule)
                  )
              ]
          ))
      | (number &
          (
            | (null | number)
            | ("tab" | [])
            | [number, ...number[]]
            | [
                (number | ("tab" | {}) | CoreRule) &
                  (
                    | ((number | ("tab" | {}) | CoreRule) & number)
                    | ((number | ("tab" | {}) | CoreRule) & string)
                    | (number | ("tab" | {}) | CoreRule)
                  ),
                (number | ("tab" | {}) | CoreRule) &
                  (
                    | ((number | ("tab" | {}) | CoreRule) & number)
                    | ((number | ("tab" | {}) | CoreRule) & string)
                    | (number | ("tab" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | (null | number)
          | ("tab" | [])
          | [number, ...number[]]
          | [
              (number | ("tab" | {}) | CoreRule) &
                (
                  | ((number | ("tab" | {}) | CoreRule) & number)
                  | ((number | ("tab" | {}) | CoreRule) & string)
                  | (number | ("tab" | {}) | CoreRule)
                ),
              (number | ("tab" | {}) | CoreRule) &
                (
                  | ((number | ("tab" | {}) | CoreRule) & number)
                  | ((number | ("tab" | {}) | CoreRule) & string)
                  | (number | ("tab" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | (null | number)
          | ("tab" | [])
          | [number, ...number[]]
          | [
              (number | ("tab" | {}) | CoreRule) &
                (
                  | ((number | ("tab" | {}) | CoreRule) & number)
                  | ((number | ("tab" | {}) | CoreRule) & string)
                  | (number | ("tab" | {}) | CoreRule)
                ),
              (number | ("tab" | {}) | CoreRule) &
                (
                  | ((number | ("tab" | {}) | CoreRule) & number)
                  | ((number | ("tab" | {}) | CoreRule) & string)
                  | (number | ("tab" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  "max-empty-lines"?: IntegerRule2;
  /**
   * Limit the length of a line
   */
  "max-line-length"?: (
    | (null | number)
    | [
        (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule)),
        (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | (null | number)
            | [
                (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule)),
                (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule))
              ]
          ))
      | (number &
          (
            | (null | number)
            | [
                (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule)),
                (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule))
              ]
          ))
      | ((
          | (null | number)
          | [
              (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule)),
              (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule))
            ]
        ) &
          unknown[])
    );
  /**
   * Limit the allowed nesting depth
   */
  "max-nesting-depth"?: (
    | (null | number)
    | [
        (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule)),
        (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | (null | number)
            | [
                (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule)),
                (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule))
              ]
          ))
      | (number &
          (
            | (null | number)
            | [
                (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule)),
                (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule))
              ]
          ))
      | ((
          | (null | number)
          | [
              (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule)),
              (number | CoreRule) & (((number | CoreRule) & number) | (number | CoreRule))
            ]
        ) &
          unknown[])
    );
  /**
   * Disallow browser hacks that are irrelevant to the browsers you are targeting
   */
  "no-browser-hacks"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "no-descending-specificity"?: BooleanRule13;
  "no-duplicate-selectors"?: BooleanRule14;
  "no-empty-source"?: BooleanRule15;
  /**
   * Disallow end-of-line whitespace
   */
  "no-eol-whitespace"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "no-extra-semicolons"?: BooleanRule16;
  /**
   * Disallow colors that are suspiciously close to being identical
   */
  "no-indistinguishable-colors"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "no-invalid-double-slash-comments"?: BooleanRule17;
  "no-missing-end-of-source-newline"?: BooleanRule18;
  "no-unknown-animations"?: BooleanRule19;
  "unicode-bom"?: AlwaysNeverRule8;
  /**
   * Disallow features that are unsupported by the browsers that you are targeting
   */
  "no-unsupported-browser-features"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  [k: string]: unknown | undefined;
}
export interface KeyframeDeclaration {
  "keyframe-declaration-no-important"?: BooleanRule20;
  [k: string]: unknown | undefined;
}
export interface Length {
  "length-zero-no-unit"?: BooleanRule21;
  [k: string]: unknown | undefined;
}
export interface MediaFeature {
  "media-feature-colon-space-after"?: AlwaysNeverRule9;
  "media-feature-colon-space-before"?: AlwaysNeverRule10;
  "media-feature-name-case"?: LowerUpperRule2;
  /**
   * Disallow unknown media feature names
   */
  "media-feature-name-no-unknown"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "media-feature-name-no-vendor-prefix"?: BooleanRule22;
  "media-feature-no-missing-punctuation"?: BooleanRule23;
  "media-feature-parentheses-space-inside"?: AlwaysNeverRule11;
  "media-feature-range-operator-space-after"?: AlwaysNeverRule12;
  "media-feature-range-operator-space-before"?: AlwaysNeverRule13;
  [k: string]: unknown | undefined;
}
export interface MediaQueryList {
  "media-query-list-comma-newline-after"?: NewlineRule7;
  "media-query-list-comma-newline-before"?: NewlineRule8;
  "media-query-list-comma-space-after"?: SpaceRule5;
  "media-query-list-comma-space-before"?: SpaceRule6;
  [k: string]: unknown | undefined;
}
export interface Number {
  "number-leading-zero"?: AlwaysNeverRule14;
  "number-max-precision"?: IntegerRule3;
  "number-no-trailing-zeros"?: BooleanRule24;
  [k: string]: unknown | undefined;
}
export interface Property {
  "property-blacklist"?: ArrayStringRule6;
  "property-case"?: LowerUpperRule3;
  /**
   * Disallow unknown properties
   */
  "property-no-unknown"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "property-no-vendor-prefix"?: BooleanRule25;
  "property-whitelist"?: ArrayStringRule7;
  [k: string]: unknown | undefined;
}
export interface RootRule {
  "root-no-standard-properties"?: BooleanRule26;
  [k: string]: unknown | undefined;
}
export interface Rule {
  /**
   * Require or disallow an empty line before nested rules
   */
  "rule-nested-empty-line-before"?: (
    | null
    | ("always" | "never" | "always-multi-line" | "never-multi-line" | [])
    | [
        (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
          (
            | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
            | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
          ),
        (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
          (
            | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
            | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "never" | "always-multi-line" | "never-multi-line" | [])
            | [
                (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                  (
                    | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                    | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                  ),
                (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                  (
                    | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                    | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("always" | "never" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "never" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  /**
   * Require or disallow an empty line before non-nested rules
   */
  "rule-non-nested-empty-line-before"?: (
    | null
    | ("always" | "never" | "always-multi-line" | "never-multi-line" | [])
    | [
        (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
          (
            | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
            | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
          ),
        (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
          (
            | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
            | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always" | "never" | "always-multi-line" | "never-multi-line" | [])
            | [
                (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                  (
                    | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                    | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                  ),
                (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                  (
                    | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                    | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("always" | "never" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always" | "never" | "always-multi-line" | "never-multi-line" | [])
          | [
              (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                ),
              (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) &
                (
                  | ((("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule) & string)
                  | (("always" | "never" | "always-multi-line" | "never-multi-line" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  [k: string]: unknown | undefined;
}
export interface Selector {
  "selector-attribute-brackets-space-inside"?: AlwaysNeverRule15;
  "selector-attribute-operator-blacklist"?: ArrayStringRule8;
  "selector-attribute-operator-space-after"?: AlwaysNeverRule16;
  "selector-attribute-operator-space-before"?: AlwaysNeverRule17;
  "selector-attribute-operator-whitelist"?: ArrayStringRule9;
  "selector-attribute-quotes"?: AlwaysNeverRule18;
  /**
   * Specify a pattern for class selectors
   */
  "selector-class-pattern"?: (
    | (null | string)
    | [
        (string | CoreRule) & (((string | CoreRule) & string) | (string | CoreRule)),
        (string | CoreRule) & (((string | CoreRule) & string) | (string | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | (null | string)
            | [
                (string | CoreRule) & (((string | CoreRule) & string) | (string | CoreRule)),
                (string | CoreRule) & (((string | CoreRule) & string) | (string | CoreRule))
              ]
          ))
      | ((
          | (null | string)
          | [
              (string | CoreRule) & (((string | CoreRule) & string) | (string | CoreRule)),
              (string | CoreRule) & (((string | CoreRule) & string) | (string | CoreRule))
            ]
        ) &
          string)
      | ((
          | (null | string)
          | [
              (string | CoreRule) & (((string | CoreRule) & string) | (string | CoreRule)),
              (string | CoreRule) & (((string | CoreRule) & string) | (string | CoreRule))
            ]
        ) &
          unknown[])
    );
  "selector-combinator-space-after"?: AlwaysNeverRule19;
  "selector-combinator-space-before"?: AlwaysNeverRule20;
  "selector-descendant-combinator-no-non-space"?: BooleanRule27;
  "selector-id-pattern"?: StringRule2;
  "selector-max-compound-selectors"?: IntegerRule4;
  "selector-max-specificity"?: StringRule3;
  "selector-nested-pattern"?: StringRule4;
  "selector-no-attribute"?: BooleanRule28;
  "selector-no-combinator"?: BooleanRule29;
  "selector-no-id"?: BooleanRule30;
  /**
   * Disallow qualifying a selector by type
   */
  "selector-no-qualifying-type"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  /**
   * Disallow type selectors
   */
  "selector-no-type"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "selector-no-universal"?: BooleanRule31;
  "selector-no-vendor-prefix"?: BooleanRule32;
  "selector-pseudo-class-case"?: LowerUpperRule4;
  /**
   * Disallow unknown pseudo-class selectors
   */
  "selector-pseudo-class-no-unknown"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "selector-pseudo-class-parentheses-space-inside"?: AlwaysNeverRule21;
  "selector-pseudo-class-whitelist"?: ArrayStringRule10;
  "selector-pseudo-element-case"?: LowerUpperRule5;
  "selector-pseudo-element-colon-notation"?: SingleDoubleRule;
  /**
   * Disallow unknown pseudo-element selectors
   */
  "selector-pseudo-element-no-unknown"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "selector-root-no-composition"?: BooleanRule33;
  "selector-type-case"?: LowerUpperRule6;
  /**
   * Disallow unknown type selectors
   */
  "selector-type-no-unknown"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "selector-max-empty-lines"?: IntegerRule5;
  [k: string]: unknown | undefined;
}
export interface SelectorList {
  "selector-list-comma-newline-after"?: NewlineRule9;
  "selector-list-comma-newline-before"?: NewlineRule10;
  "selector-list-comma-space-after"?: SpaceRule7;
  "selector-list-comma-space-before"?: SpaceRule8;
  [k: string]: unknown | undefined;
}
export interface ShorthandProperty {
  "shorthand-property-no-redundant-values"?: BooleanRule34;
  [k: string]: unknown | undefined;
}
export interface String {
  "string-no-newline"?: BooleanRule35;
  "string-quotes"?: SingleDoubleRule1;
  [k: string]: unknown | undefined;
}
export interface StylelintDisableComment {
  /**
   * Require a reason comment before or after `stylelint-disable` comments
   */
  "stylelint-disable-reason"?: (
    | null
    | ("always-before" | "always-after" | [])
    | [
        (("always-before" | "always-after" | {}) | CoreRule) &
          (
            | ((("always-before" | "always-after" | {}) | CoreRule) & string)
            | (("always-before" | "always-after" | {}) | CoreRule)
          ),
        (("always-before" | "always-after" | {}) | CoreRule) &
          (
            | ((("always-before" | "always-after" | {}) | CoreRule) & string)
            | (("always-before" | "always-after" | {}) | CoreRule)
          )
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("always-before" | "always-after" | [])
            | [
                (("always-before" | "always-after" | {}) | CoreRule) &
                  (
                    | ((("always-before" | "always-after" | {}) | CoreRule) & string)
                    | (("always-before" | "always-after" | {}) | CoreRule)
                  ),
                (("always-before" | "always-after" | {}) | CoreRule) &
                  (
                    | ((("always-before" | "always-after" | {}) | CoreRule) & string)
                    | (("always-before" | "always-after" | {}) | CoreRule)
                  )
              ]
          ))
      | ((
          | null
          | ("always-before" | "always-after" | [])
          | [
              (("always-before" | "always-after" | {}) | CoreRule) &
                (
                  | ((("always-before" | "always-after" | {}) | CoreRule) & string)
                  | (("always-before" | "always-after" | {}) | CoreRule)
                ),
              (("always-before" | "always-after" | {}) | CoreRule) &
                (
                  | ((("always-before" | "always-after" | {}) | CoreRule) & string)
                  | (("always-before" | "always-after" | {}) | CoreRule)
                )
            ]
        ) &
          string)
      | ((
          | null
          | ("always-before" | "always-after" | [])
          | [
              (("always-before" | "always-after" | {}) | CoreRule) &
                (
                  | ((("always-before" | "always-after" | {}) | CoreRule) & string)
                  | (("always-before" | "always-after" | {}) | CoreRule)
                ),
              (("always-before" | "always-after" | {}) | CoreRule) &
                (
                  | ((("always-before" | "always-after" | {}) | CoreRule) & string)
                  | (("always-before" | "always-after" | {}) | CoreRule)
                )
            ]
        ) &
          unknown[])
    );
  [k: string]: unknown | undefined;
}
export interface Time {
  "time-no-imperceptible"?: BooleanRule36;
  [k: string]: unknown | undefined;
}
export interface Unit {
  "unit-blacklist"?: UnitRule;
  "unit-case"?: LowerUpperRule7;
  /**
   * Disallow unknown units
   */
  "unit-no-unknown"?: (
    | null
    | (true | [])
    | [
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
        ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | (boolean &
          (
            | null
            | (true | [])
            | [
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
                ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | (true | [])
          | [
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule)),
              ((true | {}) | CoreRule) & ((((true | {}) | CoreRule) & boolean) | ((true | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "unit-whitelist"?: UnitRule1;
  [k: string]: unknown | undefined;
}
export interface Value {
  /**
   * Specify lowercase or uppercase for keywords values
   */
  "value-keyword-case"?: (
    | null
    | ("lower" | "upper" | [])
    | [
        (("lower" | "upper" | {}) | CoreRule) &
          (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
        (("lower" | "upper" | {}) | CoreRule) &
          (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
      ]
  ) &
    (
      | (null &
          (
            | null
            | ("lower" | "upper" | [])
            | [
                (("lower" | "upper" | {}) | CoreRule) &
                  (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
                (("lower" | "upper" | {}) | CoreRule) &
                  (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
              ]
          ))
      | ((
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ) &
          string)
      | ((
          | null
          | ("lower" | "upper" | [])
          | [
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule)),
              (("lower" | "upper" | {}) | CoreRule) &
                (((("lower" | "upper" | {}) | CoreRule) & string) | (("lower" | "upper" | {}) | CoreRule))
            ]
        ) &
          unknown[])
    );
  "value-no-vendor-prefix"?: BooleanRule37;
  [k: string]: unknown | undefined;
}
export interface ValueList {
  "value-list-comma-newline-after"?: NewlineRule11;
  "value-list-comma-newline-before"?: NewlineRule12;
  "value-list-comma-space-after"?: SpaceRule9;
  "value-list-comma-space-before"?: SpaceRule10;
  "value-list-max-empty-lines"?: IntegerRule6;
  [k: string]: unknown | undefined;
}
/**
 * Configuration Schema for the JavaScript test runner AVA
 */
export interface AVAConfigSchema {
  files?: ArrayOfPaths;
  ignoredByWatcher?: ArrayOfPaths1;
  match?: ArrayOfPaths2;
  /**
   * Defaults to `true` to cache compiled files under `node_modules/.cache/ava.` If `false`, files are cached in a temporary directory instead
   */
  cache?: boolean;
  /**
   * Max number of test files running at the same time (default: CPU cores)
   */
  concurrency?: number;
  /**
   * Use worker threads to run tests (enabled by default). If `false`, tests will run in child processes
   */
  workerThreads?: boolean;
  /**
   * Stop running further tests once a test fails
   */
  failFast?: boolean;
  /**
   * If `false`, does not fail a test if it doesn't run assertions
   */
  failWithoutAssertions?: boolean;
  environmentVariables?: EnvironmentVariables;
  /**
   * If `true`, enables the TAP reporter
   */
  tap?: boolean;
  /**
   * If `true`, enables verbose output (though currently non-verbose output is not supported)
   */
  verbose?: boolean;
  /**
   * Specifies a fixed location for storing snapshot files. Use this if your snapshots are ending up in the wrong location
   */
  snapshotDir?: string;
  /**
   * Extensions of test files. Setting this overrides the default `["cjs", "mjs", "js"]` value, so make sure to include those extensions in the list. Experimentally you can configure how files are loaded
   */
  extensions?: ArrayOfStrings | Extensions;
  require?: ArrayOfPaths3;
  /**
   * Timeouts in AVA behave differently than in other test frameworks. AVA resets a timer after each test, forcing tests to quit if no new test results were received within the specified timeout. This can be used to handle stalled tests. See our timeout documentation for more options
   */
  timeout?: number | string;
  nodeArguments?: ArrayOfStrings1;
  /**
   * If `false`, disable parallel builds (default: `true`)
   */
  utilizeParallelBuilds?: boolean;
  typescript?: Configuration;
}
/**
 * Specifies environment variables to be made available to the tests. The environment variables defined here override the ones from `process.env`
 */
export interface EnvironmentVariables {
  [k: string]: string | undefined;
}
export interface Extensions {
  [k: string]: ("commonjs" | "module") | undefined;
}
/**
 * Configures @ava/typescript for projects that precompile TypeScript. Alternatively, you can use `ts-node` to do live testing without transpiling, in which case you shouldn't use the `typescript` property
 */
export interface Configuration {
  extensions?: ArrayOfPaths4;
  rewritePaths?: Paths;
  /**
   * If `false`, AVA will assume you have already compiled your project. If set to `'tsc'`, AVA will run the TypeScript compiler before running your tests. This can be inefficient when using AVA in watch mode
   */
  compile?: false | "tsc";
  [k: string]: unknown | undefined;
}
/**
 * AVA searches your entire project for `*.js`, `*.cjs`, `*.mjs` and `*.ts` files (or other extensions you've configured). It will ignore such files found in the `rewritePaths` targets (e.g. `build/`). If you use more specific paths, for instance `build/main/`, you may need to change AVA's `files` configuration to ignore other directories. Paths are relative to your project directory
 */
export interface Paths {
  /**
   * This interface was referenced by `Paths`'s JSON-Schema definition
   * via the `patternProperty` "/$".
   */
  [k: string]: string;
}
export interface SemanticReleaseSchema {
  /**
   * List of modules or file paths containing a shareable configuration. If multiple shareable configurations are set, they will be imported in the order defined with each configuration option taking precedence over the options defined in a previous shareable configuration
   */
  extends?: string | string[];
  /**
   * The branches on which releases should happen.
   */
  branches?: string | BranchObject | (string | BranchObject)[];
  /**
   * The git repository URL
   */
  repositoryUrl?: string;
  /**
   * The Git tag format used by semantic-release to identify releases. The tag name is generated with Lodash template and will be compiled with the version variable.
   */
  tagFormat?: string;
  /**
   * Define the list of plugins to use. Plugins will run in series, in the order defined
   */
  plugins?: (string | unknown[])[];
  /**
   * The objective of the dry-run mode is to get a preview of the pending release. Dry-run mode skips the following steps: prepare, publish, success and fail. In addition to this it prints the next version and release notes to the console
   */
  dryRun?: boolean;
  /**
   * Set to false to skip Continuous Integration environment verifications. This allows for making releases from a local machine
   */
  ci?: boolean;
  [k: string]: unknown | undefined;
}
export interface BranchObject {
  name: string;
  channel?: string;
  range?: string;
  prerelease?: boolean | string;
}
export interface HttpsJsonSchemastoreOrgJscpdJson {
  /**
   * minimum size of code block in lines to check for duplication
   */
  minLines?: number;
  /**
   * maximum size of source file in lines to check for duplication
   */
  maxLines?: number;
  /**
   * maximum size of source file in bytes to check for duplication (e.g.,: 1kb, 1mb, 120kb)
   */
  maxSize?: string | number;
  /**
   * minimum size of code block in tokens to check for duplication
   */
  minTokens?: number;
  /**
   * maximum allowed duplicate lines expressed as a percentage; exit with error and exit code 1 when threshold exceeded
   */
  threshold?: number;
  /**
   * custom mapping from formats to file extensions (default: https://github.com/kucherenko/jscpd/blob/master/packages/tokenizer/src/formats.ts); see https://github.com/kucherenko/jscpd/blob/master/supported_formats.md
   */
  formatsExts?: {
    [k: string]: string[] | undefined;
  };
  /**
   * path to directory for non-console reports
   */
  output?: string;
  /**
   * paths that should be included in duplicate detection (default: [process.cwd()])
   */
  path?: string[];
  /**
   * glob pattern for files that should be included in duplicate detection (e.g., ** /*.txt); only used to filter directories configured via path option
   */
  pattern?: string;
  /**
   * ignore code blocks matching these regular expressions
   */
  ignorePattern?: string[];
  /**
   * mode of detection quality; see https://github.com/kucherenko/jscpd/blob/master/packages/jscpd/README.md#mode
   */
  mode?: "mild" | "strict" | "weak";
  /**
   * glob pattern for files that should be excluded from duplicate detection
   */
  ignore?: string[];
  /**
   * list of formats for which to detect duplication (default: all); see https://github.com/kucherenko/jscpd/blob/master/supported_formats.md
   */
  format?: (
    | "abap"
    | "actionscript"
    | "ada"
    | "apacheconf"
    | "apl"
    | "applescript"
    | "arduino"
    | "arff"
    | "asciidoc"
    | "asm6502"
    | "aspnet"
    | "autohotkey"
    | "autoit"
    | "bash"
    | "basic"
    | "batch"
    | "bison"
    | "brainfuck"
    | "bro"
    | "c"
    | "c-header"
    | "clike"
    | "clojure"
    | "coffeescript"
    | "comments"
    | "cpp"
    | "cpp-header"
    | "crystal"
    | "csharp"
    | "csp"
    | "css-extras"
    | "css"
    | "d"
    | "dart"
    | "diff"
    | "django"
    | "docker"
    | "eiffel"
    | "elixir"
    | "elm"
    | "erb"
    | "erlang"
    | "flow"
    | "fortran"
    | "fsharp"
    | "gedcom"
    | "gherkin"
    | "git"
    | "glsl"
    | "go"
    | "graphql"
    | "groovy"
    | "haml"
    | "handlebars"
    | "haskell"
    | "haxe"
    | "hpkp"
    | "hsts"
    | "http"
    | "ichigojam"
    | "icon"
    | "inform7"
    | "ini"
    | "io"
    | "j"
    | "java"
    | "javascript"
    | "jolie"
    | "json"
    | "jsx"
    | "julia"
    | "keymap"
    | "kotlin"
    | "latex"
    | "less"
    | "liquid"
    | "lisp"
    | "livescript"
    | "lolcode"
    | "lua"
    | "makefile"
    | "markdown"
    | "markup"
    | "matlab"
    | "mel"
    | "mizar"
    | "monkey"
    | "n4js"
    | "nasm"
    | "nginx"
    | "nim"
    | "nix"
    | "nsis"
    | "objectivec"
    | "ocaml"
    | "opencl"
    | "oz"
    | "parigp"
    | "pascal"
    | "perl"
    | "php"
    | "plsql"
    | "powershell"
    | "processing"
    | "prolog"
    | "properties"
    | "protobuf"
    | "pug"
    | "puppet"
    | "pure"
    | "python"
    | "q"
    | "qore"
    | "r"
    | "reason"
    | "renpy"
    | "rest"
    | "rip"
    | "roboconf"
    | "ruby"
    | "rust"
    | "sas"
    | "sass"
    | "scala"
    | "scheme"
    | "scss"
    | "smalltalk"
    | "smarty"
    | "soy"
    | "sql"
    | "stylus"
    | "swift"
    | "tap"
    | "tcl"
    | "textile"
    | "tsx"
    | "tt2"
    | "twig"
    | "typescript"
    | "vbnet"
    | "velocity"
    | "verilog"
    | "vhdl"
    | "vim"
    | "visual-basic"
    | "wasm"
    | "url"
    | "wiki"
    | "xeora"
    | "xojo"
    | "xquery"
    | "yaml"
  )[];
  /**
   * store used to collect information about code (default: in-memory store); install @jscpd/leveldb-store and use leveldb for big repositories
   */
  store?: "leveldb" | "redis";
  /**
   * a list of reporters to use to output information about duplication; see https://github.com/kucherenko/jscpd/blob/master/packages/jscpd/README.md#reporters
   */
  reporters?: (
    | "xml"
    | "json"
    | "csv"
    | "markdown"
    | "consoleFull"
    | "html"
    | "console"
    | "silent"
    | "threshold"
    | "xcode"
  )[];
  /**
   * get information about authors and dates of duplicated blocks from Git
   */
  blame?: boolean;
  /**
   * do not write duplicate detection progress and result to console
   */
  silent?: boolean;
  /**
   * show full information during duplicate detection
   */
  verbose?: boolean;
  /**
   * use absolute paths in reports
   */
  absolute?: boolean;
  /**
   * do not follow symlinks
   */
  noSymLinks?: boolean;
  /**
   * skip duplicates within folders; just detect cross-folder duplicates
   */
  skipLocal?: boolean;
  /**
   * ignore case of symbols in code (experimental)
   */
  ignoreCase?: boolean;
  /**
   * ignore all files from .gitignore file
   */
  gitignore?: boolean;
  reportersOptions?: {
    badge?: {
      /**
       * output path for duplication level badge (default: path.join(output, 'jscpd-badge.svg'))
       */
      path?: string;
      /**
       * badge subject text (URL-encoding needed for spaces or special characters)
       */
      label?: string;
      /**
       * badge label color (name or RGB code without #); see https://github.com/badgen/badgen/blob/master/src/color-presets.ts
       */
      labelColor?:
        | ("green" | "blue" | "red" | "yellow" | "orange" | "purple" | "pink" | "grey" | "gray" | "cyan" | "black")
        | string;
      /**
       * badge value text (URL-encoding needed for spaces or special characters, default: duplication %)
       */
      status?: string;
      /**
       * badge color (name or RGB code without #, default: green if beneath threshold, red if above threshold, grey if threshold not set); see https://github.com/badgen/badgen/blob/master/src/color-presets.ts
       */
      color?:
        | ("green" | "blue" | "red" | "yellow" | "orange" | "purple" | "pink" | "grey" | "gray" | "cyan" | "black")
        | string;
      /**
       * badge look: flat or classic
       */
      style?: "flat" | "classic";
      /**
       * URL for icon to display in front of badge subject text (e.g., data:image/svg+xml;base64,...)
       */
      icon?: string;
      /**
       * SVG width of icon to display in front of badge subject text; set this if icon is not square
       */
      iconWidth?: number;
      /**
       * size of badge relative to default of 1
       */
      scale?: number;
    };
  };
  /**
   * exit code to use when at least one duplicate code block is detected but threshold is not exceeded
   */
  exitCode?: number;
}
