import type { ArgumentEngine } from "../core/argument-engine.js"; import type { TCoreArgument, TCorePremise, TCorePropositionalExpression, TCorePropositionalVariable, TCoreClaim } from "../schemata/index.js"; import type { TViolation } from "./types.js"; /** * Resolve E-3 (variable binding doesn't resolve) by deleting each * offending variable. `engine.removeVariable()` cascades: it removes * the variable record AND every variable-expression referencing it * across all premises, collapsing operator parents as necessary. * * In `'assistive'` mode, the per-mutation AN post-hook fires after * each removeVariable call. In `'permissive'`, no AN runs. * * @since 1.0.0 */ export declare function removeUnresolvableVariables(engine: ArgumentEngine): readonly TViolation[]; /** * Resolve E-1 (and/or with < 2 children) by cleaning up the orphan * operators. Delegates to `engine.normalize()`'s AN-3 pass, which * deletes empty operators and promotes single-child operators in a * non-meaning-changing way. The primitive exists alongside normalize() * so the UI can present a focused "Remove N orphan operators" action * with a precise return value (which violations it resolved). * * `engine.normalize()` bypasses `behavior` — even in permissive mode * the cleanup runs. This matches the UI flow: the user has already * accepted the deletion when they clicked the repair button. * * @since 1.0.0 */ export declare function removeOrphanOperators(engine: ArgumentEngine): readonly TViolation[]; /** * Resolve E-6 (claim has > 1 derivation premise) by keeping one * premise per `derivedClaimId` and deleting the others. Strategy * controls which premise is kept: * * - `'keep-first'` (default): keep the premise with the lexicographically * smallest id; delete the rest. Deterministic and snapshot-stable. * - `'keep-largest-antecedent'`: keep the premise whose antecedent * subtree has the most claim-bound variable expressions. Ties are * broken by lexicographic id. Useful when the user wants the more * informative derivation retained. * * `engine.removePremise()` cascades: it deletes the premise, its * expressions, and any premise-bound variables that reference it. * * @since 1.0.0 */ export declare function removeDuplicateDerivationPremises(engine: ArgumentEngine, strategy?: "keep-first" | "keep-largest-antecedent"): readonly TViolation[]; /** * Resolve D-3 (mixed-grounding antecedent: axioms + citations in one * derivation premise) by deleting every axiom-bound variable expression * from the antecedent subtree, leaving citations behind. Mirrors the * v1.0 migration repair (spec §9.2) for runtime use when an * advanced-mode user reaches a mixed state in a permissive engine. * * In `'assistive'` mode, the per-mutation AN post-hook runs after each * expression removal, which may collapse the resulting OR (AN-3) if * fewer than two siblings remain after the deletes. In `'permissive'` * the OR may end up with a single child (an E-1 / D-2 violation — * follow up with `removeOrphanOperators()` if desired). * * @since 1.0.0 */ export declare function dropAxiomsFromMixedAntecedent(engine: ArgumentEngine): readonly TViolation[]; //# sourceMappingURL=repair.d.ts.map