import { LitElement, PropertyValues } from 'lit';
import { default as maplibregl, GeolocateControl, LngLatLike, Map } from 'maplibre-gl';
import { NavigationController, RouteAdapter, TripState } from '@stadiamaps/ferrostar';
/**
 * A MapLibre-based map component specialized for navigation.
 */
export declare class FerrostarMap extends LitElement {
    valhallaEndpointUrl: string;
    styleUrl: string;
    profile: string;
    center: LngLatLike | null;
    pitch: number;
    zoom: number;
    httpClient?: Function;
    locationProvider: any;
    options: object;
    protected _tripState: TripState | null;
    /**
     * Configures the map on first load.
     *
     * Note: This will only be invoked if there is no map set
     * by the time of the first component update.
     * If you provide your own map parameter,
     * configuration is left to the caller.
     * Be sure to set the DOM parent via the slot as well.
     */
    configureMap?: (map: Map) => void;
    onNavigationStart?: (map: Map) => void;
    onNavigationStop?: (map: Map) => void;
    onTripStateChange?: (newState: TripState | null) => void;
    /**
     *  Styles to load which will apply inside the component
     *  (ex: for MapLibre plugins)
     */
    customStyles?: object | null;
    /**
     * Enables voice guidance via the web speech synthesis API.
     * Defaults to false.
     */
    useVoiceGuidance: boolean;
    /**
     * Automatically geolocates the user on map load.
     * Defaults to true.
     */
    geolocateOnLoad: boolean;
    routeAdapter: RouteAdapter | null;
    /**
     * The MapLibre map instance.
     *
     * This will be automatically initialized by default
     * when the web component does its first update cycle.
     * However, you can also explicitly set this value
     * when initializing the web component to provide your own map instance.
     *
     * Note: If you set this property, you MUST also pass the map's container attribute
     * via the slot!
     */
    map: maplibregl.Map | null;
    geolocateControl: GeolocateControl | null;
    navigationController: NavigationController | null;
    simulatedLocationMarker: maplibregl.Marker | null;
    lastSpokenUtteranceId: string | null;
    static styles: import('lit').CSSResult[];
    constructor();
    updated(changedProperties: PropertyValues<this>): void;
    firstUpdated(): void;
    /**
     * Initialize the MapLibre Map control.
     *
     * This is run by default on firstUpdated,
     * but is skipped if the user adds a map of their own.
     */
    initMap(): void;
    getRoutes(initialLocation: any, waypoints: any): Promise<any>;
    startNavigation(route: any, config: any): void;
    stopNavigation(): Promise<void>;
    private tripStateUpdate;
    private onLocationUpdated;
    private clearMap;
    render(): import('lit-html').TemplateResult<1>;
}
//# sourceMappingURL=ferrostar-map.d.ts.map