import type { Effect } from "effect"; import type { ImportValidationResult } from "../../core/index.js"; import type { TypeScriptServiceError } from "../effects/errors.js"; import type { TypeScriptCompilerServiceTag } from "../services/typescript-compiler-effect.js"; /** * Validates import specifier with Effect-based composition * * @param node - Import specifier node * @param importName - Name being imported * @param modulePath - Module path * @returns Effect with validation result * * @purity SHELL * @effect Effect * @invariant Result is Valid | ImportNotFound (exhaustive) * @complexity O(n log n) where n = |exports| * @throws Never - все ошибки типизированы в Effect * * FORMAT THEOREM: ∀node,name,path: validateImport(node,name,path) → Effect */ export declare const validateImportSpecifierEffect: (node: object, // ESLint ImportSpecifier importName: string, modulePath: string, containingFilePath: string) => Effect.Effect; /** * Checks if module has exports * * @param modulePath - Module path to check * @returns Effect with boolean result * * @purity SHELL * @effect Effect * @complexity O(1) * @throws Never */ export { hasExportsEffect as hasModuleExportsEffect } from "../shared/existence-utils.js"; /** * Validates if candidate is suitable for import suggestions * * @param candidate - Export candidate * @param userInput - User's input * @returns true if candidate is valid * * @pure true * @purity CORE * @effect None * @complexity O(1) * @throws Never */ export declare const isValidImportCandidate: (candidate: string, userInput: string) => boolean; /** * Formats import validation result into user message * * @param result - Validation result * @returns Formatted message * * @pure true * @purity CORE * @effect None * @complexity O(n) where n = |suggestions| * @throws Never */ export declare const formatImportValidationMessage: (result: ImportValidationResult) => string; //# sourceMappingURL=import-validation-effect.d.ts.map