import { TSESLint } from '@typescript-eslint/utils';
import { Linter } from 'eslint';
import { Config } from 'typescript-eslint';

type EslintFlagConfig = Config | Linter.FlatConfig | TSESLint.FlatConfig.Config | Linter.BaseConfig
type CustomConfigItem = Linter.RulesRecord | boolean

interface AirBeConfig {
    js?: CustomConfigItem;
    ts?: CustomConfigItem;
    vue?: CustomConfigItem;
    stylistic?: CustomConfigItem;
    importX?: CustomConfigItem;
    unusedImports?: CustomConfigItem;
    ignores?: string[];
    globals?: Linter.Globals;
}
/**
 * 定义ESLint配置。
 *
 * @param {AirBeConfig} config - 包含自定义配置项的对象。
 * @param {...EslintFlagConfig} customFlatConfigs - 额外的自定义配置数组。
 * @returns {EslintFlagConfig[]} 返回ESLint配置数组。
 */
declare const defineConfig: (config: AirBeConfig, ...customFlatConfigs: EslintFlagConfig[]) => EslintFlagConfig[];

export { defineConfig as default };
