import type { Node } from '@babel/types'; /** The closed taxonomy, in the order the mutators are registered. */ export declare const LLM_CATEGORIES: readonly ["LlmComparison", "LlmArithmetic", "LlmLogical", "LlmNullish", "LlmNegate", "LlmAwait", "LlmTernary", "LlmMethod", "LlmArgument", "LlmProperty", "LlmIdentifier", "LlmNumber", "LlmString", "LlmConstant", "LlmStatement", "LlmOther"]; /** One of the {@link LLM_CATEGORIES}. */ export type LlmCategory = (typeof LLM_CATEGORIES)[number]; /** * Classify a mutation from its two ALREADY-PARSED expression nodes. Total and * pure over the ASTs: identical inputs always yield the same name. The nodes * are never mutated (they are deep-cloned by `normalize`). */ export declare function classifyNodes(original: Node, replacement: Node): LlmCategory; /** * Classify a mutation from its two SOURCE TEXTS. Both are parsed with the * tolerant sub-expression route the pipeline already uses for shape matching; * a side that does not parse yields `LlmOther`. Total: never throws. */ export declare function classifyMutation(original: string, replacement: string): LlmCategory;