export interface ValidationFinding { file: string; type: "error" | "warning" | "info"; message: string; fix?: string; } export interface ValidationResult { projectDir: string; findings: ValidationFinding[]; summary: { errors: number; warnings: number; info: number; passed: boolean; status: "pass" | "warn" | "fail"; }; nextSteps: string[]; } export interface SetupValidatorOptions { projectDir: string; /** Files to check (default: check all known files) */ checkFiles?: string[]; /** Skip syntax checks */ skipSyntaxCheck?: boolean; /** Skip executable permission checks */ skipPermissionCheck?: boolean; } export declare class SetupValidator { private options; constructor(options: SetupValidatorOptions); validate(): ValidationResult; private _checkSyntax; private _checkPermissions; /** Map ESLint rule name prefixes to npm packages */ private static readonly ESLINT_PLUGIN_MAP; /** Known built-in ESLint core rules (subset) */ private static readonly KNOWN_ESLINT_CORE_RULES; /** Known @typescript-eslint rules (subset) */ private static readonly KNOWN_TS_ESLINT_RULES; /** * Combined known rule set: core + @typescript-eslint + any rule prefixed by known plugins. * A rule is considered "known" if it is in the known set OR has a prefix matching a known plugin. */ private static isKnownRule; private _checkDependencies; /** * Check eslint.config.js for unknown rule names. * Parses the config file for `"rule-name":` patterns and flags unknown rules as warnings. */ private _checkEslintRuleNames; /** * Check if lint-staged config exists in BOTH package.json and .lintstagedrc.json. * If both exist, add an info finding suggesting removal of .lintstagedrc.json. */ private _checkLintStagedDuplication; } //# sourceMappingURL=setup_validator.d.ts.map