/**
 * Global rule catalog indexed by rule name and documentation id.
 */
type RuleCatalog = Readonly<{
    readonly byDocId: Readonly<Record<string, RuleCatalogEntry>>;
    readonly byRuleName: Readonly<Record<string, RuleCatalogEntry>>;
    readonly ordered: readonly RuleCatalogEntry[];
}>;
/**
 * Single rule entry in the global catalog.
 */
type RuleCatalogEntry = Readonly<{
    readonly catalogId: string;
    readonly catalogIndex: number;
    readonly docId: string;
    readonly isTypeScriptRule: boolean;
    readonly ruleName: string;
}>;
/**
 * Format a catalog index as an ID like `R001`.
 */
export declare const toRuleCatalogId: (catalogIndex: number) => string;
/**
 * Convert a rule name to its documentation page id.
 */
export declare const toRuleDocId: (ruleName: string) => string;
/**
 * Sort rules so core rules come first, then TypeScript-scoped rules.
 */
export declare const compareRuleNamesForCatalog: (leftRuleName: string, rightRuleName: string) => number;
/**
 * Build a globally ordered rule catalog map keyed by both rule name and doc id.
 */
export declare const buildRuleCatalog: (ruleNames: readonly string[]) => RuleCatalog;
export type { RuleCatalog, RuleCatalogEntry };
//# sourceMappingURL=rule-catalog.d.ts.map