import type { ClassToInterface, Rec } from "typescript-misc"; import type { Context, Docs, SuboptionsArray } from "./types"; import type { RuleListener, RuleModule } from "@typescript-eslint/utils/dist/ts-eslint"; import { is } from "typescript-misc"; import { TypeCheck } from "./TypeCheck"; /** * Creates rule listener. * @param options - Options. * @returns Rule listener. */ export declare function createRule(options: CreateRuleOptions): RuleModule>; /** * Parses package.json file. * @param path - Path. * @returns Project configuration. */ export declare function getProjectConfig(path?: string): ProjectConfig; export interface CreateRuleOptions { /** * Creates rule listener. * @param context - Context. * @param typeCheck - Type check. * @returns Rule listener. */ readonly create: (context: Context, typeCheck: ClassToInterface) => RuleListener; readonly defaultOptions?: Readonly>; readonly defaultSuboptions?: Readonly>; readonly docs: Docs; readonly fixable?: "code" | "whitespace"; readonly hasSuggestions?: boolean; readonly isOptions?: is.Guard; readonly isSuboptions?: is.Guard; readonly messages: Rec; readonly name: string; readonly suboptionsKey?: K; } export type PartialOptions = Partial & { readonly [L in K]?: SuboptionsArray>; }; export type PartialOptionsArray = readonly [PartialOptions]; interface ProjectConfig { readonly name?: string; } export {}; //# sourceMappingURL=create-rule.d.ts.map