import { D as RuleOptionsSchema, S as RuleDefinition, T as RuleOptionsInput, b as RuleConfigEntry, i as AlintConfigItem, m as PluginDefinition, t as AlintConfig } from "./types-Cm5Z7Fll.mjs"; //#region src/dsl/define.d.ts type AnyRuleDefinition = RuleDefinition; type ConfigItemWithPluginRules = Omit & { plugins?: Plugins; rules?: RulesForPlugins, Rules>; }; type ConfigItemWithPlugins = Omit & { plugins?: Plugins; rules?: Record | undefined>; }; type RuleEntryForPlugins = Key extends `${infer Alias}/${infer RuleName}` ? Alias extends keyof Plugins & string ? Plugins[Alias] extends PluginDefinition ? RuleName extends keyof Rules & string ? Rules[RuleName] extends RuleDefinition ? RuleConfigEntry> : RuleConfigEntry : RuleConfigEntry : RuleConfigEntry : RuleConfigEntry : RuleConfigEntry; type RulesForPlugins = { readonly [Key in keyof Rules]: Key extends string ? RuleEntryForPlugins : never; }; type TypedConfigInput = Item extends readonly [] ? readonly [] : Item extends readonly [unknown, ...unknown[]] ? { readonly [Index in keyof Item]: TypedConfigInput; } : Item extends readonly (infer Element)[] ? readonly TypedConfigInput[] : TypedConfigItem; type TypedConfigItem = Item extends { plugins?: infer Plugins; rules?: infer Rules; } ? ConfigItemWithPluginRules : TypedConfigItemWithoutRuleConfig; type TypedConfigItemWithoutRuleConfig = Item extends { plugins?: infer Plugins; } ? ConfigItemWithPlugins : AlintConfigItem; declare function defineConfig(config: Config & TypedConfigInput): AlintConfig; declare function definePlugin = Record>(plugin: Omit, 'rules'> & { rules?: Rules; }): PluginDefinition; declare function defineRule(rule: Omit, 'options'> & { options?: undefined; }): RuleDefinition<[]>; declare function defineRule(rule: RuleDefinition & { options: OptionsSchema; }): RuleDefinition; //#endregion export { definePlugin as n, defineRule as r, defineConfig as t };