/**
							 | 
						|
								 * @fileoverview Defines a schema for configs.
							 | 
						|
								 * @author Sylvan Mably
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								const baseConfigProperties = {
							 | 
						|
								    $schema: { type: "string" },
							 | 
						|
								    env: { type: "object" },
							 | 
						|
								    extends: { $ref: "#/definitions/stringOrStrings" },
							 | 
						|
								    globals: { type: "object" },
							 | 
						|
								    overrides: {
							 | 
						|
								        type: "array",
							 | 
						|
								        items: { $ref: "#/definitions/overrideConfig" },
							 | 
						|
								        additionalItems: false
							 | 
						|
								    },
							 | 
						|
								    parser: { type: ["string", "null"] },
							 | 
						|
								    parserOptions: { type: "object" },
							 | 
						|
								    plugins: { type: "array" },
							 | 
						|
								    processor: { type: "string" },
							 | 
						|
								    rules: { type: "object" },
							 | 
						|
								    settings: { type: "object" },
							 | 
						|
								    noInlineConfig: { type: "boolean" },
							 | 
						|
								    reportUnusedDisableDirectives: { type: "boolean" },
							 | 
						|
								
							 | 
						|
								    ecmaFeatures: { type: "object" } // deprecated; logs a warning when used
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								const configSchema = {
							 | 
						|
								    definitions: {
							 | 
						|
								        stringOrStrings: {
							 | 
						|
								            oneOf: [
							 | 
						|
								                { type: "string" },
							 | 
						|
								                {
							 | 
						|
								                    type: "array",
							 | 
						|
								                    items: { type: "string" },
							 | 
						|
								                    additionalItems: false
							 | 
						|
								                }
							 | 
						|
								            ]
							 | 
						|
								        },
							 | 
						|
								        stringOrStringsRequired: {
							 | 
						|
								            oneOf: [
							 | 
						|
								                { type: "string" },
							 | 
						|
								                {
							 | 
						|
								                    type: "array",
							 | 
						|
								                    items: { type: "string" },
							 | 
						|
								                    additionalItems: false,
							 | 
						|
								                    minItems: 1
							 | 
						|
								                }
							 | 
						|
								            ]
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        // Config at top-level.
							 | 
						|
								        objectConfig: {
							 | 
						|
								            type: "object",
							 | 
						|
								            properties: {
							 | 
						|
								                root: { type: "boolean" },
							 | 
						|
								                ignorePatterns: { $ref: "#/definitions/stringOrStrings" },
							 | 
						|
								                ...baseConfigProperties
							 | 
						|
								            },
							 | 
						|
								            additionalProperties: false
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        // Config in `overrides`.
							 | 
						|
								        overrideConfig: {
							 | 
						|
								            type: "object",
							 | 
						|
								            properties: {
							 | 
						|
								                excludedFiles: { $ref: "#/definitions/stringOrStrings" },
							 | 
						|
								                files: { $ref: "#/definitions/stringOrStringsRequired" },
							 | 
						|
								                ...baseConfigProperties
							 | 
						|
								            },
							 | 
						|
								            required: ["files"],
							 | 
						|
								            additionalProperties: false
							 | 
						|
								        }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    $ref: "#/definitions/objectConfig"
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								export default configSchema;
							 |