/** * @packageDocumentation * Shared helpers for consistent rule reporting with optional fixes and * suggestion fallbacks. */ import type { TSESLint, TSESTree } from "@typescript-eslint/utils"; import type { UnknownArray } from "type-fest"; /** * Resolution result for optional fix/suggestion reporting. */ export type AutofixOrSuggestionOutcome = Readonly<{ fix: TSESLint.ReportFixFunction; kind: "autofix"; }> | Readonly<{ fix: TSESLint.ReportFixFunction; kind: "suggestion"; }> | Readonly<{ kind: "no-fix"; }>; /** Input shape for {@link resolveAutofixOrSuggestionOutcome}. */ type AutofixOrSuggestionResolutionInput = Readonly<{ canAutofix: boolean; fix: null | TSESLint.ReportFixFunction; }>; /** Concrete report descriptor type for a rule context. */ type ReportDescriptor> = Parameters["report"]>[0]; /** * Report using plugin-aware autofix policy handling. */ export declare const reportWithTypefestPolicy: >({ context, descriptor, }: Readonly<{ context: Readonly>; descriptor: ReportDescriptor; }>) => void; /** * Report a diagnostic with an optional direct fix. * * @remarks * When `fix` is absent this reports only `messageId` + `node`. */ export declare const reportWithOptionalFix: >({ context, data, fix, messageId, node, }: Readonly<{ context: Readonly>; data?: ReportDescriptor["data"]; fix: null | TSESLint.ReportFixFunction; messageId: MessageIds; node: TSESTree.Node; }>) => void; /** * Resolve one of three standardized reporting outcomes: * * - No fix (`messageId` only), * - Direct autofix (`fix`), or * - Suggestion-only (`suggest`). */ export declare function resolveAutofixOrSuggestionOutcome({ canAutofix, fix, }: AutofixOrSuggestionResolutionInput): AutofixOrSuggestionOutcome; /** * Report a previously resolved autofix/suggestion outcome. * * @remarks * - Suggestion outcomes are reported with a single `suggest` entry. * - Autofix and no-fix outcomes are delegated to {@link reportWithOptionalFix}. */ export declare const reportResolvedAutofixOrSuggestionOutcome: >({ context, data, messageId, node, outcome, suggestionMessageId, }: Readonly<{ context: Readonly>; data?: ReportDescriptor["data"]; messageId: MessageIds; node: TSESTree.Node; outcome: AutofixOrSuggestionOutcome; suggestionMessageId: MessageIds; }>) => void; export {}; //# sourceMappingURL=rule-reporting.d.ts.map