/** * @packageDocumentation * Derivation helpers for canonical rule docs metadata. */ import type { TSESLint } from "@typescript-eslint/utils"; import type { UnknownArray } from "type-fest"; import type { TypefestRuleNamePattern } from "./rules-registry.js"; import { type TypefestConfigName, type TypefestConfigReference } from "./typefest-config-references.js"; /** Normalized docs metadata derived for each rule. */ export type RuleDocsMetadata = Readonly<{ description: string; recommended: boolean; requiresTypeChecking: boolean; ruleId: string; ruleNumber: number; typefestConfigNames: readonly TypefestConfigName[]; typefestConfigReferences: readonly TypefestConfigReference[]; url: string; }>; /** Rule-name keyed metadata map derived from static docs contracts. */ export type RuleDocsMetadataByName = Readonly>; /** Rule-map contract accepted by docs metadata derivation helpers. */ type RuleMap = Readonly>>>; /** * Derive normalized docs metadata for all plugin rules. */ export declare const deriveRuleDocsMetadataByName: (rules: RuleMap) => RuleDocsMetadataByName; /** * Derive a typed-rule set from normalized docs metadata. */ export declare const deriveTypeCheckedRuleNameSet: (ruleDocsMetadataByName: RuleDocsMetadataByName) => ReadonlySet; /** * Derive canonical preset-membership map from normalized docs metadata. */ export declare const deriveRulePresetMembershipByRuleName: (ruleDocsMetadataByName: RuleDocsMetadataByName) => Readonly>; export {}; //# sourceMappingURL=rule-docs-metadata.d.ts.map