///
///
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
import { GermanAddress, Location } from '../interfaces';
import { ScriptLoaderService } from "../services/script-loader.service";
import PlaceResult = google.maps.places.PlaceResult;
import AutocompleteOptions = google.maps.places.AutocompleteOptions;
import * as i0 from "@angular/core";
export declare class MatGoogleMapsAutocompleteDirective implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor {
platformId: string;
apiKey: string;
elemRef: ElementRef;
private cf;
private loaderService;
private ngZone;
inputField: ElementRef;
autocomplete: google.maps.places.Autocomplete | undefined;
address: PlaceResult | string;
country: string | string[];
placeIdOnly?: boolean;
strictBounds?: boolean;
types?: string[];
type?: string;
autoCompleteOptions: AutocompleteOptions;
onChange: EventEmitter;
onAutocompleteSelected: EventEmitter;
onGermanAddressMapped: EventEmitter;
onLocationSelected: EventEmitter;
disabled: boolean;
_value: string;
get value(): string;
set value(value: string);
private onNewPlaceResult;
propagateChange: (_: any) => void;
constructor(platformId: string, apiKey: string, elemRef: ElementRef, cf: ChangeDetectorRef, loaderService: ScriptLoaderService, ngZone: NgZone);
ngOnDestroy(): void;
ngAfterViewInit(): void;
ngOnInit(): void;
validate(fc: FormControl): boolean;
onChangeInputValue(): void;
initGoogleMapsAutocomplete(): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
setDisabledState(isDisabled: boolean): void;
writeValue(obj: any): void;
loadMap(): void;
initMap(): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}