import type { RuleContext, RuleListener, RuleMetaData, RuleMetaDataDocs, RuleModule } from '../ts-eslint/Rule'; export type NamedCreateRuleMetaDocs = Omit; export type NamedCreateRuleMeta = { docs: PluginDocs & RuleMetaDataDocs; } & Omit, 'docs'>; export interface RuleCreateAndOptions { create: (context: Readonly>, optionsWithDefault: Readonly) => RuleListener; defaultOptions: Readonly; } export interface RuleWithMeta extends RuleCreateAndOptions { meta: RuleMetaData; } export interface RuleWithMetaAndName extends RuleCreateAndOptions { meta: NamedCreateRuleMeta; name: string; } /** * Creates reusable function to create rules with default options and docs URLs. * * @param urlCreator Creates a documentation URL for a given rule name. * @returns Function to create a rule with the docs URL format. */ export declare function RuleCreator(urlCreator: (ruleName: string) => string): ({ meta, name, ...rule }: Readonly>) => RuleModule; export declare namespace RuleCreator { var withoutDocs: (args: Readonly>) => RuleModule; } export { type RuleListener, type RuleModule } from '../ts-eslint/Rule'; //# sourceMappingURL=RuleCreator.d.ts.map