/// <reference types="google.maps" />
import { ElementRef, EventEmitter, OnInit } from '@angular/core';
import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
import { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';
import { AddressFormat } from '../../enums/address-format.enum';
import { FsAddressConfig } from '../../interfaces/address-config.interface';
import { FsAddress } from '../../interfaces/address.interface';
import * as i0 from "@angular/core";
export declare class FsAddressAutocompleteComponent implements OnInit, ControlValueAccessor, Validator {
    private _map;
    private _ngZone;
    private _fm;
    private _elementRef;
    private _cdRef;
    static nextId: number;
    format: AddressFormat;
    readonly: boolean;
    showClear: boolean;
    suggestions: boolean;
    set config(value: FsAddressConfig);
    get config(): FsAddressConfig;
    readonly addressChange: EventEmitter<any>;
    readonly addressManual: EventEmitter<string>;
    readonly searchElement: ElementRef;
    readonly autoCompleteRef: MatAutocomplete;
    readonly autocompleteTrigger: MatAutocompleteTrigger;
    id: string;
    inputAddress: FsAddress;
    googleSuggestions: google.maps.places.AutocompleteSuggestion[];
    googlePlace: google.maps.places.Place;
    onChange: (data: any) => void;
    onTouched: () => void;
    focused: boolean;
    readonly autocompleteName: string;
    private _config;
    private _address;
    private _searchText;
    private _disabled;
    private _required;
    private _placeholder;
    private _destroyRef;
    set value(value: FsAddress);
    get value(): FsAddress;
    get disabled(): boolean;
    set disabled(value: boolean);
    get required(): boolean;
    set required(req: boolean);
    get placeholder(): string;
    set placeholder(plh: string);
    get shouldLabelFloat(): boolean;
    get empty(): boolean;
    ngOnInit(): void;
    writeValue(value: FsAddress | null): void;
    onContainerClick(event: MouseEvent): void;
    registerOnChange(fn: (data: any) => void): void;
    registerOnTouched(fn: () => void): void;
    displayWith: (value: FsAddress) => string;
    validate(control: AbstractControl): ValidationErrors | null;
    clear(): void;
    manual(value: string): void;
    private _defaultInputAddress;
    private _listenUserTyping;
    private _clearPredictions;
    private _selectAddress;
    private _placeToAddress;
    private _listenAutocompleteSelection;
    private _initGoogleMap;
    private _getPlaceSuggestions;
    private _registerFocusMonitor;
    static ɵfac: i0.ɵɵFactoryDeclaration<FsAddressAutocompleteComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FsAddressAutocompleteComponent, "fs-address-autocomplete", never, { "format": { "alias": "format"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "suggestions": { "alias": "suggestions"; "required": false; }; "config": { "alias": "config"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, { "addressChange": "addressChange"; "addressManual": "addressManual"; }, never, ["*"], true, never>;
}
