{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "anyOf": [
    {
      "maxItems": 0,
      "minItems": 0,
      "type": "array"
    },
    {
      "items": {
        "$ref": "#/definitions/InputOptions"
      },
      "maxItems": 1,
      "minItems": 1,
      "type": "array"
    }
  ],
  "definitions": {
    "InputOptions": {
      "additionalProperties": false,
      "description": "The definition for the rule options.",
      "properties": {
        "declaration-ordering": {
          "anyOf": [
            {
              "items": {
                "const": "any",
                "type": "string"
              },
              "maxItems": 1,
              "minItems": 1,
              "type": "array"
            },
            {
              "items": [
                {
                  "const": "name",
                  "type": "string"
                },
                {
                  "enum": [
                    "case-insensitive",
                    "lowercase-last"
                  ],
                  "type": "string"
                }
              ],
              "maxItems": 2,
              "minItems": 2,
              "type": "array"
            },
            {
              "items": [
                {
                  "const": "source",
                  "type": "string"
                },
                {
                  "enum": [
                    "case-insensitive",
                    "lowercase-last"
                  ],
                  "type": "string"
                }
              ],
              "maxItems": 2,
              "minItems": 2,
              "type": "array"
            },
            {
              "items": [
                {
                  "const": "type",
                  "type": "string"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "ordering": {
                      "$ref": "#/definitions/TypeOrdering"
                    },
                    "secondaryOrdering": {
                      "anyOf": [
                        {
                          "items": {
                            "const": "any",
                            "type": "string"
                          },
                          "maxItems": 1,
                          "minItems": 1,
                          "type": "array"
                        },
                        {
                          "items": [
                            {
                              "const": "name",
                              "type": "string"
                            },
                            {
                              "enum": [
                                "case-insensitive",
                                "lowercase-last"
                              ],
                              "type": "string"
                            }
                          ],
                          "maxItems": 2,
                          "minItems": 2,
                          "type": "array"
                        },
                        {
                          "items": [
                            {
                              "const": "source",
                              "type": "string"
                            },
                            {
                              "enum": [
                                "case-insensitive",
                                "lowercase-last"
                              ],
                              "type": "string"
                            }
                          ],
                          "maxItems": 2,
                          "minItems": 2,
                          "type": "array"
                        }
                      ]
                    }
                  },
                  "type": "object"
                }
              ],
              "maxItems": 2,
              "minItems": 2,
              "type": "array"
            }
          ]
        },
        "group-ordering": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "match": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "order": {
                "type": "number"
              }
            },
            "required": [
              "name",
              "match",
              "order"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "specifier-ordering": {
          "$ref": "#/definitions/NameOrdering"
        },
        "symbols-first": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "NameOrdering": {
      "description": "An ordering of import names.",
      "enum": [
        "case-insensitive",
        "lowercase-last",
        "any"
      ],
      "type": "string"
    },
    "Type": {
      "description": "An import declaration type.\n\n### Examples\n\n* `\"side-effect\"` – `import \"foo\"`\n* `\"default\"` – `import foo from \"bar\"`\n* `\"namespace\"` – `import * as foo from \"bar\"`\n* `\"destructured\"` – `import { foo, bar } from \"baz\"`",
      "enum": [
        "side-effect",
        "default",
        "namespace",
        "destructured"
      ],
      "type": "string"
    },
    "TypeOrdering": {
      "description": "An ordering of import declaration types.",
      "items": {
        "$ref": "#/definitions/Type"
      },
      "maxItems": 4,
      "minItems": 4,
      "type": "array"
    }
  },
  "description": "The definition for the rule options array."
}