import { type NodeId } from "../expr.js"; import { type Rule } from "../rule.js"; export interface CombineFractionsParams { /** A Fraction child of the Sum at `location`. */ readonly termA: NodeId; /** Another child — a Fraction, or a whole term treated as itself over 1. */ readonly termB: NodeId; } /** * Add two terms of a Sum over a common denominator — the missing * unlike-denominator case (x/2 + x/3 had no path): * a/b + c/d ~> (a·d + c·b)/(b·d) x/2 + 3 ~> (x + 3·2)/2 * Exact: a/b + c/d and (ad+cb)/(bd) are undefined at exactly the same points * (b·d = 0 iff b = 0 or d = 0), so nothing is gained or lost — emits nothing. * The cross-products and shared denominator are fresh clones; the combining * terms are consumed, so no bystander ids move. */ export declare const combineFractions: Rule; //# sourceMappingURL=combineFractions.d.ts.map