import type { TSESLint } from "@typescript-eslint/utils"; import type { Except, UnknownArray } from "type-fest"; /** * Additional docs metadata used by this plugin's rule catalog and presets. */ export interface RuleDocsMetadata extends TSESLint.RuleMetaDataDocs { readonly catalogId?: string; readonly catalogIndex?: number; readonly deprecated?: boolean; readonly frozen?: boolean; readonly recommended?: boolean; readonly requiresTypeChecking?: boolean; readonly ruleName?: string; readonly suggestion?: boolean; } type RuleCreatorFactory = , MessageIds extends string>(definition: RuleDefinition) => Readonly<{ readonly name: string; }> & TSESLint.RuleModule; type RuleDefinition, MessageIds extends string> = Readonly<{ readonly create: (context: Readonly>, optionsWithDefault: Readonly) => TSESLint.RuleListener; readonly defaultOptions?: Readonly; readonly meta: Except, "docs"> & Readonly<{ readonly docs: RuleDocsMetadata & TSESLint.RuleMetaDataDocs; readonly languages: RuleLanguages; }>; readonly name: string; }>; type RuleLanguages = readonly ["js/js"]; /** * Typed factory for defining plugin rules with consistent docs URLs. */ export declare const ruleCreator: RuleCreatorFactory; export {}; //# sourceMappingURL=rule-creator.d.ts.map