import { PluginBase } from './base/PluginBase'; import { Viewer } from './Viewer'; import * as BABYLON from '@babylonjs/core'; import { MeshOrNode, CoverFire, CoverPoint } from './Types'; import { CoverPOI } from './Types'; import { Ring } from './label/Ring'; import { Icon } from './label/Icon'; import { Line } from './label/Line'; import { Panel } from './label/Panel'; import { CSS3DRenderer } from './label/CSS3d'; import { CSS2DRenderer } from './label/CSS2d'; declare const genBasicMaterial: (name: string, scene: BABYLON.Scene) => BABYLON.ShaderMaterial; type LabelPluginName = 'POI' | 'Fire' | 'Warning' | 'Position' | 'Css3' | 'Css2'; declare abstract class LabelBase { Viewer: Viewer; LabelMgr: LabelMgr; abstract Name: LabelPluginName; get Prefix(): string; Items: MeshOrNode[]; constructor(labelMgr: LabelMgr); init(): void; is(node: BABYLON.TransformNode): boolean; abstract removeAll(): void; } declare class WarningLabel extends LabelBase { Name: LabelPluginName; private _warningGrpName; private _warning; private _warningAnimationName; constructor(labelMgr: LabelMgr); init(): void; hide(node: BABYLON.TransformNode): void; private createPanel; private createBase; create(modelName: string): Promise; update(opt: any): void; remove(modelName: string): void; removeAll(): void; } declare class POILabel extends LabelBase { Name: LabelPluginName; Ring: Ring; Icon: Icon; Line: Line; Panel: Panel; constructor(labelMgr: LabelMgr); init(): void; hide(node: BABYLON.TransformNode): void; genNodeName(poiName: string): string; create(name: string, cb?: () => void): Promise; reCreate(poi: CoverPOI, cb?: () => void): Promise; update(poi: CoverPOI): void; is(node: BABYLON.TransformNode): boolean; remove(name: string): void; removeAll(): void; setPOIVisibility(visibility: boolean): void; load(): CoverPOI[]; zoomToFit(name: string): void; } declare class FireSys extends LabelBase { Name: LabelPluginName; init(): void; hide(node: BABYLON.TransformNode): void; create(name: string, type?: 'fire' | 'fire2', cb?: () => void): void; private _fires; private _nameMeta; reCreate(fire: CoverFire, cb?: () => void): void; load(): CoverFire[]; update(opt: any): void; remove(name: string): void; removeAll(): void; setFireVisibility(visibility: boolean): void; zoomToFit(name: string): void; } declare class PositionLabel extends LabelBase { Name: LabelPluginName; private _idx; onModified: BABYLON.Nullable<(action: string, cover: CoverPoint) => void>; onCancel: BABYLON.Nullable<() => void>; constructor(labelMgr: LabelMgr); hide(node: BABYLON.TransformNode): void; private createByPoint; private getMeshName; private _exec; create(opt: CoverPoint): Promise; remove(cover: CoverPoint, emit?: boolean): void; removeAll(): void; init(): void; is(node: BABYLON.TransformNode): boolean; getPoints(): CoverPoint[]; private _picking; setPickEnable(flag: boolean): void; private _downX; private _downY; private _pointerObserver; private _keyBoardObserver; private attachEvents; private detachEvents; } declare class Css3Label extends LabelBase { Name: LabelPluginName; Css3Renderer: CSS3DRenderer; init(): void; hide(node: BABYLON.TransformNode): void; create(opt: any): void; createByPick(pickInfo: BABYLON.PickingInfo): void; update(opt: any): void; remove(opt: any): void; removeAll(): void; attachEvents(): void; detachEvents(): void; } declare class Css2Label extends LabelBase { Name: LabelPluginName; Css2Renderer: CSS2DRenderer; removeAll(): void; init(): void; } declare class LabelMgr extends PluginBase { Plugins: LabelBase[]; getClassName(): string; toJson(): Object; parseJson(json: Object): void; constructor(viewer: Viewer); regist(plugin: new (labelMgr: LabelMgr) => LabelBase): void; getPlugin(name: LabelPluginName): LabelBase; init(): void; } export { LabelMgr, WarningLabel, POILabel, FireSys, PositionLabel, Css3Label, Css2Label, genBasicMaterial };