import type { TSESTree } from "@typescript-eslint/utils"; import type { RuleContext } from "@typescript-eslint/utils/ts-eslint"; import { Effect } from "effect"; /** * Generic validation result handler with fallback support * * @purity SHELL * @effect ESLint reporting * @complexity O(1) * * CHANGE: Use Effect.runSync instead of Effect.runPromise * WHY: ESLint rules must report errors synchronously. Async validation * causes context.report() to be called after ESLint finishes checking the file. * INVARIANT: ∀ validation: report(validation) → immediate(report) */ /** * Configuration for validation effect runner */ interface ValidationConfig { readonly validationEffect: Effect.Effect; readonly context: RuleContext; readonly reportNode: TSESTree.Node; readonly messageId: string; readonly formatMessage: (result: T) => string; readonly fallbackEffect?: Effect.Effect; } export declare const runValidationEffect: (config: ValidationConfig) => void; export {}; //# sourceMappingURL=validation-runner.d.ts.map