/** * Derive, from normalized configs, the ESLint-plugin metadata the Go core * needs (`{prefix, ruleNames}` for placeholder rules) and the worker-pool * descriptors (only for configs that mount plugins — others stay * zero-overhead). Shared by the CLI (cli.ts) and the VS Code extension * (Rslint.ts) so both produce the identical `eslintPlugins` shape Go parses. * ruleNames for a shared prefix are merged (set union) across configs: Go's * placeholder registry is a per-prefix superset, while the worker routes the * actual rules per-config. This is NOT a validation — a genuinely conflicting * redefinition (same prefix, different plugin object) is caught at worker init * (plugin-loader throws ESLint's `Cannot redefine plugin` error), not here. */ export declare function collectPluginMeta(configs: ReadonlyArray<{ configPath: string; configDirectory: string; entries: ReadonlyArray; }>): { eslintPluginEntries: Array<{ prefix: string; ruleNames: string[]; }>; pluginConfigs: PluginConfigDescriptor[]; }; /** * Load a JS/TS config file. * - .js/.mjs: native import() * - .ts/.mts: native import() when Node.js has TypeScript support (>= 22.6), * otherwise fall back to jiti */ export declare function loadConfigFile(configPath: string): Promise; /** * Validate and strip non-serializable fields from the config. */ export declare function normalizeConfig(config: unknown): Record[]; /** A worker-pool config descriptor: which config file to import and the * directory key per-file plugin-lint tasks route on. */ export declare interface PluginConfigDescriptor { configPath: string; configDirectory: string; } export { }