declare class PointerCoordinator { [key: string]: any; static _capturedPointers: Map; static _redispatchedEvents: WeakSet; static _scrollPreventionEnabled: boolean; /** * Attempt to capture a pointer for an element * @param {HTMLElement} element - The element trying to capture * @param {number} pointerId - The pointer ID to capture * @returns {boolean} - True if successfully captured, false if already captured by another element */ static capturePointer(element: HTMLElement, pointerId: number): boolean; /** * Release a pointer capture * @param {HTMLElement} element - The element releasing the capture * @param {number} pointerId - The pointer ID to release */ static releasePointer(element: HTMLElement, pointerId: number): void; /** * Check if a pointer is currently captured * @param {number} pointerId - The pointer ID to check * @returns {boolean} - True if pointer is captured */ static isPointerCaptured(pointerId: number): boolean; /** * Get the element currently capturing a pointer * @param {number} pointerId - The pointer ID to check * @returns {HTMLElement|null} - The capturing element or null */ static getCapturingElement(pointerId: number): any; /** * Check if an element has captured a specific pointer * @param {HTMLElement} element - The element to check * @param {number} pointerId - The pointer ID to check * @returns {boolean} - True if the element has captured the pointer */ static hasPointerCapture(element: HTMLElement, pointerId: number): boolean; /** * Check if an event has already been redispatched to prevent loops * @param {Event} event - The event to check * @returns {boolean} - True if event is already redispatched */ static isRedispatchedEvent(event: Event): boolean; /** * Mark an event as redispatched * @param {Event} event - The event to mark */ static markAsRedispatched(event: Event): void; /** * Redispatch a pointer event from the capturing element * @param {HTMLElement} capturingElement - The element that captured the pointer * @param {PointerEvent} originalEvent - The original pointer event * @param {string} eventType - The type of event to redispatch */ static redispatchPointerEvent(capturingElement: HTMLElement, originalEvent: PointerEvent, eventType?: string | null): void; /** * Prevent page scrolling during gesture interactions */ static _preventScrolling(): void; /** * Re-enable page scrolling */ static _allowScrolling(): void; /** * Clean up all captures (useful for debugging or cleanup) */ static clearAllCaptures(): void; /** * Check if scrolling should be prevented * @returns {boolean} - True if scrolling is currently prevented */ static isScrollPrevented(): boolean; /** * Check if a gesture should be processed (for early gesture detection) * @param {number} deltaX - X distance from start * @param {number} deltaY - Y distance from start * @param {number} threshold - Minimum distance threshold * @returns {boolean} - True if gesture should be processed */ static shouldProcessGesture(deltaX: number, deltaY: number, threshold?: number): boolean; /** * Set up early gesture detection for an element * @param {HTMLElement} element - The element to monitor * @param {number} threshold - Distance threshold for gesture detection * @param {Function} onGestureStart - Callback when gesture is detected */ static setupEarlyGestureDetection(element: HTMLElement, threshold: number, onGestureStart: (event: PointerEvent, info: Record) => void): () => void; /** * Get debug info about current captures * @returns {Object} - Debug information */ static getDebugInfo(): { capturedPointers: { pointerId: any; elementTag: any; elementId: any; }[]; totalCaptures: number; scrollPreventionEnabled: boolean; isScrollPrevented: boolean; }; } export { PointerCoordinator };