import { TransferState } from '@angular/platform-browser';
import { ElementRef, NgZone, OnDestroy, EventEmitter, OnChanges, DoCheck, SimpleChanges, QueryList } from '@angular/core';
import DxMap from 'devextreme/ui/map';
import { DxComponent, DxTemplateHost, NestedOptionHost, IterableDifferHelper, WatcherHelper } from 'devextreme-angular/core';
import { DxiCenterComponent } from 'devextreme-angular/ui/nested';
import { DxiMarkerComponent } from 'devextreme-angular/ui/nested';
import { DxiRouteComponent } from 'devextreme-angular/ui/nested';
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/ui/nested";
import * as i2 from "devextreme-angular/core";
import * as i3 from "@angular/platform-browser";
/**
 * The Map is an interactive UI component that displays a geographic map with markers and routes.

 */
export declare class DxMapComponent extends DxComponent implements OnDestroy, OnChanges, DoCheck {
    private _watcherHelper;
    private _idh;
    instance: DxMap;
    /**
     * Specifies the shortcut key that sets focus on the UI component.
    
     */
    get accessKey(): string | undefined;
    set accessKey(value: string | undefined);
    /**
     * Specifies whether the UI component changes its visual state as a result of user interaction.
    
     */
    get activeStateEnabled(): boolean;
    set activeStateEnabled(value: boolean);
    /**
     * Keys to authenticate the component within map providers.
    
     */
    get apiKey(): string | {
        bing?: string;
        google?: string;
        googleStatic?: string;
    };
    set apiKey(value: string | {
        bing?: string;
        google?: string;
        googleStatic?: string;
    });
    /**
     * Specifies whether the UI component automatically adjusts center and zoom property values when adding a new marker or route, or if a new UI component contains markers or routes by default.
    
     */
    get autoAdjust(): boolean;
    set autoAdjust(value: boolean);
    /**
     * An object, a string, or an array specifying which part of the map is displayed at the UI component&apos;s center using coordinates. The UI component can change this value if autoAdjust is enabled.
    
     */
    get center(): string | Array<number | {
        lat?: number;
        lng?: number;
    }>;
    set center(value: string | Array<number | {
        lat?: number;
        lng?: number;
    }>);
    /**
     * Specifies whether or not map UI component controls are available.
    
     */
    get controls(): boolean;
    set controls(value: boolean);
    /**
     * Specifies whether the UI component responds to user interaction.
    
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    /**
     * Specifies the global attributes to be attached to the UI component&apos;s container element.
    
     */
    get elementAttr(): any;
    set elementAttr(value: any);
    /**
     * Specifies whether the UI component can be focused using keyboard navigation.
    
     */
    get focusStateEnabled(): boolean;
    set focusStateEnabled(value: boolean);
    /**
     * Specifies the UI component&apos;s height.
    
     */
    get height(): number | Function | string;
    set height(value: number | Function | string);
    /**
     * Specifies text for a hint that appears when a user pauses on the UI component.
    
     */
    get hint(): string | undefined;
    set hint(value: string | undefined);
    /**
     * Specifies whether the UI component changes its state when a user pauses on it.
    
     */
    get hoverStateEnabled(): boolean;
    set hoverStateEnabled(value: boolean);
    /**
     * A URL pointing to the custom icon to be used for map markers.
    
     */
    get markerIconSrc(): string;
    set markerIconSrc(value: string);
    /**
     * An array of markers displayed on a map.
    
     */
    get markers(): Array<any | {
        iconSrc?: string;
        location?: string | Array<number | {
            lat?: number;
            lng?: number;
        }>;
        onClick?: Function;
        tooltip?: string | {
            isShown?: boolean;
            text?: string;
        };
    }>;
    set markers(value: Array<any | {
        iconSrc?: string;
        location?: string | Array<number | {
            lat?: number;
            lng?: number;
        }>;
        onClick?: Function;
        tooltip?: string | {
            isShown?: boolean;
            text?: string;
        };
    }>);
    /**
     * The name of the current map data provider.
    
     */
    get provider(): string;
    set provider(value: string);
    /**
     * An array of routes shown on the map.
    
     */
    get routes(): Array<any | {
        color?: string;
        locations?: Array<any | {
            lat?: number;
            lng?: number;
        }>;
        mode?: string;
        opacity?: number;
        weight?: number;
    }>;
    set routes(value: Array<any | {
        color?: string;
        locations?: Array<any | {
            lat?: number;
            lng?: number;
        }>;
        mode?: string;
        opacity?: number;
        weight?: number;
    }>);
    /**
     * Switches the UI component to a right-to-left representation.
    
     */
    get rtlEnabled(): boolean;
    set rtlEnabled(value: boolean);
    /**
     * Specifies the number of the element when the Tab key is used for navigating.
    
     */
    get tabIndex(): number;
    set tabIndex(value: number);
    /**
     * The type of a map to display.
    
     */
    get type(): string;
    set type(value: string);
    /**
     * Specifies whether the UI component is visible.
    
     */
    get visible(): boolean;
    set visible(value: boolean);
    /**
     * Specifies the UI component&apos;s width.
    
     */
    get width(): number | Function | string;
    set width(value: number | Function | string);
    /**
     * The map&apos;s zoom level. The UI component can change this value if autoAdjust is enabled.
    
     */
    get zoom(): number;
    set zoom(value: number);
    /**
    
     * A function that is executed when any location on the map is clicked or tapped.
    
    
     */
    onClick: EventEmitter<any>;
    /**
    
     * A function that is executed before the UI component is disposed of.
    
    
     */
    onDisposing: EventEmitter<any>;
    /**
    
     * A function used in JavaScript frameworks to save the UI component instance.
    
    
     */
    onInitialized: EventEmitter<any>;
    /**
    
     * A function that is executed when a marker is created on the map.
    
    
     */
    onMarkerAdded: EventEmitter<any>;
    /**
    
     * A function that is executed when a marker is removed from the map.
    
    
     */
    onMarkerRemoved: EventEmitter<any>;
    /**
    
     * A function that is executed after a UI component property is changed.
    
    
     */
    onOptionChanged: EventEmitter<any>;
    /**
    
     * A function that is executed when the map is ready.
    
    
     */
    onReady: EventEmitter<any>;
    /**
    
     * A function that is executed when a route is created on the map.
    
    
     */
    onRouteAdded: EventEmitter<any>;
    /**
    
     * A function that is executed when a route is removed from the map.
    
    
     */
    onRouteRemoved: EventEmitter<any>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    accessKeyChange: EventEmitter<string | undefined>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    activeStateEnabledChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    apiKeyChange: EventEmitter<string | {
        bing?: string;
        google?: string;
        googleStatic?: string;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    autoAdjustChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    centerChange: EventEmitter<string | Array<number | {
        lat?: number;
        lng?: number;
    }>>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    controlsChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    disabledChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    elementAttrChange: EventEmitter<any>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    focusStateEnabledChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    heightChange: EventEmitter<number | Function | string>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    hintChange: EventEmitter<string | undefined>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    hoverStateEnabledChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    markerIconSrcChange: EventEmitter<string>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    markersChange: EventEmitter<Array<any | {
        iconSrc?: string;
        location?: string | Array<number | {
            lat?: number;
            lng?: number;
        }>;
        onClick?: Function;
        tooltip?: string | {
            isShown?: boolean;
            text?: string;
        };
    }>>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    providerChange: EventEmitter<string>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    routesChange: EventEmitter<Array<any | {
        color?: string;
        locations?: Array<any | {
            lat?: number;
            lng?: number;
        }>;
        mode?: string;
        opacity?: number;
        weight?: number;
    }>>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    rtlEnabledChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    tabIndexChange: EventEmitter<number>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    typeChange: EventEmitter<string>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    visibleChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    widthChange: EventEmitter<number | Function | string>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    zoomChange: EventEmitter<number>;
    get centerChildren(): QueryList<DxiCenterComponent>;
    set centerChildren(value: QueryList<DxiCenterComponent>);
    get markersChildren(): QueryList<DxiMarkerComponent>;
    set markersChildren(value: QueryList<DxiMarkerComponent>);
    get routesChildren(): QueryList<DxiRouteComponent>;
    set routesChildren(value: QueryList<DxiRouteComponent>);
    constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost, _watcherHelper: WatcherHelper, _idh: IterableDifferHelper, optionHost: NestedOptionHost, transferState: TransferState, platformId: any);
    protected _createInstance(element: any, options: any): DxMap;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    setupChanges(prop: string, changes: SimpleChanges): void;
    ngDoCheck(): void;
    _setOption(name: string, value: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxMapComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxMapComponent, "dx-map", never, { "accessKey": "accessKey"; "activeStateEnabled": "activeStateEnabled"; "apiKey": "apiKey"; "autoAdjust": "autoAdjust"; "center": "center"; "controls": "controls"; "disabled": "disabled"; "elementAttr": "elementAttr"; "focusStateEnabled": "focusStateEnabled"; "height": "height"; "hint": "hint"; "hoverStateEnabled": "hoverStateEnabled"; "markerIconSrc": "markerIconSrc"; "markers": "markers"; "provider": "provider"; "routes": "routes"; "rtlEnabled": "rtlEnabled"; "tabIndex": "tabIndex"; "type": "type"; "visible": "visible"; "width": "width"; "zoom": "zoom"; }, { "onClick": "onClick"; "onDisposing": "onDisposing"; "onInitialized": "onInitialized"; "onMarkerAdded": "onMarkerAdded"; "onMarkerRemoved": "onMarkerRemoved"; "onOptionChanged": "onOptionChanged"; "onReady": "onReady"; "onRouteAdded": "onRouteAdded"; "onRouteRemoved": "onRouteRemoved"; "accessKeyChange": "accessKeyChange"; "activeStateEnabledChange": "activeStateEnabledChange"; "apiKeyChange": "apiKeyChange"; "autoAdjustChange": "autoAdjustChange"; "centerChange": "centerChange"; "controlsChange": "controlsChange"; "disabledChange": "disabledChange"; "elementAttrChange": "elementAttrChange"; "focusStateEnabledChange": "focusStateEnabledChange"; "heightChange": "heightChange"; "hintChange": "hintChange"; "hoverStateEnabledChange": "hoverStateEnabledChange"; "markerIconSrcChange": "markerIconSrcChange"; "markersChange": "markersChange"; "providerChange": "providerChange"; "routesChange": "routesChange"; "rtlEnabledChange": "rtlEnabledChange"; "tabIndexChange": "tabIndexChange"; "typeChange": "typeChange"; "visibleChange": "visibleChange"; "widthChange": "widthChange"; "zoomChange": "zoomChange"; }, ["centerChildren", "markersChildren", "routesChildren"], never>;
}
export declare class DxMapModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DxMapModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DxMapModule, [typeof DxMapComponent], [typeof i1.DxoApiKeyModule, typeof i1.DxiCenterModule, typeof i1.DxiMarkerModule, typeof i1.DxiLocationModule, typeof i1.DxoTooltipModule, typeof i1.DxiRouteModule, typeof i2.DxIntegrationModule, typeof i2.DxTemplateModule, typeof i3.BrowserTransferStateModule], [typeof DxMapComponent, typeof i1.DxoApiKeyModule, typeof i1.DxiCenterModule, typeof i1.DxiMarkerModule, typeof i1.DxiLocationModule, typeof i1.DxoTooltipModule, typeof i1.DxiRouteModule, typeof i2.DxTemplateModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DxMapModule>;
}
