import type { HyperboxContactPatch4, HyperboxContactVertex4 } from './hyperbox-contact4.js'; export interface HyperboxContactTrackerOptions4 { /** Track the bounded solver subset (default) or every geometric vertex. */ pointSource?: 'solver' | 'vertices'; } export interface HyperboxTrackedContactPoint4 { readonly id: string; /** Number of consecutive tracker updates in which this identity was present. */ readonly age: number; readonly isNew: boolean; readonly vertex: HyperboxContactVertex4; } export interface HyperboxContactTrackingResult4 { readonly points: readonly HyperboxTrackedContactPoint4[]; /** Identities present in the previous update but absent from this one. */ readonly retiredIds: readonly string[]; } /** * Minimal temporal cache for box contact identities. * * Identity comes from local feature pairs rather than world coordinates, so * coherent motion can move a point without invalidating a future accumulated * impulse. The tracker deliberately does not guess proximity matches across a * topological feature change; such points retire and re-enter as new. */ export declare class HyperboxContactTracker4 { readonly pointSource: 'solver' | 'vertices'; private ages; constructor(options?: HyperboxContactTrackerOptions4); update(patch: HyperboxContactPatch4 | null): HyperboxContactTrackingResult4; reset(): void; } //# sourceMappingURL=hyperbox-contact-tracker4.d.ts.map