import { Nullable, MapEventTypes } from '../../types';
import { MaybeRef } from 'vue';
import { Map } from 'maplibre-gl';

/**
 * Event listener status enum for better state management
 */
export declare enum EventListenerStatus {
    NotAttached = "not-attached",
    Attached = "attached",
    Error = "error"
}
interface MapEventListenerProps {
    map: MaybeRef<Nullable<Map>>;
    event: keyof MapEventTypes;
    on: <T extends keyof MapEventTypes>(e: MapEventTypes[T]) => void;
    debug?: boolean;
    once?: boolean;
}
interface MapEventListenerActions {
    removeListener: () => void;
    attachListener: () => void;
    isListenerAttached: boolean;
    listenerStatus: Readonly<EventListenerStatus>;
}
/**
 * Composable for managing MapLibre GL Map Event Listeners
 * Provides reactive event listener with error handling, performance optimizations, and enhanced API
 *
 * @param props - Configuration options for the map event listener
 * @returns Enhanced actions and state for the event listener
 */
export declare function useMapEventListener(props: MapEventListenerProps): MapEventListenerActions;
export {};
//# sourceMappingURL=useMapEventListener.d.ts.map