import { InternalGrid } from '../types';
/**
 * Set up delegated event listeners on the grid body.
 * Consolidates all row/cell mouse event handling into a single set of listeners.
 * Call once during grid initialization.
 *
 * Benefits:
 * - 3 listeners total vs N*2 listeners (where N = pool size)
 * - Consistent event handling across all rows
 * - Automatic cleanup via AbortController signal
 *
 * @param grid - The grid instance
 * @param bodyEl - The .rows element containing all data rows
 * @param signal - AbortSignal for cleanup
 */
export declare function setupCellEventDelegation(grid: InternalGrid, bodyEl: HTMLElement, signal: AbortSignal): void;
/**
 * Set up root-level and document-level event listeners.
 * These are added once per grid lifetime (not re-attached on DOM recreation).
 *
 * Includes:
 * - keydown: Keyboard navigation (arrows, Enter, Escape)
 * - mousedown: Plugin dispatch for cell interactions
 * - mousemove/mouseup: Global drag tracking
 *
 * @param grid - The grid instance
 * @param gridElement - The grid element (for keydown)
 * @param renderRoot - The render root element (for mousedown)
 * @param signal - AbortSignal for cleanup
 */
export declare function setupRootEventDelegation(grid: InternalGrid, gridElement: HTMLElement, renderRoot: HTMLElement, signal: AbortSignal): void;
//# sourceMappingURL=event-delegation.d.ts.map