@felixgeelhaar/cclint
Version:
Catch CLAUDE.md drift before Claude misbehaves. Lints CLAUDE.md, skills, subagents, and hooks for Claude Code projects.
41 lines • 1.61 kB
TypeScript
import type { LanguageValidator } from './LanguageValidator.js';
/**
* Binds one validator to the language identifier(s) it handles.
*
* @remarks
* A single validator can serve several languages — `JavaScriptValidator`
* handles both `javascript` and `typescript`, which is also the grouping used
* for cross-block consistency checks.
*/
export interface ValidatorRegistration {
readonly languages: readonly string[];
readonly validator: LanguageValidator;
}
/**
* Maps normalized language identifiers to the {@link LanguageValidator} that
* handles them.
*
* @remarks
* This is the one place that knows which validator owns which language, so
* adding a language means adding a validator module and a single registration
* — `CodeBlockRule` never grows a `switch`.
*/
export declare class ValidatorRegistry {
private readonly byLanguage;
private readonly registeredGroups;
constructor(registrations: readonly ValidatorRegistration[]);
/** The validator for a language, or `undefined` when none is registered. */
get(language: string): LanguageValidator | undefined;
/** All registrations, in declaration order, for cross-block passes. */
groups(): readonly ValidatorRegistration[];
}
/**
* Build the registry of built-in language validators.
*
* @remarks
* `javascript` and `typescript` deliberately share one validator instance so
* their blocks are validated identically and grouped together for
* consistency checks.
*/
export declare function createDefaultValidatorRegistry(): ValidatorRegistry;
//# sourceMappingURL=ValidatorRegistry.d.ts.map