# Beeview Map SDK Types Guide

> Source: `dist/mapxus-visual.module.d.ts`
>
> Companion: [API reference](api-reference.md) for classes, methods, static event keys, and enums exported as runtime values.
>
> This guide lists publicly exported TypeScript types (`interface` / `type` / `enum`) with field meanings, event payloads, initialization-related types, and map units/ranges inferred from JSDoc where available.  
> Generated at: 2026-05-26T10:12:43.640Z

## Alignment



```ts
enum Alignment {
    /**
     * Align to bottom
     */
    Bottom = 0,
    /**
     * Align to bottom left
     */
    BottomLeft = 1,
    /**
     * Align to bottom right
     */
    BottomRight = 2,
    /**
     * Align to center
     */
    Center = 3,
    /**
     * Align to left
     */
    Left = 4,
    /**
     * Align to right
     */
    Right = 5,
    /**
     * Align to top
     */
    Top = 6,
    /**
     * Align to top left
     */
    TopLeft = 7,
    /**
     * Align to top right
     */
    TopRight = 8
}
```

**Enum members:**
- `Bottom` = `0` — Align to bottom
- `BottomLeft` = `1` — Align to bottom left
- `BottomRight` = `2` — Align to bottom right
- `Center` = `3` — Align to center
- `Left` = `4` — Align to left
- `Right` = `5` — Align to right
- `Top` = `6` — Align to top
- `TopLeft` = `7` — Align to top left
- `TopRight` = `8` — Align to top right

## CoverState



```ts
enum CoverState {
    Hidden = 0,
    Loading = 1,
    Visible = 2
}
```

**Enum members:**
- `Hidden` = `0`
- `Loading` = `1`
- `Visible` = `2`

## EdgeDirection



