import { ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { MapsAPILoader } from '@ng-maps/core';
import { NgMapsPlacesConfiguration } from '../configuration';
import * as i0 from "@angular/core";
/**
 * @example
 * <input [mapAutocomplete]='options' (placeResult)='onPlacesResult($event)' />
 */
export declare class NgMapsAutocompleteDirective implements OnInit, OnChanges, OnDestroy {
    private element;
    private mapsAPILoader;
    private defaultConfig;
    private _zone;
    /**
     * Configuration Input described by the AutocompleteOptions Interface
     * https://developers.google.com/maps/documentation/javascript/reference/3.exp/places-widget#AutocompleteOptions
     */
    config?: Partial<google.maps.places.AutocompleteOptions>;
    /**
     * This event is fired on selection of an element from the autocomplete list.
     * The event contains a PlaceResult from GoogleMapsAPI
     * https://developers.google.com/maps/documentation/javascript/reference/3.exp/places-service#PlaceResult
     */
    placeResult: EventEmitter<google.maps.places.PlaceResult>;
    /**
     * This event is fired on selection of an element from the autocomplete list.
     * The event contains a LatLngBounds from GoogleMapsAPI
     * https://developers.google.com/maps/documentation/javascript/reference/3.exp/coordinates#LatLngBounds
     */
    bounds: EventEmitter<google.maps.LatLngBounds>;
    private autocomplete?;
    private readonly subscription;
    constructor(element: ElementRef, mapsAPILoader: MapsAPILoader, defaultConfig: NgMapsPlacesConfiguration, _zone: NgZone);
    /** @internal */
    ngOnInit(): void;
    /** @internal */
    init(): Promise<void>;
    /** @internal */
    ngOnChanges(changes: SimpleChanges): void;
    /** @internal */
    ngOnDestroy(): void;
    /** @internal */
    private addHandler;
    /** @internal */
    private removeHandler;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgMapsAutocompleteDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NgMapsAutocompleteDirective, "[mapAutocomplete]", never, { "config": { "alias": "mapAutocomplete"; "required": false; }; }, { "placeResult": "placeResult"; "bounds": "bounds"; }, never, never, false, never>;
}
