import { EventEmitter, JSX } from '../../stencil-public-runtime'; import { WalkModeController } from '../../lib/walk-mode/controller'; import { ViewerTeleportMode, WalkModeModel } from '../../lib/walk-mode/model'; /** * The `` allows for additional interactions * intended for walking through a model instead of orbiting a model. */ export declare class ViewerWalkModeTool { /** * The viewer that this component is bound to. This is automatically assigned * if added to the light-dom of a parent viewer element. */ viewer?: HTMLVertexViewerElement; /** * The `WalkModeController` responsible for controlling `KeyBinding`s and excluded * elements, as well as updating the `WalkModeModel` with various configuration * settings. */ controller?: WalkModeController; /** * The `WalkModeModel` responsible for tracking configuration and emitting * events for interaction handlers to respond to. */ model: WalkModeModel; /** * The type of teleportation to perform when clicking. This value is passed through * to a ``'s mode attribute. * * `teleport` - the camera's `position` is moved to the location of the hit result * constrained by the plane represented by the camera's current `position` and `up` * vectors. * * `teleport-and-align` - the camera's `position`, `lookAt`, and `up` vectors are updated * to align to the plane represented by the hit result's position and normal. * * `teleport-toward` - the camera's `position` is moved a fixed distance toward the location of the * hit result constrained by the plane represented by the camera's current `position` and `up` * vectors. * * `undefined` - no teleportation will occur when clicking. * * Defaults to `undefined`. */ teleportMode?: ViewerTeleportMode; /** * Determines whether the interaction handlers for this tool should respond to events. * When set to `true`, the default viewer interaction mode will be overridden to use the * `pivot` camera interaction type, keyboard controls for movement will be added, and * setting the `teleportMode` will enable the tool. * * Defaults to `true`. */ enabled: boolean; /** * Event emitted when the `WalkModeController` associated with this tool changes. */ controllerChanged: EventEmitter; private hostEl?; private interactionHandlerDisposable?; private interactionHandler?; private stateMap; /** * @ignore */ protected componentWillLoad(): void; /** * @ignore */ protected componentDidLoad(): Promise; /** * @ignore */ protected connectedCallback(): void; /** * @ignore */ protected disconnectedCallback(): void; /** * @ignore */ protected handleEnabledChanged(): void; /** * @ignore */ protected handleViewerChanged(): void; /** * @ignore */ protected handleTeleportModeChanged(): void; /** * @ignore */ protected handleControllerChanged(): void; /** * @ignore */ protected handleModelChanged(): void; protected render(): JSX.Element; private setupController; private clearInteractionHandler; private setupInteractionHandler; private ensureTeleportToolConfigured; private updateTeleportTool; private toggleInteractionMode; private setPivotInteractionMode; private resetInteractionMode; }