import { type ExactRing, type ExactValue } from '@holotope/core'; import { type GjkBarycentricSignOracle } from './gjk.js'; import { type SupportFeatureId } from './support-shape.js'; /** * Exact coordinates associated with stable support-feature IDs. * * Every coordinate is interpreted as `numerator / denominator`. A single * positive denominator is sufficient for integer, sqrt(2), and phi vertex * clouds and lets transformed/baked rational shapes retain exact predicates. */ export interface ExactSupportCoordinatesN { readonly dim: number; readonly ring: ExactRing; readonly denominator?: bigint; coordinates(featureId: SupportFeatureId): readonly ExactValue[] | undefined; } /** * Build a GJK branch oracle from exact feature coordinates for A and B. * * The oracle uses exact Gram determinants and Cramer's rule only for the * signs that select the active simplex face. GJK continues to calculate its * returned closest points and witnesses in Float64. */ export declare function createExactRingGjkSignOracle(shapeA: ExactSupportCoordinatesN, shapeB: ExactSupportCoordinatesN): GjkBarycentricSignOracle; //# sourceMappingURL=gjk-exact.d.ts.map