import { type NodeId } from "../expr.js"; import { type Rule } from "../rule.js"; export interface ReduceIntegerFractionParams { /** An integer literal element of the Fraction's numerator list. */ readonly numTermId: NodeId; /** An integer literal element of its denominator list. */ readonly denTermId: NodeId; } /** * Exact arithmetic across the bar: divide an integer numerator element and * an integer denominator element by their gcd. * 6/3 ~> 2 6/4 ~> 3/2 6/(3x) ~> 2/x 3/(3x) ~> 1/x * Literals that reduce to 1 disappear (an empty list means 1; an empty * denominator drops the bar entirely). The denominator is a known nonzero * literal and the reduction is exact, so — unlike cancellation — this emits * NO assumption. */ export declare const reduceIntegerFraction: Rule; //# sourceMappingURL=reduceIntegerFraction.d.ts.map