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

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