**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
enum EdgeDirection {
    /**
     * Next node in the sequence.
     */
    Next = 0,
    /**
     * Previous node in the sequence.
     */
    Prev = 1,
    /**
     * Step to the left keeping viewing direction.
     */
    StepLeft = 2,
    /**
     * Step to the right keeping viewing direction.
     */
    StepRight = 3,
    /**
     * Step forward keeping viewing direction.
     */
    StepForward = 4,
    /**
     * Step backward keeping viewing direction.
     */
    StepBackward = 5,
    /**
     * Turn 90 degrees counter clockwise.
     */
    TurnLeft = 6,
    /**
     * Turn 90 degrees clockwise.
     */
    TurnRight = 7,
    /**
     * Turn 180 degrees.
     */
    TurnU = 8,
    /**
     * Panorama in general direction.
     */
    Pano = 9,
    /**
     * Looking in roughly the same direction at rougly the same position.
     */
    Similar = 10
}
```

**Enum members:**
- `Next` = `0` — Next node in the sequence.
- `Prev` = `1` — Previous node in the sequence.
- `StepLeft` = `2` — Step to the left keeping viewing direction.
- `StepRight` = `3` — Step to the right keeping viewing direction.
- `StepForward` = `4` — Step forward keeping viewing direction.
- `StepBackward` = `5` — Step backward keeping viewing direction.
- `TurnLeft` = `6` — Turn 90 degrees counter clockwise.
- `TurnRight` = `7` — Turn 90 degrees clockwise.
- `TurnU` = `8` — Turn 180 degrees.
- `Pano` = `9` — Panorama in general direction.
- `Similar` = `10` — Looking in roughly the same direction at rougly the same position.

## IArrowMarkerOptions



```ts
interface IArrowMarkerOptions {
    /**
     * Value indicating if the marker should be interactive or not.
     *
     * @description If the marker is configured to be interactive
     * it will be draggable in the viewer and retrievable with the
     * `getMarkerIdAt` method on the `MarkerComponent`.
     *
     * @default true
     */
    interactive?: boolean;
    /**
     * The color of the marker.
     *
     * @default "#fff"
     */
    color?: number | string;
    /**
     * The opacity of the marker.
     *
     * @default 0.4
     */
    opacity?: number;
    /**
     * The radius of the circle in meters.
     *
     * @default 1
     */
    radius?: number;
}
```

**Fields:**
- `interactive`: `boolean` (optional) — Value indicating if the marker should be interactive or not. — Default: true
- `color`: `number | string` (optional) — The color of the marker. — Default: "#fff"
- `opacity`: `number` (optional) — The opacity of the marker. — Default: 0.4
- `radius`: `number` (optional) — The radius of the circle in meters. — Default: 1

## IAuth



```ts
interface IAuth {
    passVerify: boolean;
    idToken: string;
    errorMessage: string;
}
```

**Fields:**
- `passVerify`: `boolean` (required)
- `idToken`: `string` (required)
- `errorMessage`: `string` (required)

## IBBoxShaderMaterial



```ts
interface IBBoxShaderMaterial extends IShaderMaterial {
    uniforms: {
        [uniform: string]: THREE.IUniform;
        opacity: THREE.IUniform;
        projectorTex: THREE.IUniform;
        bbox: THREE.IUniform;
    };
}
```

**Fields:**
- `uniforms`: `{ [uniform: string]: THREE.IUniform` (required)
- `opacity`: `THREE.IUniform` (required)
- `projectorTex`: `THREE.IUniform` (required)
- `bbox`: `THREE.IUniform` (required)

## IBuildingBase



```ts
interface IBuildingBase {
    id: string;
    name?: object;
}
```

**Fields:**
- `id`: `string` (required)
- `name`: `object` (optional)

## IBuildingInfo



```ts
interface IBuildingInfo {
    country?: string;
    city?: string;
    building?: IBuildingBase;
    floor?: IFloorInfo;
    loop_line?: number;
    tags?: IImageTagInfo[];
}
```

**Fields:**
- `country`: `string` (optional)
- `city`: `string` (optional)
- `building`: `IBuildingBase` (optional)
- `floor`: `IFloorInfo` (optional)
- `loop_line`: `number` (optional)
- `tags`: `IImageTagInfo[]` (optional)

## ICacheConfiguration

**Overview:** Interface for configuration of cache component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface ICacheConfiguration extends IComponentConfiguration {
    /**
     * Cache depth struct.
     */
    depth?: ICacheDepth;
}
```

**Fields:**
- `depth`: `ICacheDepth` (optional) — Cache depth struct.

## ICacheDepth

**Overview:** Interface for configuration of cache depth.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface ICacheDepth {
    /**
     * Cache depth in the sequence directions.
     *
     * @description Max value is 4. Value will be coerced
     * to the interval [0, 4].
     * @default 2
     */
    sequence: number;
    /**
     * Cache depth in the pano direction.
     *
     * @description Max value is 2. Value will be coerced
     * to the interval [0, 2].
     * @default 1
     */
    pano: number;
    /**
     * Cache depth in the step directions.
     *
     * @description Max value is 3. Value will be coerced
     * to the interval [0, 3].
     * @default 1
     */
    step: number;
    /**
     * Cache depth in the turn directions.
     *
     * @description Max value is 1. Value will be coerced
     * to the interval [0, 1].
     * @default 0
     */
    turn: number;
}
```

**Fields:**
- `sequence`: `number` (required) — Cache depth in the sequence directions. — Default: 2
- `pano`: `number` (required) — Cache depth in the pano direction. — Default: 1
- `step`: `number` (required) — Cache depth in the step directions. — Default: 1
- `turn`: `number` (required) — Cache depth in the turn directions. — Default: 0

## ICircleMarkerOptions



```ts
interface ICircleMarkerOptions {
    /**
     * The color of the marker.
     *
     * @default "#fff"
     */
    color?: number | string;
    /**
     * The opacity of the marker.
     *
     * @default 0.4
     */
    opacity?: number;
    /**
     * The radius of the circle in meters.
     *
     * @default 1
     */
    radius?: number;
}
```

**Fields:**
- `color`: `number | string` (optional) — The color of the marker. — Default: "#fff"
- `opacity`: `number` (optional) — The opacity of the marker. — Default: 0.4
- `radius`: `number` (optional) — The radius of the circle in meters. — Default: 1

## IComponentConfiguration



**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface IComponentConfiguration {
    [index: string]: any;
}
```

**Fields:**
- `[index: string]`: `any` (required)

## IComponentOptions

**Overview:** Interface for the component options that can be provided to the viewer.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

**Map units / range:** Could not infer units/range from JSDoc; see field descriptions above.

```ts
interface IComponentOptions {
    /**
     * Display a background if no key is set.
     *
     * @default false
     */
    background?: boolean;
    /**
     * Show indicator for bearing and field of view.
     *
     * @default true
     */
    bearing?: boolean;
    /**
     * Cache images around the current one.
     *
     * @default true
     */
    cache?: boolean | ICacheConfiguration;
    /**
     * Use a cover and avoid loading initial data from Beeview.
     *
     * @default true
     */
    cover?: boolean;
    /**
     * Show debug interface.
     * @default false
     */
    debug?: boolean;
    /**
     * Show spatial direction arrows for navigation.
     *
     * @description Default spatial navigation when there is WebGL support.
     * Requires WebGL support.
     *
     * @default true
     */
    direction?: boolean | IDirectionConfiguration;
    /**
     * Show static images without transitions.
     *
     * @description Fallback for `imagePlane` when WebGL is not supported.
     *
     * @default false
     */
    image?: boolean;
    /**
     * Show image planes in 3D.
     *
     * @description Requires WebGL support.
     *
     * @default true
     */
    imagePlane?: boolean;
    /**
     * Enable use of keyboard commands.
     *
     * @description Requires WebGL support.
     *
     * @default true
     */
    keyboard?: boolean | IKeyboardConfiguration;
    /**
     * Show indication of loading.
     *
     * @default true
     */
    loading?: boolean;
    /**
     * Enable an interface for showing 3D markers in the viewer.
     *
     * @description Requires WebGL support.
     *
     * @default false
     */
    marker?: boolean | IMarkerConfiguration;
    /**
     * Enable mouse and touch interaction for zoom and pan.
     *
     * @description Requires WebGL support.
     *
     * @default true
     */
    mouse?: boolean | IMouseConfiguration;
    /**
     * Show static navigation arrows in the corners.
     *
     * @description Fallback for `direction` and `sequence` when WebGL is not supported.
     *
     * @default false
     */
    navigation?: boolean | INavigationConfiguration;
    /**
     * Show HTML popups over images.
     *
     * @description Requires WebGL support.
     *
     * @default false
     */
    popup?: boolean;
    /**
     * Create a route with a story.
     *
     * @default false
     */
    route?: boolean;
    /**
     * Show sequence related navigation.
     *
     * @description Default sequence navigation when there is WebGL support.
     *
     * @default true
     */
    sequence?: boolean | ISequenceConfiguration;
    /**
     * Show a slider for transitioning between image planes.
     *
     * @description Requires WebGL support.
     *
     * @default false
     */
    slider?: boolean | ISliderConfiguration;
    /**
     * Enable an interface for drawing 2D geometries on top of images.
     *
     * @description Requires WebGL support.
     *
     * @default false
     */
    tag?: boolean | ITagConfiguration;
    /**
     * Display enable path point
     *
     * @default true
     */
    path?: boolean;
}
```

**Fields:**
- `background`: `boolean` (optional) — Display a background if no key is set. — Default: false
- `bearing`: `boolean` (optional) — Show indicator for bearing and field of view. — Default: true
- `cache`: `boolean | ICacheConfiguration` (optional) — Cache images around the current one. — Default: true
- `cover`: `boolean` (optional) — Use a cover and avoid loading initial data from Beeview. — Default: true
- `debug`: `boolean` (optional) — Show debug interface. — Default: false
- `direction`: `boolean | IDirectionConfiguration` (optional) — Show spatial direction arrows for navigation. — Default: true
- `image`: `boolean` (optional) — Show static images without transitions. — Default: false
- `imagePlane`: `boolean` (optional) — Show image planes in 3D. — Default: true
- `keyboard`: `boolean | IKeyboardConfiguration` (optional) — Enable use of keyboard commands. — Default: true
- `loading`: `boolean` (optional) — Show indication of loading. — Default: true
- `marker`: `boolean | IMarkerConfiguration` (optional) — Enable an interface for showing 3D markers in the viewer. — Default: false
- `mouse`: `boolean | IMouseConfiguration` (optional) — Enable mouse and touch interaction for zoom and pan. — Default: true
- `navigation`: `boolean | INavigationConfiguration` (optional) — Show static navigation arrows in the corners. — Default: false
- `popup`: `boolean` (optional) — Show HTML popups over images. — Default: false
- `route`: `boolean` (optional) — Create a route with a story. — Default: false
- `sequence`: `boolean | ISequenceConfiguration` (optional) — Show sequence related navigation. — Default: true
- `slider`: `boolean | ISliderConfiguration` (optional) — Show a slider for transitioning between image planes. — Default: false
- `tag`: `boolean | ITagConfiguration` (optional) — Enable an interface for drawing 2D geometries on top of images. — Default: false
- `path`: `boolean` (optional) — Display enable path point — Default: true

## ICoreNode

**Overview:** Interface that describes the raw core node properties.

**Map units / range:** Unit: degrees

```ts
interface ICoreNode extends IKey {
    /**
     * Original EXIF latitude longitude in WGS84 datum, measured in degrees.
     */
    l: ILatLon;
    /**
     * SfM computed latitude longitude in WGS84 datum, measured in degrees.
     */
    cl?: ILatLon;
    /**
     * Sequence that the node is part of.
     */
    sequence: IKey;
}
```

**Fields:**
- `l`: `ILatLon` (required) — Original EXIF latitude longitude in WGS84 datum, measured in degrees.
- `cl`: `ILatLon` (optional) — SfM computed latitude longitude in WGS84 datum, measured in degrees.
- `sequence`: `IKey` (required) — Sequence that the node is part of.

## ICoverConfiguration



```ts
interface ICoverConfiguration extends IComponentConfiguration {
    key?: string;
    src?: string;
    state?: CoverState;
}
```

**Fields:**
- `key`: `string` (optional)
- `src`: `string` (optional)
- `state`: `CoverState` (optional)

## IDirectionConfiguration

**Overview:** Interface for configuration of direction component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface IDirectionConfiguration extends IComponentConfiguration {
    /**
     * Determines if the sequence arrow appearance should be different from
     * the non sequence arrows.
     *
     * @description Needs to be set to true for the sequence suffixed classes
     * to be applied to the navigation elements. Additional calculations will be
     * performed resulting in a performance cost.
     *
     * @default false
     */
    distinguishSequence?: boolean;
    /**
     * The node key representing the direction arrow to be highlighted.
     *
     * @default undefined
     */
    highlightKey?: string;
    /**
     * The min width of the non transformed container element holding
     * the navigation arrows.
     *
     * @description If the min width is larger than the max width the
     * min width value will be used.
     *
     * @default 260
     */
    minWidth?: number;
    /**
     * The max width of the non transformed container element holding
     * the navigation arrows.
     *
     * @description If the min width is larger than the max width the
     * min width value will be used.
     *
     * @default 460
     */
    maxWidth?: number;
    /**
     * Custom direction points data.
     *
     * @description Array of custom points with coordinates and properties to render
     * direction arrows. When provided, these points override the default edge-based
     * direction arrows.
     *
     * @default undefined
     */
    customPoints?: Array<{
        lngLat: [number, number];
        properties?: Record<string, any>;
    }>;
}
```

**Fields:**
- `distinguishSequence`: `boolean` (optional) — Determines if the sequence arrow appearance should be different from the non sequence arrows. — Default: false
- `highlightKey`: `string` (optional) — The node key representing the direction arrow to be highlighted. — Default: undefined
- `minWidth`: `number` (optional) — The min width of the non transformed container element holding the navigation arrows. — Default: 260
- `maxWidth`: `number` (optional) — The max width of the non transformed container element holding the navigation arrows. — Default: 460
- `customPoints`: `Array<{ lngLat: [number, number]` (optional) — Custom direction points data. — Default: undefined
- `properties`: `Record<string, any>` (optional)

## IDotMarkerOptions



```ts
interface IDotMarkerOptions {
    /**
     * The position offset factor value.
     *
     * @default -0.1
     */
    offsetFactor?: number;
    outerColor?: number | string;
}
```

**Fields:**
- `offsetFactor`: `number` (optional) — The position offset factor value. — Default: -0.1
- `outerColor`: `number | string` (optional)

## IEdge

**Overview:** Interface that describes the properties for an edge from a source node to a destination node.

```ts
interface IEdge {
    /**
     * The key of the source node.
     */
    from: string;
    /**
     * The key of the destination node.
     */
    to: string;
    /**
     * Additional data describing properties of the edge.
     */
    data: IEdgeData;
}
```

**Fields:**
- `from`: `string` (required) — The key of the source node.
- `to`: `string` (required) — The key of the destination node.
- `data`: `IEdgeData` (required) — Additional data describing properties of the edge.

## IEdgeStatus

**Overview:** Interface that indicates edge status.

```ts
interface IEdgeStatus {
    /**
     * Value indicating whether the edges have been cached.
     */
    cached: boolean;
    /**
     * The edges.
     *
     * @description If the cached property is false the edges
     * property will always be an empty array. If the cached
     * property is true, there will exist edges in the the
     * array if the node has edges.
     */
    edges: IEdge[];
}
```

**Fields:**
- `cached`: `boolean` (required) — Value indicating whether the edges have been cached.
- `edges`: `IEdge[]` (required) — The edges.

## IFillNode

**Overview:** Interface that describes the raw filling node properties.

**Map units / range:** Unit: degrees; Unit: meters

```ts
interface IFillNode extends IBuildingInfo {
    /**
     * Scale of atomic reconstruction.
     */
    atomic_scale?: number;
    /**
     * Rotation vector in angle axis representation.
     */
    c_rotation?: number[];
    c_translation?: number[];
    /**
     * Original EXIF compass angle, measured in degrees.
     */
    ca: number;
    /**
     * SfM computed altitude, in meters.
     *
     * @description If SfM has not been run the computed altitude is
     * set to two meters.
     */
    calt?: number;
    /**
     * Timestamp when the image was captured.
     */
    captured_at: number;
    /**
     * SfM computed compass angle, measured in degrees.
     */
    cca?: number;
    /**
     * SfM computed focal length.
     */
    cfocal?: number;
    /**
     * Panorama information for panorama images.
     */
    gpano?: IGPano;
    /**
     * Height of original image, not adjusted for orientation.
     */
    height: number;
    /**
     * SfM connected component key to which image belongs.
     */
    merge_cc?: number;
    /**
     * Version for which SfM was run and image was merged.
     */
    merge_version?: number;
    /**
     * EXIF orientation of original image.
     */
    orientation?: number;
    /**
     * Project the image belongs to.
     */
    project?: IProject;
    /**
     * User who uploaded the image.
     */
    user: IUser;
    /**
     * Width of original image, not adjusted for orientation.
     */
    width: number;
    /**
     * Date of date generation
     */
    date: number;
}
```

**Fields:**
- `atomic_scale`: `number` (optional) — Scale of atomic reconstruction.
- `c_rotation`: `number[]` (optional) — Rotation vector in angle axis representation.
- `c_translation`: `number[]` (optional)
- `ca`: `number` (required) — Original EXIF compass angle, measured in degrees.
- `calt`: `number` (optional) — SfM computed altitude, in meters.
- `captured_at`: `number` (required) — Timestamp when the image was captured.
- `cca`: `number` (optional) — SfM computed compass angle, measured in degrees.
- `cfocal`: `number` (optional) — SfM computed focal length.
- `gpano`: `IGPano` (optional) — Panorama information for panorama images.
- `height`: `number` (required) — Height of original image, not adjusted for orientation.
- `merge_cc`: `number` (optional) — SfM connected component key to which image belongs.
- `merge_version`: `number` (optional) — Version for which SfM was run and image was merged.
- `orientation`: `number` (optional) — EXIF orientation of original image.
- `project`: `IProject` (optional) — Project the image belongs to.
- `user`: `IUser` (required) — User who uploaded the image.
- `width`: `number` (required) — Width of original image, not adjusted for orientation.
- `date`: `number` (required) — Date of date generation

## IFloorInfo



```ts
interface IFloorInfo {
    id: string;
    code: string;
    sequence: number;
}
```

**Fields:**
- `id`: `string` (required)
- `code`: `string` (required)
- `sequence`: `number` (required)

## IFullNode

**Overview:** Interface that describes the raw full image properties.

```ts
interface IFullNode extends ICoreNode, IFillNode {
}
```

**Fields:**
- (no parseable fields)

## IGPano

**Overview:** Interface that describes panorama metadata.

```ts
interface IGPano {
    /**
     * Margin of cropped area to left border in pixels.
     */
    CroppedAreaLeftPixels: number;
    /**
     * Margin of cropped area to top border in pixels.
     */
    CroppedAreaTopPixels: number;
    /**
     * Height of cropped area in pixels.
     */
    CroppedAreaImageHeightPixels: number;
    /**
     * Width of cropped area in pixels.
     */
    CroppedAreaImageWidthPixels: number;
    /**
     * Full height in pixels.
     */
    FullPanoHeightPixels: number;
    /**
     * Full width in pixels.
     */
    FullPanoWidthPixels: number;
}
```

**Fields:**
- `CroppedAreaLeftPixels`: `number` (required) — Margin of cropped area to left border in pixels.
- `CroppedAreaTopPixels`: `number` (required) — Margin of cropped area to top border in pixels.
- `CroppedAreaImageHeightPixels`: `number` (required) — Height of cropped area in pixels.
- `CroppedAreaImageWidthPixels`: `number` (required) — Width of cropped area in pixels.
- `FullPanoHeightPixels`: `number` (required) — Full height in pixels.
- `FullPanoWidthPixels`: `number` (required) — Full width in pixels.

## IImagePlaneConfiguration

**Overview:** Interface for experimental configuration of image plane component.

**Map units / range:** Could not infer units/range from JSDoc; see field descriptions above.

```ts
interface IImagePlaneConfiguration extends IComponentConfiguration {
    /**
     * Experimental setting specifying if image tiling should be used
     * on zoom. Support for this configuration may be
     * changed or removed in a future minor release.
     */
    imageTiling?: boolean;
}
```

**Fields:**
- `imageTiling`: `boolean` (optional) — Experimental setting specifying if image tiling should be used on zoom. Support for this configuration may be changed or removed in a future minor release.

## IImageTagInfo



```ts
interface IImageTagInfo {
    name?: string;
    xmax?: number;
    xmin?: number;
    ymax?: number;
    ymin?: number;
}
```

**Fields:**
- `name`: `string` (optional)
- `xmax`: `number` (optional)
- `xmin`: `number` (optional)
- `ymax`: `number` (optional)
- `ymin`: `number` (optional)

## IInteraction



```ts
interface IInteraction {
    cursor?: InteractionCursor;
    offsetX: number;
    offsetY: number;
    operation: TagOperation;
    tag: Tag;
    vertexIndex?: number;
}
```

**Fields:**
- `cursor`: `InteractionCursor` (optional)
- `offsetX`: `number` (required)
- `offsetY`: `number` (required)
- `operation`: `TagOperation` (required)
- `tag`: `Tag` (required)
- `vertexIndex`: `number` (optional)

## IKey

**Overview:** Interface that describes an object with a unique key.

```ts
interface IKey {
    /**
     * Unique key.
     */
    key: string;
}
```

**Fields:**
- `key`: `string` (required) — Unique key.

## IKeyboardConfiguration

**Overview:** Interface for configuration of keyboard component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface IKeyboardConfiguration extends IComponentConfiguration {
    /**
     * Enable or disable the `KeyHandler`.
     *
     * @default true
     */
    keyZoom?: boolean;
    /**
     * Enable or disable the `KeySequenceNavigationHandler`.
     *
     * @default true
     */
    keySequenceNavigation?: boolean;
    /**
     * Enable or disable the `KeySpatialNavigationHandler`.
     *
     * @default true
     */
    keySpatialNavigation?: boolean;
}
```

**Fields:**
- `keyZoom`: `boolean` (optional) — Enable or disable the `KeyHandler`. — Default: true
- `keySequenceNavigation`: `boolean` (optional) — Enable or disable the `KeySequenceNavigationHandler`. — Default: true
- `keySpatialNavigation`: `boolean` (optional) — Enable or disable the `KeySpatialNavigationHandler`. — Default: true

## ILatLon

**Overview:** Interface that represents a latitude and longitude coordinate, measured in degrees. Coordinates are defined in the WGS84 datum.

**Map units / range:** Unit: degrees

```ts
interface ILatLon {
    /**
     * Latitude, measured in degrees.
     */
    lat: number;
    /**
     * Longitude, measured in degrees.
     */
    lon: number;
}
```

**Fields:**
- `lat`: `number` (required) — Latitude, measured in degrees.
- `lon`: `number` (required) — Longitude, measured in degrees.

## ILatLonAlt



```ts
interface ILatLonAlt extends ILatLon {
    alt: number;
}
```

**Fields:**
- `alt`: `number` (required)

## ILoadStatus

**Overview:** Interface that indicates load status.

```ts
interface ILoadStatus {
    /**
     * Number of loaded bytes.
     */
    loaded: number;
    /**
     * Total number of bytes to load.
     */
    total: number;
}
```

**Fields:**
- `loaded`: `number` (required) — Number of loaded bytes.
- `total`: `number` (required) — Total number of bytes to load.

## IMarkerConfiguration

**Overview:** Interface for configuration of marker component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface IMarkerConfiguration extends IComponentConfiguration {
    /**
     * The size of the bounding box for which markers will be visible.
     *
     * @description Provided values will be clamped to the [1, 200]
     * interval.
     *
     * @default 100
     */
    visibleBBoxSize?: number;
}
```

**Fields:**
- `visibleBBoxSize`: `number` (optional) — The size of the bounding box for which markers will be visible. — Default: 100

## IMarkerEvent



**Tags:** Event payload (listener callback argument)

```ts
interface IMarkerEvent {
    /**
     * The marker that was affected by the event.
     */
    marker: Marker;
    /**
     * The marker component object that fired the event.
     */
    target: MarkerComponent;
    /**
     * The event type.
     */
    type: string;
}
```

**Fields:**
- `marker`: `Marker` (required) — The marker that was affected by the event.
- `target`: `MarkerComponent` (required) — The marker component object that fired the event.
- `type`: `string` (required) — The event type.

## IMesh

**Overview:** Interface that describes SfM triangulated meshes.

```ts
interface IMesh {
    /**
     * Flattened array of faces for the mesh. Each face consist
     * three vertex indices.
     */
    faces: number[];
    /**
     * Flattened array of vertices for the mesh. Each vertex
     * consists of X, Y and Z coordinates in the camera frame.
     */
    vertices: number[];
}
```

**Fields:**
- `faces`: `number[]` (required) — Flattened array of faces for the mesh. Each face consist three vertex indices.
- `vertices`: `number[]` (required) — Flattened array of vertices for the mesh. Each vertex consists of X, Y and Z coordinates in the camera frame.

## IMouseClaim



```ts
interface IMouseClaim {
    name: string;
    zindex: number;
}
```

**Fields:**
- `name`: `string` (required)
- `zindex`: `number` (required)

## IMouseConfiguration

**Overview:** Interface for configuration of mouse component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface IMouseConfiguration extends IComponentConfiguration {
    /**
     * Enable or disable the `DoubleClickZoomHandler`.
     *
     * @default true
     */
    doubleClickZoom?: boolean;
    /**
     * Enable or disable the `DragPanHandler`.
     *
     * @default true
     */
    dragPan?: boolean;
    /**
     * Enable or disable the `ScrollZoomHandler`.
     *
     * @default true
     */
    scrollZoom?: boolean;
    /**
     * Enable or disable the `TouchZoomHandler`.
     *
     * @default true
     */
    touchZoom?: boolean;
}
```

**Fields:**
- `doubleClickZoom`: `boolean` (optional) — Enable or disable the `DoubleClickZoomHandler`. — Default: true
- `dragPan`: `boolean` (optional) — Enable or disable the `DragPanHandler`. — Default: true
- `scrollZoom`: `boolean` (optional) — Enable or disable the `ScrollZoomHandler`. — Default: true
- `touchZoom`: `boolean` (optional) — Enable or disable the `TouchZoomHandler`. — Default: true

## IMouseDeferPixels



```ts
interface IMouseDeferPixels {
    name: string;
    deferPixels: number;
}
```

**Fields:**
- `name`: `string` (required)
- `deferPixels`: `number` (required)

## INavigationConfiguration

**Overview:** Interface for configuration of navigation component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface INavigationConfiguration extends IComponentConfiguration {
    /**
     * Enable or disable the sequence arrows.
     *
     * @default true
     */
    sequence?: boolean;
    /**
     * Enable or disable the spatial arrows.
     *
     * @default true
     */
    spatial?: boolean;
}
```

**Fields:**
- `sequence`: `boolean` (optional) — Enable or disable the sequence arrows. — Default: true
- `spatial`: `boolean` (optional) — Enable or disable the spatial arrows. — Default: true

## IOutdoor

**Overview:** Interface that describes the outdoor properties.

```ts
interface IOutdoor extends IKey {
    outdoorImages: IPathNode[];
}
```

**Fields:**
- `outdoorImages`: `IPathNode[]` (required)

## IOutlineCreateTagOptions

**Overview:** Interface for the options that define the behavior and appearance of the outline create tag.

```ts
interface IOutlineCreateTagOptions {
    /**
     * Text color as hexadecimal number.
     * @default 0xFFFFFF
     */
    color?: number;
}
```

**Fields:**
- `color`: `number` (optional) — Text color as hexadecimal number. — Default: 0xFFFFFF

## IOutlineTagOptions

**Overview:** Interface for the options that define the behavior and appearance of the outline tag.

```ts
interface IOutlineTagOptions {
    /**
     * Indicate whether the tag geometry should be editable.
     * @default false
     */
    editable?: boolean;
    /**
     * Color for the interior fill as a hexadecimal number.
     * @default 0xFFFFFF
     */
    fillColor?: number;
    /**
     * Opacity of the interior fill between 0 and 1.
     * @default 0.3
     */
    fillOpacity?: number;
    /**
     * A string referencing the sprite data property to pull from.
     */
    icon?: string;
    /**
     * Value determining how the icon will float with respect to its anchor
     * position when rendering.
     *
     * @default {Alignment.Center}
     */
    iconFloat?: Alignment;
    /**
     * Number representing the index for where to show the icon or
     * text for a rectangle geometry.
     *
     * @description The default index corresponds to the bottom right corner.
     *
     * @default 3
     */
    iconIndex?: number;
    /**
     * Determines whether vertices should be indicated by points
     * when tag is editable.
     *
     * @default true
     */
    indicateVertices?: boolean;
    /**
     * Color for the edge lines as a hexadecimal number.
     * @default 0xFFFFFF
     */
    lineColor?: number;
    /**
     * Opacity of the edge lines on [0, 1].
     * @default 1
     */
    lineOpacity?: number;
    /**
     * Line width in pixels.
     * @default 1
     */
    lineWidth?: number;
    /**
     * Text shown as label if no icon is provided.
     */
    text?: string;
    /**
     * Text color as hexadecimal number.
     * @default 0xFFFFFF
     */
    textColor?: number;
}
```

**Fields:**
- `editable`: `boolean` (optional) — Indicate whether the tag geometry should be editable. — Default: false
- `fillColor`: `number` (optional) — Color for the interior fill as a hexadecimal number. — Default: 0xFFFFFF
- `fillOpacity`: `number` (optional) — Opacity of the interior fill between 0 and 1. — Default: 0.3
- `icon`: `string` (optional) — A string referencing the sprite data property to pull from.
- `iconFloat`: `Alignment` (optional) — Value determining how the icon will float with respect to its anchor position when rendering. — Default: {Alignment.Center}
- `iconIndex`: `number` (optional) — Number representing the index for where to show the icon or text for a rectangle geometry. — Default: 3
- `indicateVertices`: `boolean` (optional) — Determines whether vertices should be indicated by points when tag is editable. — Default: true
- `lineColor`: `number` (optional) — Color for the edge lines as a hexadecimal number. — Default: 0xFFFFFF
- `lineOpacity`: `number` (optional) — Opacity of the edge lines on [0, 1]. — Default: 1
- `lineWidth`: `number` (optional) — Line width in pixels. — Default: 1
- `text`: `string` (optional) — Text shown as label if no icon is provided.
- `textColor`: `number` (optional) — Text color as hexadecimal number. — Default: 0xFFFFFF

## IPathNode

**Overview:** Interface that describes the raw filling node properties.

```ts
interface IPathNode extends IKey, IFullNode {
    /**
     * floor info
     */
    floor: IFloorInfo;
    /**
     * building info
     */
    building?: IBuildingBase;
    /**
     * sequence visibility from editor setting
     */
    visibility?: string;
    /**
     * resource file name in the cloud
     */
    filename: string;
    /**
     * node parent
     */
    sequence: IKey & string;
}
```

**Fields:**
- `floor`: `IFloorInfo` (required) — floor info
- `building`: `IBuildingBase` (optional) — building info
- `visibility`: `string` (optional) — sequence visibility from editor setting
- `filename`: `string` (required) — resource file name in the cloud
- `sequence`: `IKey & string` (required) — node parent

## IPinch



**Map units / range:** Unit: pixels

```ts
interface IPinch {
    /**
     * X client coordinate for center of pinch.
     */
    clientX: number;
    /**
     * Y client coordinate for center of pinch.
     */
    clientY: number;
    /**
     * X page coordinate for center of pinch.
     */
    pageX: number;
    /**
     * Y page coordinate for center of pinch.
     */
    pageY: number;
    /**
     * X screen coordinate for center of pinch.
     */
    screenX: number;
    /**
     * Y screen coordinate for center of pinch.
     */
    screenY: number;
    /**
     * Distance change in X direction between touches
     * compared to previous event.
     */
    changeX: number;
    /**
     * Distance change in Y direction between touches
     * compared to previous event.
     */
    changeY: number;
    /**
     * Pixel distance between touches.
     */
    distance: number;
    /**
     * Change in pixel distance between touches compared
     * to previous event.
     */
    distanceChange: number;
    /**
     * Distance in X direction between touches.
     */
    distanceX: number;
    /**
     * Distance in Y direction between touches.
     */
    distanceY: number;
    /**
     * Original touch event.
     */
    originalEvent: TouchEvent;
    /**
     * First touch.
     */
    touch1: Touch;
    /**
     * Second touch.
     */
    touch2: Touch;
}
```

**Fields:**
- `clientX`: `number` (required) — X client coordinate for center of pinch.
- `clientY`: `number` (required) — Y client coordinate for center of pinch.
- `pageX`: `number` (required) — X page coordinate for center of pinch.
- `pageY`: `number` (required) — Y page coordinate for center of pinch.
- `screenX`: `number` (required) — X screen coordinate for center of pinch.
- `screenY`: `number` (required) — Y screen coordinate for center of pinch.
- `changeX`: `number` (required) — Distance change in X direction between touches compared to previous event.
- `changeY`: `number` (required) — Distance change in Y direction between touches compared to previous event.
- `distance`: `number` (required) — Pixel distance between touches.
- `distanceChange`: `number` (required) — Change in pixel distance between touches compared to previous event.
- `distanceX`: `number` (required) — Distance in X direction between touches.
- `distanceY`: `number` (required) — Distance in Y direction between touches.
- `originalEvent`: `TouchEvent` (required) — Original touch event.
- `touch1`: `Touch` (required) — First touch.
- `touch2`: `Touch` (required) — Second touch.

## IPopupOffset

**Overview:** Interface for the popup offset with respect to its anchor point.

```ts
interface IPopupOffset {
    bottom: number[];
    bottomLeft: number[];
    bottomRight: number[];
    center: number[];
    left: number[];
    right: number[];
    top: number[];
    topLeft: number[];
    topRight: number[];
}
```

**Fields:**
- `bottom`: `number[]` (required)
- `bottomLeft`: `number[]` (required)
- `bottomRight`: `number[]` (required)
- `center`: `number[]` (required)
- `left`: `number[]` (required)
- `right`: `number[]` (required)
- `top`: `number[]` (required)
- `topLeft`: `number[]` (required)
- `topRight`: `number[]` (required)

## IPopupOptions

**Overview:** Interface for the options that define behavior and appearance of a popup.

**Map units / range:** Unit: pixels

```ts
interface IPopupOptions {
    /**
     * Specify if the popup should capture pointer events.
     *
     * @description If the popup is specifed to not capture
     * pointer events the provided content can still override
     * this behavior for the individual content HTML elements
     * by specifying the appropriate CSS.
     *
     * @default true
     */
    capturePointer?: boolean;
    /**
     * Specify that the popup should not have any tooltip
     * like visuals around the provided content.
     *
     * @default false
     */
    clean?: boolean;
    /**
     * The direction in which the popup floats with respect to the
     * anchor point or points. If no value is supplied the popup
     * will change float automatically based on the its position
     * in the viewport so that as much of its area as possible is
     * visible.
     *
     * @description For automatic floating (undefined) the popup
     * will float in eight directions around a point or a position
     * in a rect. When a rectangle is set without a position option
     * specified, the popup will float outward from the rectangle
     * center based on the side it is currently rendered in. The
     * default floating direction is to the bottom for both points
     * and rectangles.
     *
     * @default undefined
     */
    float?: Alignment;
    /**
     * A pixel offset applied to the popup's location specfied as:
     *
     * - A single number in pixels in the float direction that the popup
     * will be translated with respect to the current anchor point.
     *
     * - An object of number arrays specifing an offset for
     * each float direction. Negative offsets indicate left and up.
     *
     * @default 0
     */
    offset?: number | IPopupOffset;
    /**
     * Opacity of the popup visuals.
     *
     * @default 1
     */
    opacity?: number;
    /**
     * The popup position in a rectangle (does not apply to points).
     * When not set the popup will change position automatically
     * based on the viewport so that as much of it as possible is
     * visible.
     *
     * @default undefined
     */
    position?: Alignment;
}
```

**Fields:**
- `capturePointer`: `boolean` (optional) — Specify if the popup should capture pointer events. — Default: true
- `clean`: `boolean` (optional) — Specify that the popup should not have any tooltip like visuals around the provided content. — Default: false
- `float`: `Alignment` (optional) — The direction in which the popup floats with respect to the anchor point or points. If no value is supplied the popup will change float automatically based on the its position in the viewport so that as much of its area as possible is visible. — Default: undefined
- `offset`: `number | IPopupOffset` (optional) — A pixel offset applied to the popup's location specfied as: - A single number in pixels in the float direction that the popup will be translated with respect to the current anchor point. - An object of number arrays specifing an offset for each float direction. Negative offsets indicate left and up. — Default: 0
- `opacity`: `number` (optional) — Opacity of the popup visuals. — Default: 1
- `position`: `Alignment` (optional) — The popup position in a rectangle (does not apply to points). When not set the popup will change position automatically based on the viewport so that as much of it as possible is visible. — Default: undefined

## IProject

**Overview:** Interface that describes the raw image project properties.

```ts
interface IProject extends IKey {
}
```

**Fields:**
- (no parseable fields)

## IQueryBuilding

**Overview:** Interface that describes the graphql query building.

```ts
interface IQueryBuilding {
    /**
     * building key
     */
    key: string;
    /**
     * floor info
     */
    floor?: IFloorInfo;
    /**
     * building info
     */
    building?: IBuildingBase;
    /**
     * Date of date generation
     */
    date?: number;
    /**
     * image list info
     */
    images: IPathNode[];
}
```

**Fields:**
- `key`: `string` (required) — building key
- `floor`: `IFloorInfo` (optional) — floor info
- `building`: `IBuildingBase` (optional) — building info
- `date`: `number` (optional) — Date of date generation
- `images`: `IPathNode[]` (required) — image list info

## IQueryFloor

**Overview:** Interface that describes the graphql query floor.

```ts
interface IQueryFloor {
    /**
     * sequence key
     */
    key: string;
    /**
     * image list info
     */
    images: IPathNode[];
}
```

**Fields:**
- `key`: `string` (required) — sequence key
- `images`: `IPathNode[]` (required) — image list info

## IRibbonMarkerOptions



```ts
interface IRibbonMarkerOptions {
    /**
     * The color of the ribbon.
     *
     * @default 0x4A90D9
     */
    color?: number | string;
    /**
     * The color of the chevron arrows.
     *
     * @default 0xFFFFFF
     */
    chevronColor?: number | string;
    /**
     * The opacity of the ribbon.
     *
     * @default 0.85
     */
    opacity?: number;
    /**
     * The width of the ribbon in meters.
     *
     * @default 1.5
     */
    width?: number;
    /**
     * The maximum length of the ribbon in meters.
     * If the distance to the target exceeds this value,
     * the ribbon will be clamped to this length.
     *
     * @default 15
     */
    maxLength?: number;
    /**
     * Whether to animate the chevrons scrolling
     * along the ribbon direction.
     *
     * @default true
     */
    animated?: boolean;
    /**
     * The speed of the chevron scroll animation.
     *
     * @default 2.0
     */
    animationSpeed?: number;
}
```

**Fields:**
- `color`: `number | string` (optional) — The color of the ribbon. — Default: 0x4A90D9
- `chevronColor`: `number | string` (optional) — The color of the chevron arrows. — Default: 0xFFFFFF
- `opacity`: `number` (optional) — The opacity of the ribbon. — Default: 0.85
- `width`: `number` (optional) — The width of the ribbon in meters. — Default: 1.5
- `maxLength`: `number` (optional) — The maximum length of the ribbon in meters. If the distance to the target exceeds this value, the ribbon will be clamped to this length. — Default: 15
- `animated`: `boolean` (optional) — Whether to animate the chevrons scrolling along the ribbon direction. — Default: true
- `animationSpeed`: `number` (optional) — The speed of the chevron scroll animation. — Default: 2.0

## IRouteConfiguration



```ts
interface IRouteConfiguration extends IComponentConfiguration {
    paths?: IRoutePath[];
    playing?: boolean;
}
```

**Fields:**
- `paths`: `IRoutePath[]` (optional)
- `playing`: `boolean` (optional)

## IRouteInfoKey



```ts
interface IRouteInfoKey {
    key: string;
    description: string;
}
```

**Fields:**
- `key`: `string` (required)
- `description`: `string` (required)

## IRoutePath



```ts
interface IRoutePath {
    sequenceKey: string;
    startKey: string;
    stopKey: string;
    infoKeys: IRouteInfoKey[];
}
```

**Fields:**
- `sequenceKey`: `string` (required)
- `startKey`: `string` (required)
- `stopKey`: `string` (required)
- `infoKeys`: `IRouteInfoKey[]` (required)

## ISequence

**Overview:** Interface that describes the raw image sequence properties.

```ts
interface ISequence extends IKey, IBuildingInfo {
    /**
     * The ordered image keys of the sequence.
     */
    keys: string[];
}
```

**Fields:**
- `keys`: `string[]` (required) — The ordered image keys of the sequence.

## ISequenceConfiguration

**Overview:** Interface for configuration of sequence component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface ISequenceConfiguration extends IComponentConfiguration {
    /**
     * Set the direction to follow when playing.
     *
     * @default EdgeDirection.Next
     */
    direction?: EdgeDirection;
    /**
     * The node key representing the direction arrow to be highlighted.
     *
     * @description When set to null no direction will be highlighted.
     *
     * @default undefined
     */
    highlightKey?: string;
    /**
     * The max width of the sequence container.
     *
     * @description If the min width is larger than the max width the
     * min width value will be used.
     * @default 117
     */
    maxWidth?: number;
    /**
     * The min width of the sequence container.
     *
     * @description If the min width is larger than the max width the
     * min width value will be used.
     * @default 70
     */
    minWidth?: number;
    /**
     * Indicating wheter the component is playing.
     *
     * @default false
     */
    playing?: boolean;
    /**
     * Determine if the component should be visible.
     *
     * @default true
     */
    visible?: boolean;
}
```

**Fields:**
- `direction`: `EdgeDirection` (optional) — Set the direction to follow when playing. — Default: EdgeDirection.Next
- `highlightKey`: `string` (optional) — The node key representing the direction arrow to be highlighted. — Default: undefined
- `maxWidth`: `number` (optional) — The max width of the sequence container. — Default: 117
- `minWidth`: `number` (optional) — The min width of the sequence container. — Default: 70
- `playing`: `boolean` (optional) — Indicating wheter the component is playing. — Default: false
- `visible`: `boolean` (optional) — Determine if the component should be visible. — Default: true

## IShader



```ts
interface IShader {
    fragment: string;
    vertex: string;
}
```

**Fields:**
- `fragment`: `string` (required)
- `vertex`: `string` (required)

## IShaderMaterial



```ts
interface IShaderMaterial extends THREE$1.ShaderMaterial {
    uniforms: {
        [uniform: string]: THREE$1.IUniform;
        opacity: THREE$1.IUniform;
        projectorTex: THREE$1.IUniform;
    };
}
```

**Fields:**
- `uniforms`: `{ [uniform: string]: THREE$1.IUniform` (required)
- `opacity`: `THREE$1.IUniform` (required)
- `projectorTex`: `THREE$1.IUniform` (required)

## ISimpleMarkerOptions



```ts
interface ISimpleMarkerOptions {
    /**
     * The color of the ball inside the marker.
     *
     * @default "#f00"
     */
    ballColor?: number | string;
    /**
     * The opacity of the ball inside the marker.
     *
     * @default 0.8
     */
    ballOpacity?: number;
    /**
     * The color of the ice creame shape.
     *
     * @default "#f00"
     */
    color?: number | string;
    /**
     * Value indicating if the marker should be interactive or not.
     *
     * @description If the marker is configured to be interactive
     * it will be draggable in the viewer and retrievable with the
     * `getMarkerIdAt` method on the `MarkerComponent`.
     *
     * @default false
     */
    interactive?: boolean;
    /**
     * The opacity of the ice creame shape.
     *
     * @default 0.4
     */
    opacity?: number;
    /**
     * The radius of the ice cream shape in meters.
     *
     * @default 1
     */
    radius?: number;
}
```

**Fields:**
- `ballColor`: `number | string` (optional) — The color of the ball inside the marker. — Default: "#f00"
- `ballOpacity`: `number` (optional) — The opacity of the ball inside the marker. — Default: 0.8
- `color`: `number | string` (optional) — The color of the ice creame shape. — Default: "#f00"
- `interactive`: `boolean` (optional) — Value indicating if the marker should be interactive or not. — Default: false
- `opacity`: `number` (optional) — The opacity of the ice creame shape. — Default: 0.4
- `radius`: `number` (optional) — The radius of the ice cream shape in meters. — Default: 1

## ISize



```ts
interface ISize {
    height: number;
    width: number;
}
```

**Fields:**
- `height`: `number` (required)
- `width`: `number` (required)

## ISliderConfiguration

**Overview:** Interface for configuration of slider component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface ISliderConfiguration extends IComponentConfiguration {
    /**
     * Initial position of the slider on the interval [0, 1].
     *
     * @default 1
     */
    initialPosition?: number;
    /**
     * Slider keys.
     */
    keys?: ISliderKeys;
    /**
     * Value indicating whether the slider should be visible.
     *
     * @default true
     */
    sliderVisible?: boolean;
}
```

**Fields:**
- `initialPosition`: `number` (optional) — Initial position of the slider on the interval [0, 1]. — Default: 1
- `keys`: `ISliderKeys` (optional) — Slider keys.
- `sliderVisible`: `boolean` (optional) — Value indicating whether the slider should be visible. — Default: true

## ISliderKeys

**Overview:** Interface for configuration of slider keys.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface ISliderKeys {
    /**
     * Key for the image plane in the background.
     */
    background: string;
    /**
     * Key for the image plane in the foreground.
     */
    foreground: string;
}
```

**Fields:**
- `background`: `string` (required) — Key for the image plane in the background.
- `foreground`: `string` (required) — Key for the image plane in the foreground.

## ISpotTagOptions

**Overview:** Interface for the options that define the behavior and appearance of the spot tag.

```ts
interface ISpotTagOptions {
    /**
     * Color for the spot specified as a hexadecimal number.
     * @default 0xFFFFFF
     */
    color?: number;
    /**
     * Indicate whether the tag geometry should be editable.
     * @default false
     */
    editable?: boolean;
    /**
     * A string referencing the sprite data property to pull from.
     */
    icon?: string;
    /**
     * Text shown as label if no icon is provided.
     */
    text?: string;
    /**
     * Text color as hexadecimal number.
     * @default 0xFFFFFF
     */
    textColor?: number;
}
```

**Fields:**
- `color`: `number` (optional) — Color for the spot specified as a hexadecimal number. — Default: 0xFFFFFF
- `editable`: `boolean` (optional) — Indicate whether the tag geometry should be editable. — Default: false
- `icon`: `string` (optional) — A string referencing the sprite data property to pull from.
- `text`: `string` (optional) — Text shown as label if no icon is provided.
- `textColor`: `number` (optional) — Text color as hexadecimal number. — Default: 0xFFFFFF

## ISpriteAtlas



```ts
interface ISpriteAtlas {
    loaded: boolean;
    getGLSprite(name: string): THREE$1.Object3D;
    getDOMSprite(name: string, float?: Alignment): vd.VNode;
}
```

**Fields:**
- `loaded`: `boolean` (required)

## ITagConfiguration

**Overview:** Interface for configuration of tag component.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface ITagConfiguration extends IComponentConfiguration {
    /**
     * The color of vertices and edges for tags that
     * are being created.
     *
     * @default 0xFFFFFF
     */
    createColor?: number;
    /**
     * The interaction mode of the tag component.
     *
     * @default TagMode.Default
     */
    mode?: TagMode;
}
```

**Fields:**
- `createColor`: `number` (optional) — The color of vertices and edges for tags that are being created. — Default: 0xFFFFFF
- `mode`: `TagMode` (optional) — The interaction mode of the tag component. — Default: TagMode.Default

## IUnprojection



```ts
interface IUnprojection {
    basicPoint: number[];
    latLon: ILatLon;
    pixelPoint: number[];
}
```

**Fields:**
- `basicPoint`: `number[]` (required)
- `latLon`: `ILatLon` (required)
- `pixelPoint`: `number[]` (required)

## IUser

**Overview:** Interface that describes the raw image user properties.

```ts
interface IUser extends IKey {
    /**
     * The username of the user.
     */
    username: string;
}
```

**Fields:**
- `username`: `string` (required) — The username of the user.

## IViewerMouseEvent



**Tags:** Event payload (listener callback argument)

**Map units / range:** Unit: pixels

```ts
interface IViewerMouseEvent {
    /**
     * The basic coordinates in the current photo of the mouse
     * event target.
     *
     * @description In some situations mouse events can occur outside of
     * the border of a photo. In that case the basic coordinates will be
     * `null`.
     *
     * Basic coordinates are 2D coordinates on the [0, 1] interval
     * and has the origin point, (0, 0), at the top left corner and the
     * maximum value, (1, 1), at the bottom right corner of the original
     * photo.
     */
    basicPoint: number[];
    /**
     * The geographic location in the viewer of the mouse event target.
     *
     * @description In some situations the viewer can not determine a valid
     * geographic location for the mouse event target. In that case the
     * geographic coordinates will be `null`.
     */
    latLon: ILatLon;
    /**
     * The pixel coordinates of the mouse event target, relative to
     * the viewer and measured from the top left corner.
     */
    pixelPoint: number[];
    /**
     * The original event that triggered the viewer event.
     */
    originalEvent: MouseEvent;
    /**
     * The viewer object that fired the event.
     */
    target: Viewer;
    /**
     * The event type.
     */
    type: string;
}
```

**Fields:**
- `basicPoint`: `number[]` (required) — The basic coordinates in the current photo of the mouse event target.
- `latLon`: `ILatLon` (required) — The geographic location in the viewer of the mouse event target.
- `pixelPoint`: `number[]` (required) — The pixel coordinates of the mouse event target, relative to the viewer and measured from the top left corner.
- `originalEvent`: `MouseEvent` (required) — The original event that triggered the viewer event.
- `target`: `Viewer` (required) — The viewer object that fired the event.
- `type`: `string` (required) — The event type.

## IViewerOptions

**Overview:** Interface for the options that can be provided to the viewer.

**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
interface IViewerOptions {
    /**
     * Internal note:
     * Visual backend environment selection uses hidden key `__bvVisualEnv`
     * for controlled integration/testing and is intentionally not part of
     * the public Viewer options contract.
     */
    /**
     * IOS auth bundle id, uniq key
     */
    bundleId?: string;
    /**
     * ANDROID auth package name, uniq key
     */
    packageName?: string;
    /**
     * ANDROID auth sha1, uniq key
     */
    sha1?: string;
    /**
     * web container id
     */
    container: string;
    /**
     * node image id
     */
    imageId?: string;
    /**
     * Default size of the thumbnail used in the viewer
     * @default {ImageSize.Size640}
     */
    baseImageSize?: ImageSize;
    /**
     * Default size of the thumbnail used for panoramas in the viewer
     * @default {ImageSize.Size2048}
     */
    basePanoramaSize?: ImageSize;
    /**
     * The component options.
     */
    component?: IComponentOptions;
    /**
     * The max size of an image shown in the viewer
     * will be used when user pauses.
     * @default {ImageSize.Size2048}
     */
    maxImageSize?: ImageSize;
    /**
     * The render mode in the viewer.
     * @default {RenderMode.Fill}
     */
    renderMode?: RenderMode;
    /**
     * A base URL for retrieving a png sprite image and json metadata file.
     * File name extensions will be automatically appended.
     */
    sprite?: string;
}
```

**Fields:**
- `packageName`: `string` (optional) — ANDROID auth package name, uniq key
- `sha1`: `string` (optional) — ANDROID auth sha1, uniq key
- `container`: `string` (required) — web container id
- `imageId`: `string` (optional) — node image id
- `baseImageSize`: `ImageSize` (optional) — Default size of the thumbnail used in the viewer — Default: {ImageSize.Size640}
- `basePanoramaSize`: `ImageSize` (optional) — Default size of the thumbnail used for panoramas in the viewer — Default: {ImageSize.Size2048}
- `component`: `IComponentOptions` (optional) — The component options.
- `maxImageSize`: `ImageSize` (optional) — The max size of an image shown in the viewer will be used when user pauses. — Default: {ImageSize.Size2048}
- `renderMode`: `RenderMode` (optional) — The render mode in the viewer. — Default: {RenderMode.Fill}
- `sprite`: `string` (optional) — A base URL for retrieving a png sprite image and json metadata file. File name extensions will be automatically appended.

## ImageSize



**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
enum ImageSize {
    /**
     * 320 pixels image size
     */
    Size320 = 320,
    /**
     * 640 pixels image size
     */
    Size640 = 640,
    /**
     * 1024 pixels image size
     */
    Size1024 = 1024,
    /**
     * 2048 pixels image size
     */
    Size2048 = 2048
}
```

**Enum members:**
- `Size320` = `320` — 320 pixels image size
- `Size640` = `640` — 640 pixels image size
- `Size1024` = `1024` — 1024 pixels image size
- `Size2048` = `2048` — 2048 pixels image size

## InteractionCursor



```ts
type InteractionCursor = "crosshair" | "move" | "nesw-resize" | "nwse-resize";
```

**Union members:**
- `crosshair`
- `move`
- `nesw-resize`
- `nwse-resize`


## MapxusVisualEnvironment



```ts
type MapxusVisualEnvironment = "mapxus-test" | "mapxus-prod" | "jp-prod";
```

**Union members:**
- `mapxus-test`
- `mapxus-prod`
- `jp-prod`


## PointOfView



**Map units / range:** Unit: degrees; Value range: 0° to 360°

```ts
interface PointOfView {
    /**
     * Value indicating the current bearing of the viewer
     * measured in degrees clockwise with respect to north.
     * Ranges from 0° to 360°.
     */
    bearing: number;
    /**
     * The camera tilt in degrees, relative to a horizontal plane.
     * Ranges from 90° (directly upwards) to -90° (directly downwards).
     */
    tilt: number;
}
```

**Fields:**
- `bearing`: `number` (required) — Value indicating the current bearing of the viewer measured in degrees clockwise with respect to north. Ranges from 0° to 360°.
- `tilt`: `number` (required) — The camera tilt in degrees, relative to a horizontal plane. Ranges from 90° (directly upwards) to -90° (directly downwards).

## PopupAlignment



```ts
type PopupAlignment = "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
```

**Union members:**
- `center`
- `top`
- `bottom`
- `left`
- `right`
- `top-left`
- `top-right`
- `bottom-left`
- `bottom-right`


## RenderMode



**Tags:** Initialization config (may appear in Viewer options or component configuration)

```ts
enum RenderMode {
    /**
     * Displays all content within the viewer.
     *
     * @description Black bars shown on both
     * sides of the content. Bars are shown
     * either below and above or to the left
     * and right of the content depending on
     * the aspect ratio relation between the
     * image and the viewer.
     */
    Letterbox = 0,
    /**
     * Fills the viewer by cropping content.
     *
     * @description Cropping is done either
     * in horizontal or vertical direction
     * depending on the aspect ratio relation
     * between the image and the viewer.
     */
    Fill = 1
}
```

**Enum members:**
- `Letterbox` = `0` — Displays all content within the viewer.
- `Fill` = `1` — Fills the viewer by cropping content.

## TagMode



**Tags:** Event payload (listener callback argument); Initialization config (may appear in Viewer options or component configuration)

```ts
enum TagMode {
    /**
     * Disables creating tags.
     */
    Default = 0,
    /**
     * Create a point geometry through a click.
     */
    CreatePoint = 1,
    /**
     * Create a polygon geometry through clicks.
     */
    CreatePolygon = 2,
    /**
     * Create a rect geometry through clicks.
     */
    CreateRect = 3,
    /**
     * Create a rect geometry through drag.
     *
     * @description Claims the mouse which results in mouse handlers like
     * drag pan and scroll zoom becoming inactive.
     */
    CreateRectDrag = 4
}
```

**Enum members:**
- `Default` = `0` — Disables creating tags.
- `CreatePoint` = `1` — Create a point geometry through a click.
- `CreatePolygon` = `2` — Create a polygon geometry through clicks.
- `CreateRect` = `3` — Create a rect geometry through clicks.
- `CreateRectDrag` = `4` — Create a rect geometry through drag.

## VisualSdkEndpoints

**Overview:** Host and URLs resolved for the current environment (no auth).

```ts
interface VisualSdkEndpoints {
    /** Host for tile / preview / mesh asset paths (no scheme). */
    visualTilesHost: string;
    /** Full GraphQL HTTP endpoint (including path, typically `.../vis/graphql`). */
    graphqlUrl: string;
}
```

**Fields:**
- `graphqlUrl`: `string` (required) — Host for tile / preview / mesh asset paths (no scheme). */ visualTilesHost: string; /** Full GraphQL HTTP endpoint (including path, typically `.../vis/graphql`).

