constructor(
		configs,
		{ basePath, shouldIgnore = true, baseConfig = defaultConfig } = {},
	) {
		super(configs, {
			basePath,
			schema: flatConfigSchema,
		});

		/**
		 * The original length of the array before any modifications.
		 * @type {number}
		 */
		this[originalLength] = this.length;

		if (baseConfig[Symbol.iterator]) {
			this.unshift(...baseConfig);
		} else {
			this.unshift(baseConfig);
		}

		/**
		 * The length of the array after applying the base config.
		 * @type {number}
		 */
		this[baseLength] = this.length - this[originalLength];

		/**
		 * The base config used to build the config array.
		 * @type {Array<FlatConfig>}
		 */
		this[originalBaseConfig] = baseConfig;
		Object.defineProperty(this, originalBaseConfig, { writable: false });

		/**
		 * Determines if `ignores` fields should be honored.
		 * If true, then all `ignores` fields are honored.
		 * if false, then only `ignores` fields in the baseConfig are honored.
		 * @type {boolean}
		 */
		this.shouldIgnore = shouldIgnore;
		Object.defineProperty(this, "shouldIgnore", { writable: false });
	}
Creates a new instance.
@param {*[]} configs An array of configuration information.
@param {{basePath: string, shouldIgnore: boolean, baseConfig: FlatConfig}} options The options
     to use for the config array instance.