import { Effect } from "effect"; import type { SuggestionWithScore } from "../../core/types/domain-types.js"; import type { TypeScriptServiceError } from "../effects/errors.js"; import { TypeScriptCompilerServiceTag } from "../services/typescript-compiler-effect.js"; /** * Base validation configuration for different validation types * * @purity SHELL */ export interface BaseValidationConfig { readonly makeValidResult: () => TResult; readonly makeInvalidResult: (name: string, modulePath: string, suggestions: readonly SuggestionWithScore[], node: object) => TResult; readonly isValidCandidate: (candidate: string, userInput: string) => boolean; } /** * Base validation effect with shared logic * * @param node - Import specifier node * @param name - Name being validated * @param modulePath - Module path * @param config - Validation configuration * @returns Effect with validation result * * @purity SHELL * @effect Effect * @invariant Result is Valid | Invalid (exhaustive) * @complexity O(n log n) where n = |available_exports| * @throws Never - все ошибки типизированы в Effect */ export declare const baseValidationEffect: (node: object, name: string, modulePath: string, containingFilePath: string, config: BaseValidationConfig) => Effect.Effect; //# sourceMappingURL=validation-base-effect.d.ts.map