import { Marker, Map as SDKMap } from '@maptiler/sdk';
import { MaptilerGeocoderEvent } from '../geocoder/geocoder-events';
import { Feature } from '../types';
import { MaptilerGeocodingControl } from './maptilersdk-control';
type SDKEvent = Extract<Parameters<SDKMap["fire"]>[0], object>;
type BaseEvent = SDKEvent & {
    target: MaptilerGeocodingControl;
};
export declare namespace MaptilerGeocodingControlEvent {
    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 = MaptilerGeocodingControlEvent.ReverseToggleEvent;
export type QueryChangeEvent = MaptilerGeocodingControlEvent.QueryChangeEvent;
export type QueryClearEvent = MaptilerGeocodingControlEvent.QueryClearEvent;
export type RequestEvent = MaptilerGeocodingControlEvent.RequestEvent;
export type ResponseEvent = MaptilerGeocodingControlEvent.ResponseEvent;
export type SelectEvent = MaptilerGeocodingControlEvent.SelectEvent;
export type PickEvent = MaptilerGeocodingControlEvent.PickEvent;
export type FeaturesShowEvent = MaptilerGeocodingControlEvent.FeaturesShowEvent;
export type FeaturesHideEvent = MaptilerGeocodingControlEvent.FeaturesHideEvent;
export type FeaturesListedEvent = MaptilerGeocodingControlEvent.FeaturesListedEvent;
export type FeaturesClearEvent = MaptilerGeocodingControlEvent.FeaturesClearEvent;
export type FocusInEvent = MaptilerGeocodingControlEvent.FocusInEvent;
export type FocusOutEvent = MaptilerGeocodingControlEvent.FocusOutEvent;
export type MarkerClickEvent = MaptilerGeocodingControlEvent.MarkerClickEvent;
export type MarkerMouseEnterEvent = MaptilerGeocodingControlEvent.MarkerMouseEnterEvent;
export type MarkerMouseLeaveEvent = MaptilerGeocodingControlEvent.MarkerMouseLeaveEvent;
export type MaptilerGeocodingControlEventNameMap = {
    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 MaptilerGeocodingControlEvent = MaptilerGeocodingControlEventNameMap[keyof MaptilerGeocodingControlEventNameMap];
export type MaptilerGeocodingControlEventName = keyof MaptilerGeocodingControlEventNameMap;
export {};
