/**
 * Event kinds emitted by the manifold diff pass.
 */
export type ContactEventKind = number;
export namespace ContactEventKind {
    let Begin: number;
    let Stay: number;
    let End: number;
}
/**
 * Append-only buffer of contact events produced during one fixedUpdate, ready
 * to be dispatched (and then cleared) at end-of-step.
 *
 * Storage is flat Int32Array (signed: entity ids may legitimately be -1 for a
 * stale body after free) — keeping the metadata side allocation-free; the
 * actual contact payload (normal, depth, world point) is read on demand from
 * the {@link ManifoldStore} by the dispatch code.
 *
 * @author Alex Goldring
 * @copyright Company Named Limited (c) 2026
 */
export class ContactEventBuffer {
    /**
     * @param {number} [initial_capacity] events
     */
    constructor(initial_capacity?: number);
    __capacity: number;
    __count: number;
    __data: Int32Array;
    /**
     * @returns {number}
     */
    get count(): number;
    clear(): void;
    /**
     * @param {ContactEventKind|number} kind
     * @param {number} entityA
     * @param {number} entityB
     * @param {number} slot manifold slot id
     */
    push(kind: ContactEventKind | number, entityA: number, entityB: number, slot: number): void;
    kind_at(i: any): number;
    entityA_at(i: any): number;
    entityB_at(i: any): number;
    slot_at(i: any): number;
}
//# sourceMappingURL=ContactEventBuffer.d.ts.map