import type { IPoint } from '../Core/Types';
/**
 * Collision detection result.
 *
 * @public
 */
export interface ICollisionResult {
    /**
     * Element that was hit.
     */
    element: HTMLElement;
    /**
     * Distance from pointer to element center.
     */
    distance: number;
    /**
     * Index in the list (if applicable).
     */
    index: number;
}
/**
 * Find element at a specific point.
 *
 * @param point - Point to check.
 * @param elements - Elements to check against.
 * @returns Element at point or null.
 *
 * @public
 */
export declare function getElementAtPoint(point: IPoint, elements: Array<HTMLElement>): HTMLElement | null;
/**
 * Find all elements at a specific point.
 *
 * @param point - Point to check.
 * @param elements - Elements to check against.
 * @returns Array of elements at point.
 *
 * @public
 */
export declare function getAllElementsAtPoint(point: IPoint, elements: Array<HTMLElement>): Array<HTMLElement>;
/**
 * Find nearest element to a point.
 *
 * @param point - Reference point.
 * @param elements - Elements to check.
 * @returns Collision result or null.
 *
 * @public
 */
export declare function getNearestElement(point: IPoint, elements: Array<HTMLElement>): ICollisionResult | null;
/**
 * Get elements sorted by distance from a point.
 *
 * @param point - Reference point.
 * @param elements - Elements to check.
 * @returns Array of collision results sorted by distance.
 *
 * @public
 */
export declare function getElementsByDistance(point: IPoint, elements: Array<HTMLElement>): Array<ICollisionResult>;
/**
 * Find drop index in a vertical list.
 *
 * @param elements - List elements or rects.
 * @param point - Pointer position.
 * @returns Drop index.
 *
 * @public
 */
export declare function getVerticalDropIndex(elements: Array<HTMLElement | DOMRect>, point: IPoint): number;
/**
 * Find drop index in a horizontal list.
 *
 * @param elements - List elements or rects.
 * @param point - Pointer position.
 * @returns Drop index.
 *
 * @public
 */
export declare function getHorizontalDropIndex(elements: Array<HTMLElement | DOMRect>, point: IPoint): number;
/**
 * Find drop index in a mixed/grid layout.
 *
 * @param elements - List elements or rects.
 * @param point - Pointer position.
 * @returns Drop index.
 *
 * @public
 */
export declare function getMixedDropIndex(elements: Array<HTMLElement | DOMRect>, point: IPoint): number;
/**
 * Check if two rects intersect.
 *
 * @param rect1 - First rect.
 * @param rect2 - Second rect.
 * @returns True if rects intersect.
 *
 * @public
 */
export declare function rectsIntersect(rect1: DOMRect, rect2: DOMRect): boolean;
/**
 * Calculate intersection area of two rects.
 *
 * @param rect1 - First rect.
 * @param rect2 - Second rect.
 * @returns Intersection area in pixels².
 *
 * @public
 */
export declare function getIntersectionArea(rect1: DOMRect, rect2: DOMRect): number;
//# sourceMappingURL=CollisionDetection.d.ts.map