import { EventDispatcher as EventDispatcher_2 } from 'three'; import { ExtrusionFeature } from '@here/harp-materials'; import { Frustum } from 'three'; import { Matrix4 } from 'three'; import { PerspectiveCamera } from 'three'; import { Plane } from 'three'; import { Ray } from 'three'; import { Texture } from 'three'; import * as THREE_2 from 'three'; import THREE_3 = require('three'); import { Vector3 } from 'three'; /** * Add all the buffers of the technique to the transfer list. */ export declare function addBuffersToTransferList(technique: Technique, transferList: ArrayBuffer[]): void; /** * Optional parameters passed on [[TextCanvas]].`addText` function call. */ declare interface AdditionParameters { /** * Path where text should be placed on. Overrides the original position parameter. */ path?: THREE_2.Path | THREE_2.CurvePath; /** * If `true`, text on a path will be placed even when its size its bigger than the path's size. */ pathOverflow?: boolean; /** * Layer where text will be added. */ layer?: number; /** * If `true`, the input position parameter will be updated to contain the position of the last * glyph added. */ updatePosition?: boolean; /** * Object containing additional data intended to be retrieved during picking. */ pickingData?: any; /** * Array containing info on whether the glyphs are upper or lower case. Needed to support * `SmallCaps`. */ letterCaseArray?: boolean[]; } /** * Ambient light */ export declare interface AmbientLight extends BaseLight { /** * The type of the light. */ type: "ambient"; /** * The color of this ambient light. */ color: string; /** * The intensity of this ambient light. */ intensity?: number; } /** * Handles animated extrusion effect of the buildings in {@link MapView}. */ export declare class AnimatedExtrusionHandler { private readonly m_mapView; /** * Animate the extrusion of the buildings if set to `true`. */ enabled: boolean; /** * Duration of the building's extrusion in milliseconds */ duration: number; private m_minZoomLevel; private m_forceEnabled; private readonly m_dataSourceMap; private m_state; private m_startTime; /** * Creates an {@link AnimatedExtrusionHandler} in {@link MapView}. * * @param m_mapView - Instance of {@link MapView} on which the animation will run. */ constructor(m_mapView: MapView); /** * Returns whether the extrusion animation is force enabled or not. */ get forceEnabled(): boolean; /** * If `forceEnabled` is set to `true` then `animateExtrusion` and `animateExtrusionDuration` * values from [[extrudedPolygonTechnique]] will be ignored and * `AnimatedExtrusionHandler.enabled` with `AnimatedExtrusionHandler.duration` will be used */ set forceEnabled(force: boolean); /** * Gets min zoom level at which extruded animation is enabled. */ get minZoomLevel(): number; /** * Sets the extrusion animation properties obtained from a given technique. * @internal * @param technique - The technique where the extrusion animation properties are defined. * @param env - The environment used to evaluate technique properties. * @returns True if the technique has animation enabled (or animation is forced), false * otherwise. */ setAnimationProperties(technique: Technique, env: MapEnv): boolean; /** * Updates the extrusion animation for every frame. * @internal */ update(zoomLevel: number): void; /** * Adds a tile to be animated. * @internal * @param tile - The tile to be animated. * @param materials - Extruded materials belonging to the tile. */ add(tile: Tile, materials: ExtrusionFeature[]): void; /** * Is `true` if there's any extrusion animation ongoing. */ get isAnimating(): boolean; private getTileMap; private getOrCreateTileMap; private skipAnimation; private wasAnyAncestorAnimated; private wasAnyDescendantAnimated; private removeTile; private animateExtrusion; private resetAnimation; private setExtrusionRatio; private setTileExtrusionRatio; } /** * Animation states for extrusion effect */ export declare enum AnimatedExtrusionState { None = 0, Started = 1, Finished = 2 } export declare enum APIFormat { /** * Use the REST API format of HERE Vector Tiles Server component version 1. * * @remarks * Documentation: * https://developer.here.com/documentation/vector-tiles-api/dev_guide/index.html * * Usage: * * ////omv * * If [[OmvRestClientParams.authenticationToken]] is provided, it will be added as HTTP header: * * Authorization: Bearer $authenticationToken * * Format definition: * `//http|s:///{API version}/{layers}/{projection}/{z}/{x}/{y}/{format}` * * Default authentication method used: [[AuthenticationTypeBearer]]. */ HereV1 = 0, /** * Use the REST API format of Mapbox Vector Tile API v4. * * @remarks * Usage: * `///.mvt?access_token=` * * Format definition: * `http|s:///v4/{map_id}/{z}/{x}/{y}{@2x}.{format}?[style]&access_token={access_token}` * * Sample URL: * `http://a.tiles.mapbox.com/v4/mapbox.mapbox-streets-v7/14/4823/6160.mvt?access_token=your-mapbox-access-token` * * Default authentication method used: [[AuthenticationTypeAccessToken]]. */ MapboxV4 = 1, /** * Use the REST API format of XYZ Vector Tile API in MVT format. * * @remarks * Usage: * `/tiles/omsbase/256///.mvt?access_token=` * * Format definition: * `http|s:///tiles/{layers}/{z}/{x}/{y}/{format}?access_token={access_token}` * * Sample URL: * `https://xyz.api.here.com/tiles/osmbase/256/all/16/19293/24641.mvt?access_token=your-xyz-access-token` * * Default authentication method used: [[AuthenticationTypeAccessToken]]. */ XYZMVT = 2, /** * Use the REST API format of XYZ Vector Tile API in JSON format. * * @remarks * Usage: * `/tiles/omsbase/256///.mvt?access_token=` * * Format definition: * `http|s:///tiles/{layers}/{z}/{x}/{y}/{format}?access_token={access_token}` * * Sample URL: * `https://xyz.api.here.com/tiles/osmbase/256/all/16/19293/24641.json?access_token=your-xyz-api-key` * * Default authentication method used: [[AuthenticationTypeAccessToken]]. */ XYZJson = 3, /** * Use the REST API format of XYZ Vector Tile API in OMV format. * * @remarks * Usage: * `/tiles/herebase.02////omv?access_token=` * * Format definition: * `http|s:///tiles/herebase.02/{z}/{x}/{y}/{format}?access_token={access_token}` * * Sample URL: * `https://xyz.api.here.com/tiles/herebase.02/14/2649/6338/omv?access_token=your-xyz-access-token` * * Default authentication method used: [[AuthenticationTypeAccessToken]]. */ XYZOMV = 4, /** * Use the REST API format of Tomtoms Vector Tile API v1. * * @remarks * Usage: * `///.pbf?key=` * * Format definition: * `:///map//tile//