///
import { Observable } from 'rxjs';
import { ElementRef } from '@angular/core';
import { GoogleMapsComponentApiService, GoogleMapsComponentBase, IGoogleMapsEventData } from '@bespunky/angular-google-maps/core';
import { IGoogleMapsInfoWindow } from '@bespunky/angular-google-maps/overlays';
import { DirectionsRequestConfig } from '../abstraction/types/directions-request-config.type';
import { DirectionsPlace } from '../abstraction/types/directions.type';
import { GoogleMapsDirectionsService } from '../services/google-maps-directions.service';
import { GoogleMapsDirections } from '../google-maps-directions';
/**
* Renders directions for the specified waypoints on the map.
*
* Must be placed inside a `` element.
*
* @export
* @class GoogleMapsDirectionsDirective
* @extends {GoogleMapsComponentBase}
*/
export declare class GoogleMapsDirectionsDirective extends GoogleMapsComponentBase {
private directions;
panel: ElementRef | HTMLElement;
routeIndex: number;
options: google.maps.DirectionsRendererOptions;
draggable: boolean;
hideRouteList: boolean;
infoWindow: GoogleMapsComponentBase | IGoogleMapsInfoWindow;
markerOptions: google.maps.MarkerOptions;
polylineOptions: google.maps.PolylineOptions;
preserveViewport: boolean;
suppressBicyclingLayer: boolean;
suppressInfoWindows: boolean;
suppressMarkers: boolean;
suppressPolylines: boolean;
/** This event is fired when the rendered directions change, either when a new DirectionsResult is set or when the user finishes dragging a change to the directions path. */
directionsChanged: Observable;
private requestConfig;
private requestFrom;
private requestTo;
private requestThrough;
constructor(directions: GoogleMapsDirectionsService, api: GoogleMapsComponentApiService, wrapper: GoogleMapsDirections, element: ElementRef);
private initDirectionsFeeds;
/** Sets the routing configuration to use for each directions request. */
set config(config: DirectionsRequestConfig);
/** Sets the origin of the route. Must be used along with `[to]`. If this is provided, `[through]` must not be provided. */
set from(place: DirectionsPlace);
/** Sets the destination of the route. Must be used along with `[from]`. If this is provided, `[through]` must not be provided. */
set to(place: DirectionsPlace);
/** Sets the places the route should go through. This is a more flexible alternative to `from` and `to`. If this is provided, neither `[from]` nor `[to]` should be provided. */
set through(places: DirectionsPlace[]);
}