/// <reference types="@geoscene/core/interfaces.d.ts" />
/// <reference types="../../index.d.ts" />
import { Use } from '@arcgis/lumina/controllers';
import { default as TrackViewModel } from '@geoscene/core/widgets/Track/TrackViewModel.js';
import { JsxNode, PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';
import { GeosceneReferenceElement } from '../../utils/component-utils';

declare const useTrackViewModel: (component: LitElement & Pick<TrackViewModel, never> & import('../../controllers/useViewModel').ViewModelControllerUses<TrackViewModel>) => TrackViewModel;
/**
 * The Track component is a button that when activated continuously animates the Map or Scene
 * to the user's location as the user moves.
 * The view rotates based on device heading, and the default heading symbol will display
 * when speed is greater than zero and the browser provides heading information.
 *
 * This component uses the browser's [Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API) which is only available in [secure contexts](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts), such as HTTPS.
 * Note that localhost is considered "potentially secure" and can be used for easy testing in browsers that support
 * [Window.isSecureContext](https://developer.mozilla.org/en-US/docs/Web/API/isSecureContext#browser_compatibility).
 *
 * **Known limitations**
 *
 * - The heading symbol is not currently supported within a [Scene component](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-scene/).
 *
 * [Read more...](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-track/)
 */
export declare class GeosceneTrack extends LitElement {
    /**
     * If true, the component will not be destroyed automatically when it is
     * disconnected from the document. This is useful when you want to move the
     * component to a different place on the page, or temporarily hide it. If this
     * is set, make sure to call the [destroy](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-track/#destroy) method when you are done to
     * prevent memory leaks.
     *
     * @default false
     */
    autoDestroyDisabled: boolean;
    /**
     * Error that caused the last [track-error](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#event:track-error) event to fire.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#error)
     *
     * @default null
     */
    error: any;
    /**
     * An object used for setting optional position parameters.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#geolocationOptions)
     *
     * @default null
     */
    geolocationOptions: any;
    /**
     * This function provides the ability to override either the
     * [MapView goTo()](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-views-MapView.html#goTo) or
     * [SceneView goTo()](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-views-SceneView.html#goTo) methods.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#goToOverride)
     */
    goToOverride: nullish | __geoscene.GoToOverride;
    /**
     * Indicates whether to navigate the view to the position and scale of the geolocated result.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#goToLocationEnabled)
     *
     * @default false
     */
    goToLocationDisabled: boolean;
    /**
     * The graphic used to show the user's location on the map.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#graphic)
     */
    graphic: __geoscene.Graphic;
    /** @default "compass-north-circle" */
    icon?: string;
    /** The component's default label. */
    label?: string;
    /**
     * Replace localized message strings with your own strings.
     *
     * _**Note**: Individual message keys may change between releases._
     */
    messageOverrides?: typeof this.messages._overrides;
    /** @default "top-left" */
    position: __geoscene.UIPosition;
    /**
     * A function that is used as an expression to evaluate geolocation points, and returns a boolean
     * value.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#positionFilterFunction)
     *
     * @default null
     */
    positionFilterFunction: Function | nullish;
    /**
     * By assigning the `id` attribute of the Map or Scene component to this property, you can position a child component anywhere in the DOM while still maintaining a connection to the Map or Scene.
     *
     * @see [Associate components with a Map or Scene component](https://doc.geoscene.cn/javascript/4.33/programming-patterns/#associate-components-with-a-map-or-scene-component)
     */
    referenceElement?: GeosceneReferenceElement | string;
    /**
     * Indicates whether the component will automatically rotate to the device heading based on
     * the Geolocation APIs [`GeolocationCoordinates.heading`](https://developer.mozilla.org/en-US/docs/Web/API/GeolocationCoordinates/heading)
     * property.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#rotationEnabled)
     *
     * @default false
     */
    rotationDisabled: boolean;
    /**
     * Indicates the scale to set on the view when navigating to the position of the geolocated
     * result, after a location is returned from the [track](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#event-track) event.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#scale)
     *
     * @default null
     */
    scale: number | nullish;
    /**
     * The current state of the component.
     *
     * @name state
     * @instance
     * @type {"disabled" | "ready" | "tracking" | "waiting" | "feature-unsupported" | "error"}
     * @default "disabled"
     */
    readonly state: "ready" | "disabled" | "error" | "tracking" | "waiting" | "feature-unsupported";
    /**
     * Indicates whether new positions are being watched.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Track-TrackViewModel.html#tracking)
     *
     * @default false
     */
    readonly tracking: boolean;
    /** Permanently destroy the component. */
    destroy(): Promise<void>;
    /** Start tracking the user's location. Only start the component on a user gesture such as a click event. */
    start(): Promise<void>;
    /** Stop tracking the user's location. */
    stop(): Promise<void>;
    readonly geosceneComplete: TargetedEvent<this, __geoscene.TrackViewModelTrackEvent>;
    readonly geosceneError: TargetedEvent<this, __geoscene.TrackViewModelTrackErrorEvent>;
    /** Emitted when the value of a property is changed. Use this to listen to changes to properties. */
    readonly geoscenePropertyChange: TargetedEvent<this, {
        name: "state";
    }>;
    /** Emitted when the component associated with a map or scene view is is ready to be interacted with. */
    readonly geosceneReady: TargetedEvent<this, void>;
    private messages: Partial<{
        componentLabel: string;
        startTracking: string;
        stopTracking: string;
        permissionError: string;
        timeoutError: string;
        positionUnavailable: string;
    }> & import('@arcgis/lumina/controllers').T9nMeta<{
        componentLabel: string;
        startTracking: string;
        stopTracking: string;
        permissionError: string;
        timeoutError: string;
        positionUnavailable: string;
    }>;
}
export {};