import { AbstractRule, BaseRuleConfig, RuleOptions } from '@webpieces/rules-config'; import type { EditContext, BashContext, FileContext, Violation, Rule } from './types'; import type { FixHint } from './fix-hint'; /** * A concrete, instantiable BaseRuleConfig used as a fallback when a built-in rule has no * entry in webpieces.config.json yet. It carries no values, so the rule's `description`, * `fixHint`, and `defaultOptions` (which are config-independent) are still readable for the * out-of-sync report — the rule never actually runs in that state (the sync check blocks first). */ export declare class EmptyRuleConfig extends BaseRuleConfig { } /** * Scope-specific base for edit rules. Extends the shared AbstractRule (which owns `name`, * the typed `config`, and `shouldRun()`), and adds the ai-hook execution surface. */ export declare abstract class EditRuleBase extends AbstractRule implements Rule { readonly scope: "edit"; readonly files: readonly string[]; readonly defaultOptions: RuleOptions; abstract readonly description: string; abstract readonly fixHint: FixHint; abstract check(ctx: EditContext): readonly Violation[]; } export declare abstract class FileRuleBase extends AbstractRule implements Rule { readonly scope: "file"; readonly files: readonly string[]; readonly defaultOptions: RuleOptions; abstract readonly description: string; abstract readonly fixHint: FixHint; abstract check(ctx: FileContext): readonly Violation[]; } export declare abstract class BashRuleBase extends AbstractRule implements Rule { readonly scope: "bash"; readonly files: readonly string[]; readonly defaultOptions: RuleOptions; abstract readonly description: string; abstract readonly fixHint: FixHint; abstract check(ctx: BashContext): readonly Violation[]; }