/**
 * Event Compatibility Adapter
 * Handles differences in event systems between Leaflet v1.x and v2.x
 */
import type * as L from 'leaflet';
type TouchLike = {
    clientX: number;
    clientY: number;
};
type LeafletLikeEvent = {
    layer?: unknown;
    propagatedFrom?: unknown;
    type?: string;
    _isPointerEvent?: boolean;
    latlng?: L.LatLng;
    touches?: ArrayLike<TouchLike>;
    pointerType?: string;
    isPrimary?: boolean;
    clientX?: number;
    clientY?: number;
    cancelable?: boolean;
    preventDefault?: () => void;
    stopPropagation?: () => void;
};
type LeafletMapLike = {
    getContainer: () => HTMLElement;
    containerPointToLatLng: (point: [number, number]) => L.LatLng;
};
export declare class EventAdapter {
    /**
     * Normalizes events to handle differences between v1 and v2
     * @param event - The event to normalize
     * @returns The normalized event
     */
    static normalizeEvent(event: LeafletLikeEvent): LeafletLikeEvent;
    /**
     * Gets the appropriate event name for the current Leaflet version
     * @param eventName - The base event name
     * @returns The version-appropriate event name
     */
    static getEventName(eventName: string): string;
    /**
     * Checks if pointer events are supported/preferred
     * @returns true if pointer events should be used
     */
    static shouldUsePointerEvents(): boolean;
    /**
     * Extracts coordinates from various event types (mouse, touch, pointer)
     * @param event - The event to extract coordinates from
     * @param map - The map instance for coordinate conversion
     * @returns The LatLng coordinates or null if not available
     */
    static extractCoordinates(event: LeafletLikeEvent, map: LeafletMapLike): L.LatLng | null;
    /**
     * Checks if an event should be prevented from default behavior
     * @param event - The event to check
     * @returns true if preventDefault should be called
     */
    static shouldPreventDefault(event: LeafletLikeEvent): boolean;
    /**
     * Gets the appropriate event listener names for the current version
     * @returns Object with event names for different actions
     */
    static getEventNames(): {
        start: string[];
        move: string[];
        end: string[];
    };
}
export {};
//# sourceMappingURL=event-adapter.d.ts.map