import type { Surface, Vec2 } from '../types.js';
export interface SurfaceHit {
    surface: Surface;
    t: number;
    x: number;
    point: Vec2;
    normal: Vec2;
}
/** Swept intersections prevent high-speed clumps crossing a one-pixel shelf. */
export declare function sweptSurfaceHit(surface: Surface, start: Vec2, end: Vec2, radius?: number): SurfaceHit | undefined;
/** Grid cells contain shelf bounds, never individual flake state. Rebuild on dirty geometry. */
export declare class SurfaceIndex {
    readonly cellSize: number;
    private readonly cells;
    private readonly oversized;
    private surfaces;
    constructor(cellSize?: number);
    rebuild(surfaces: readonly Surface[]): void;
    query(start: Vec2, end: Vec2, radius?: number): Surface[];
}
//# sourceMappingURL=collisions.d.ts.map