import { default as maplibregl } from 'maplibre-gl';
import { MaptilerGeocoderEvent } from '../geocoder/geocoder-events';
import { Feature } from '../types';
import { MaplibreglGeocodingControl } from './maplibregl-control';
type Marker = maplibregl.Marker;
type MLEvent = Extract<Parameters<maplibregl.Evented["fire"]>[0], object>;
type BaseEvent = MLEvent & {
    target: MaplibreglGeocodingControl;
};
export declare namespace MaplibreglGeocodingControlEvent {
    type ReverseToggleEvent = BaseEvent & MaptilerGeocoderEvent.ReverseToggleEvent["detail"];
    type QueryChangeEvent = BaseEvent & MaptilerGeocoderEvent.QueryChangeEvent["detail"];
    type QueryClearEvent = BaseEvent;
    type RequestEvent = BaseEvent & MaptilerGeocoderEvent.RequestEvent["detail"];
    type ResponseEvent = BaseEvent & MaptilerGeocoderEvent.ResponseEvent["detail"];
    type SelectEvent = BaseEvent & MaptilerGeocoderEvent.SelectEvent["detail"];
    type PickEvent = BaseEvent & MaptilerGeocoderEvent.PickEvent["detail"];
    type FeaturesShowEvent = BaseEvent;
    type FeaturesHideEvent = BaseEvent;
    type FeaturesListedEvent = BaseEvent & MaptilerGeocoderEvent.FeaturesListedEvent["detail"];
    type FeaturesClearEvent = BaseEvent;
    type FocusInEvent = BaseEvent;
    type FocusOutEvent = BaseEvent;
    type MarkerClickEvent = BaseEvent & {
        feature: Feature;
        marker: Marker;
    };
    type MarkerMouseEnterEvent = BaseEvent & {
        feature: Feature;
        marker: Marker;
    };
    type MarkerMouseLeaveEvent = BaseEvent & {
        feature: Feature;
        marker: Marker;
    };
}
export type ReverseToggleEvent = MaplibreglGeocodingControlEvent.ReverseToggleEvent;
export type QueryChangeEvent = MaplibreglGeocodingControlEvent.QueryChangeEvent;
export type QueryClearEvent = MaplibreglGeocodingControlEvent.QueryClearEvent;
export type RequestEvent = MaplibreglGeocodingControlEvent.RequestEvent;
export type ResponseEvent = MaplibreglGeocodingControlEvent.ResponseEvent;
export type SelectEvent = MaplibreglGeocodingControlEvent.SelectEvent;
export type PickEvent = MaplibreglGeocodingControlEvent.PickEvent;
export type FeaturesShowEvent = MaplibreglGeocodingControlEvent.FeaturesShowEvent;
export type FeaturesHideEvent = MaplibreglGeocodingControlEvent.FeaturesHideEvent;
export type FeaturesListedEvent = MaplibreglGeocodingControlEvent.FeaturesListedEvent;
export type FeaturesClearEvent = MaplibreglGeocodingControlEvent.FeaturesClearEvent;
export type FocusInEvent = MaplibreglGeocodingControlEvent.FocusInEvent;
export type FocusOutEvent = MaplibreglGeocodingControlEvent.FocusOutEvent;
export type MarkerClickEvent = MaplibreglGeocodingControlEvent.MarkerClickEvent;
export type MarkerMouseEnterEvent = MaplibreglGeocodingControlEvent.MarkerMouseEnterEvent;
export type MarkerMouseLeaveEvent = MaplibreglGeocodingControlEvent.MarkerMouseLeaveEvent;
export type MaplibreglGeocodingControlEventNameMap = {
    reversetoggle: ReverseToggleEvent;
    querychange: QueryChangeEvent;
    queryclear: QueryClearEvent;
    request: RequestEvent;
    response: ResponseEvent;
    select: SelectEvent;
    pick: PickEvent;
    featuresshow: FeaturesShowEvent;
    featureshide: FeaturesHideEvent;
    featureslisted: FeaturesListedEvent;
    featuresclear: FeaturesClearEvent;
    focusin: FocusInEvent;
    focusout: FocusOutEvent;
    markerclick: MarkerClickEvent;
    markermouseenter: MarkerMouseEnterEvent;
    markermouseleave: MarkerMouseLeaveEvent;
};
export type MaplibreglGeocodingControlEvent = MaplibreglGeocodingControlEventNameMap[keyof MaplibreglGeocodingControlEventNameMap];
export type MaplibreglGeocodingControlEventName = keyof MaplibreglGeocodingControlEventNameMap;
export {};
