import { Map as OLMap } from 'ol';
import { Types as ObjectEventTypes } from 'ol/ObjectEventType';
import { EventTypes } from 'ol/Observable';
import { Control } from 'ol/control';
import { EventsKey } from 'ol/events';
import { default as OLEvent } from 'ol/events/Event';
import { GeocodingControlBase } from './base-control';
import { OpenLayersGeocodingControlEventName, OpenLayersGeocodingControlEventNameMap } from './openlayers-events';
import { OpenLayersGeocodingControlOptions } from './openlayers-options';
type TypedBaseEvent<Type extends OpenLayersGeocodingControlEventName> = OLEvent & {
    type: Type;
} & OpenLayersGeocodingControlEventNameMap[Type];
interface EventHandlingMethod {
    (type: EventTypes | ObjectEventTypes, listener: (event: OLEvent) => unknown): EventsKey;
    <Type extends OpenLayersGeocodingControlEventName>(type: Type, listener: (event: TypedBaseEvent<Type>) => unknown): EventsKey;
    (type: Array<EventTypes | ObjectEventTypes | OpenLayersGeocodingControlEventName>, listener: (event: OLEvent) => unknown): EventsKey[];
}
export declare class OpenLayersGeocodingControl extends Control implements GeocodingControlBase<OpenLayersGeocodingControlOptions> {
    #private;
    constructor(options?: OpenLayersGeocodingControlOptions);
    /** @internal Not to be called directly */
    setMap(map: OLMap | null): void;
    getOptions(): OpenLayersGeocodingControlOptions;
    setOptions(options: OpenLayersGeocodingControlOptions): void;
    setQuery(value: string): void;
    submitQuery(value: string): void;
    clearMap(): void;
    clearList(): void;
    setReverseMode(reverseActive: boolean): void;
    focus(options?: FocusOptions): void;
    blur(): void;
    on: EventHandlingMethod;
    once: EventHandlingMethod;
    un: EventHandlingMethod;
}
export {};
