import type { Vec3 } from "./Shape.js";
export type Contact = {
    readonly colliderA: number;
    readonly colliderB: number;
    readonly bodyA: number;
    readonly bodyB: number;
    readonly normal: Vec3;
    readonly penetration: number;
    readonly sensor: boolean;
};
export type CollisionEventType = "begin" | "stay" | "end";
export type CollisionEvent = {
    readonly type: CollisionEventType;
    readonly pairKey: string;
    readonly contact: Contact;
};
export declare function contactPairKey(colliderA: number, colliderB: number): string;
export declare class CollisionEventQueue {
    private previousContacts;
    private events;
    update(currentContacts: readonly Contact[]): readonly CollisionEvent[];
    removeCollider(colliderId: number): readonly CollisionEvent[];
    drain(): readonly CollisionEvent[];
    snapshotContacts(): readonly Contact[];
}
//# sourceMappingURL=CollisionEvents.d.ts.map