import { Effect } from "effect"; import type { MemberValidationResult } from "../../core/index.js"; import type { TypeScriptServiceError } from "../effects/errors.js"; import { TypeScriptCompilerServiceTag } from "../services/typescript-compiler-effect.js"; /** * Validates member access with Effect-based composition * * @param node - Member expression node * @returns Effect with validation result * * @purity SHELL * @effect Effect * @invariant Result is Valid | InvalidMember (exhaustive) * @complexity O(n log n) where n = |properties| * @throws Never - все ошибки типизированы в Effect * * FORMAT THEOREM: ∀node: validateMemberAccess(node) → Effect */ export declare const validateMemberAccessEffect: (node: object) => Effect.Effect; /** * Validates member access with separate ESTree and TypeScript nodes * * @param esTreeNode - ESTree MemberExpression node for skip logic * @param tsNode - TypeScript node for type checking * @returns Effect with validation result * * @purity SHELL * @effect Effect * @invariant Result is Valid | InvalidMember (exhaustive) * @complexity O(n log n) where n = |properties| * @throws Never - все ошибки типизированы в Effect */ export declare const validateMemberAccessEffectWithNodes: (esTreeNode: object, // ESTree MemberExpression tsNode: object) => Effect.Effect; /** * Checks if type has accessible properties * * @param type - TypeScript type * @returns Effect with boolean result * * @purity SHELL * @effect Effect * @complexity O(1) * @throws Never */ export { hasAccessiblePropertiesEffect } from "../shared/existence-utils.js"; /** * Formats member 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 formatMemberValidationMessage: (result: MemberValidationResult) => string; //# sourceMappingURL=member-validation-effect.d.ts.map