import { ParseResult } from "../parser/proto"; export interface LintConfig { text: string; parseResult?: ParseResult; filePath?: string; rules: LintRule[]; } export interface LintResult { warnings: LintResultItem[]; errors: LintResultItem[]; } export declare function lint({ text, parseResult, filePath, rules, }: LintConfig): LintResult; export interface LintRule { name: string; lint(context: LintContext): LintResult; } export interface LintContext { text: string; parseResult: ParseResult; filePath?: string; } export interface LintResultItem { rule: LintRule; message?: string; fix?: () => TextEdit[]; } export interface TextEdit { start: number; end: number; newText: string; }