import { Component, ComponentNature, RealObjectGroup, RealObject, Shape } from '@hatiolab/things-scene'; export declare class SignalTower3D extends RealObjectGroup { private _lightMeshes; build(): void; updateLights(forceOff?: boolean): void; blinkTick(): void; update(): void; updateDimension(): void; onchange(after: Record, before: Record): void; } declare const MixedShape: (new (...args: any[]) => { _lastValue: number; _anim_alpha: number; _value_substitutor: any; animOnValueChange(value: any, animFromBase: boolean | undefined, base: any): void; dispose(): void; onchange(after: any, before: any): void; get animAlpha(): number; get animValue(): number; defaultValueSubstitutor(): any; get valueSubstitutor(): any; get value(): number; set value(value: number): any; _app: any; _model: any; _state: any; _delta: any; _animation: any; _animate: any; _parent: any; _disposed: any; _textHidden: any; _text_substitutor: any; _mappings: any; _realObject: import("@hatiolab/things-scene").IRealObject | undefined; _cachedState: any; updatedAt: any; fontSize: any; __cache__: any; created(): void; added(parent: any): void; removed(parent: any): void; ready(): Promise; touch(): void; clearCache(...attrs: any[]): void; removeSelf(completely: any): void; resetAnimation(): void; get nature(): import("@hatiolab/things-scene").ComponentNature; get disposed(): boolean; isLayer(): boolean; isGroup(): boolean; isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component").Container; isLine(): boolean; isRoot(): boolean; isRootModel(): boolean; is3dish(): boolean; get is3dMode(): boolean; isIn3DSpace(): boolean; isTemplate(): boolean; isHTMLElement(): boolean; isConnectable(): boolean; isIdentifiable(): boolean; isPositionable(): boolean; replaceRefids(replaceMap: any): void; get(property: any): any; set(props: any, propval?: any): any; getState(property: any): any; setState(props: any, propval?: any): any; get model(): any; get state(): any; get hierarchy(): any; get volatile(): never[]; _applyProps(target: any, props: any, options: any): any; contains(x: number, y: number): boolean; move(offset: { x: number; y: number; }, ...args: boolean[]): void; symmetryX(x?: number): void; symmetryY(y: number): void; adjustResize(bounds: import("@hatiolab/things-scene").BOUNDS, origin_bounds: import("@hatiolab/things-scene").BOUNDS, diagonal: boolean): { left: any; top: any; width: any; height: any; }; adjustRotation(rotation: number, step: boolean): number; outline(progress: number): any; get bounds(): import("@hatiolab/things-scene").BOUNDS; set bounds(b: import("@hatiolab/things-scene").BOUNDS): any; get center(): import("@hatiolab/things-scene").POINT; set center(p: import("@hatiolab/things-scene").POINT): any; get location(): import("@hatiolab/things-scene").POINT; set location(l: import("@hatiolab/things-scene").POINT): any; get rotate(): import("@hatiolab/things-scene").POINT; set rotate(r: import("@hatiolab/things-scene").POINT): any; get dimension(): import("@hatiolab/things-scene").DIMENSION; set dimension(d: import("@hatiolab/things-scene").DIMENSION): any; get path(): import("@hatiolab/things-scene").POINT[]; set path(p: import("@hatiolab/things-scene").POINT[]): any; get drawPath(): import("@hatiolab/things-scene").POINT[]; get rotatePoint(): import("@hatiolab/things-scene").POINT; get mutable(): boolean; get resizable(): boolean; get rotatable(): boolean; buildRealObject(): import("@hatiolab/things-scene").IRealObject | undefined; get realObject(): import("@hatiolab/things-scene").IRealObject | undefined; draw(context?: import("@hatiolab/things-scene").SceneRenderContext): void; prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void; render(context: import("@hatiolab/things-scene").SceneRenderContext): void; postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void; prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void; prepareIf(condition: boolean): void; drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void; drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record): void; drawFill(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record): void; get strokeStyle(): any; set strokeStyle(v: any): any; get fillStyle(): any; set fillStyle(v: any): any; get fontColor(): string; set fontColor(v: string): any; get rotation(): number; set rotation(v: number): any; get decorators(): string[]; get decotag(): string; get hidden(): boolean; set hidden(v: boolean): any; get tag(): string; set tag(v: string): any; get appendum(): any; set appendum(v: any): any; defaultTextSubstitutor(): string; textLines(context?: import("@hatiolab/things-scene").SceneRenderContext): any[][]; get font(): string; get lineHeight(): number; get textSubstitutor(): () => string; get text(): string; set text(v: string): any; get textBounds(): import("@hatiolab/things-scene").BOUNDS; get textRotation(): number; get textHidden(): boolean; set textHidden(v: boolean): any; get hasTextProperty(): boolean; animate(opts: import("@hatiolab/things-scene").AnimationConfig): any; effect(context: import("@hatiolab/things-scene").SceneRenderContext, model: any): void; serialize(...others: any[]): string; trim(): void; closeScene(data: any): void; delta(attr?: string | object, value?: any): any; invalidate(): void; get data(): any; set data(v: any): any; set tap(v: any): any; get mappings(): any[]; get retention(): number; get animation(): import("@hatiolab/things-scene").AnimationController | undefined; get started(): boolean; set started(v: boolean): any; get controls(): import("@hatiolab/things-scene").Control[] | undefined; findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined; findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined; capture(x: number, y: number, except?: (c: Component) => boolean): any; findAnchor(name: string): any; isDescendible(container: Component): boolean; getContext(component?: unknown): any; get root(): Component; get rootModel(): Component; get parent(): Component; set parent(v: Component): any; get anchors(): import("@hatiolab/things-scene").Anchor[]; get scalable(): boolean; get stuck(): boolean; get capturable(): boolean; get position(): string; get origin(): string; get offset(): import("@hatiolab/things-scene").POINT; get app(): import("@hatiolab/things-scene").ApplicationContext; drawEffect(context: import("@hatiolab/things-scene").SceneRenderContext): void; prepareFill(resolve: Function, reject: Function): void; prepareFillIf(condition: boolean): void; onchangeFill(after: Record, before: Record): void; drawImage(context: import("@hatiolab/things-scene").SceneRenderContext, image: HTMLImageElement, left: number, top: number, width: number, height: number): void; mutateBounds(logic: ((bounds: import("@hatiolab/things-scene").BOUNDS) => import("@hatiolab/things-scene").BOUNDS | void) | null, context?: any): void; mutatePath(beforeLogic: ((path: import("@hatiolab/things-scene").POINT[]) => import("@hatiolab/things-scene").POINT[] | void) | null, afterLogic: ((path: import("@hatiolab/things-scene").POINT[]) => import("@hatiolab/things-scene").POINT[] | void) | null, context?: any): void; access(accessor: string): any; substitute(template: string, data: any): string | undefined; onchangeMappings(after: Record, before: Record): void; onchangeData(after: Record, before: Record): void; buildMappings(): void; executeMappings(force?: boolean): void; disposeMappings(): void; ondropfile(transfered: FileList, files: string[]): void; transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT; transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT; transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT; transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT; fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT; toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT; on(name: string | object, callback: Function, context?: any): any; off(name?: string | object, callback?: Function, context?: any): any; once(name: string | object, callback: Function, context?: any): any; trigger(name: string, ...args: any[]): any; delegate_on(delegator: any): any; delegate_off(delegator: any): any; calculateBounds?(): void; oncreate_element?(element: HTMLElement): void; removeComponent(component: Component, ghost?: boolean): void; addComponent(component: Component, ghost?: boolean): void; insertComponentAt(component: Component, index: number, ghost?: boolean): void; getOverlay(component: Component): HTMLElement | undefined; findById(id: string): Component | undefined; findByRefid(ref: string | number): Component | undefined; findAllById(id: string): Component[]; resize(): void; fit(type?: string): void; get components(): Component[] | undefined; get layout(): any; get auxOverlay(): HTMLElement | undefined; get isReady(): boolean; get unitScale(): number; get selected(): Component[]; set selected(_v: Component[]): any; get focused(): Component | null; set focused(_v: Component | null): any; get hasSameParentForAllSelected(): boolean; set hasSameParentForAllSelected(_v: boolean): any; get fitMode(): string | undefined; set fitMode(_v: string | undefined): any; get element(): HTMLElement | null; set element(_v: HTMLElement | null): any; }) & (new (...args: any[]) => { contains(x: number, y: number): boolean; get path(): { x: any; y: any; }[]; set path(path: { x: any; y: any; }[]): any; get anchors(): { name: string; position: { x: any; y: any; }; }[]; get bounds(): any; set bounds(bounds: any): any; render(ctx: CanvasRenderingContext2D): void; _app: any; _model: any; _state: any; _delta: any; _animation: any; _animate: any; _parent: any; _disposed: any; _textHidden: any; _text_substitutor: any; _value_substitutor: any; _mappings: any; _realObject: import("@hatiolab/things-scene").IRealObject | undefined; _cachedState: any; updatedAt: any; fontSize: any; __cache__: any; created(): void; added(parent: any): void; removed(parent: any): void; ready(): Promise; touch(): void; clearCache(...attrs: any[]): void; removeSelf(completely: any): void; resetAnimation(): void; dispose(): void; get nature(): import("@hatiolab/things-scene").ComponentNature; get disposed(): boolean; isLayer(): boolean; isGroup(): boolean; isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component").Container; isLine(): boolean; isRoot(): boolean; isRootModel(): boolean; is3dish(): boolean; get is3dMode(): boolean; isIn3DSpace(): boolean; isTemplate(): boolean; isHTMLElement(): boolean; isConnectable(): boolean; isIdentifiable(): boolean; isPositionable(): boolean; replaceRefids(replaceMap: any): void; get(property: any): any; set(props: any, propval?: any): any; getState(property: any): any; setState(props: any, propval?: any): any; get model(): any; get state(): any; get hierarchy(): any; get volatile(): never[]; _applyProps(target: any, props: any, options: any): any; move(offset: { x: number; y: number; }, ...args: boolean[]): void; symmetryX(x?: number): void; symmetryY(y: number): void; adjustResize(bounds: import("@hatiolab/things-scene").BOUNDS, origin_bounds: import("@hatiolab/things-scene").BOUNDS, diagonal: boolean): { left: any; top: any; width: any; height: any; }; adjustRotation(rotation: number, step: boolean): number; outline(progress: number): any; get center(): import("@hatiolab/things-scene").POINT; set center(p: import("@hatiolab/things-scene").POINT): any; get location(): import("@hatiolab/things-scene").POINT; set location(l: import("@hatiolab/things-scene").POINT): any; get rotate(): import("@hatiolab/things-scene").POINT; set rotate(r: import("@hatiolab/things-scene").POINT): any; get dimension(): import("@hatiolab/things-scene").DIMENSION; set dimension(d: import("@hatiolab/things-scene").DIMENSION): any; get drawPath(): import("@hatiolab/things-scene").POINT[]; get rotatePoint(): import("@hatiolab/things-scene").POINT; get mutable(): boolean; get resizable(): boolean; get rotatable(): boolean; buildRealObject(): import("@hatiolab/things-scene").IRealObject | undefined; get realObject(): import("@hatiolab/things-scene").IRealObject | undefined; draw(context?: import("@hatiolab/things-scene").SceneRenderContext): void; prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void; postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void; prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void; prepareIf(condition: boolean): void; drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void; drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record): void; drawFill(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record): void; get strokeStyle(): any; set strokeStyle(v: any): any; get fillStyle(): any; set fillStyle(v: any): any; get fontColor(): string; set fontColor(v: string): any; get rotation(): number; set rotation(v: number): any; get decorators(): string[]; get decotag(): string; get hidden(): boolean; set hidden(v: boolean): any; get tag(): string; set tag(v: string): any; get appendum(): any; set appendum(v: any): any; defaultTextSubstitutor(): string; textLines(context?: import("@hatiolab/things-scene").SceneRenderContext): any[][]; get font(): string; get lineHeight(): number; get textSubstitutor(): () => string; get text(): string; set text(v: string): any; get textBounds(): import("@hatiolab/things-scene").BOUNDS; get textRotation(): number; get textHidden(): boolean; set textHidden(v: boolean): any; get hasTextProperty(): boolean; animate(opts: import("@hatiolab/things-scene").AnimationConfig): any; effect(context: import("@hatiolab/things-scene").SceneRenderContext, model: any): void; serialize(...others: any[]): string; trim(): void; closeScene(data: any): void; delta(attr?: string | object, value?: any): any; invalidate(): void; get value(): any; set value(v: any): any; get data(): any; set data(v: any): any; set tap(v: any): any; get mappings(): any[]; get retention(): number; get animation(): import("@hatiolab/things-scene").AnimationController | undefined; get started(): boolean; set started(v: boolean): any; get controls(): import("@hatiolab/things-scene").Control[] | undefined; findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined; findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined; capture(x: number, y: number, except?: (c: Component) => boolean): any; findAnchor(name: string): any; isDescendible(container: Component): boolean; getContext(component?: unknown): any; get root(): Component; get rootModel(): Component; get parent(): Component; set parent(v: Component): any; get scalable(): boolean; get stuck(): boolean; get capturable(): boolean; get position(): string; get origin(): string; get offset(): import("@hatiolab/things-scene").POINT; get app(): import("@hatiolab/things-scene").ApplicationContext; drawEffect(context: import("@hatiolab/things-scene").SceneRenderContext): void; prepareFill(resolve: Function, reject: Function): void; prepareFillIf(condition: boolean): void; onchangeFill(after: Record, before: Record): void; drawImage(context: import("@hatiolab/things-scene").SceneRenderContext, image: HTMLImageElement, left: number, top: number, width: number, height: number): void; mutateBounds(logic: ((bounds: import("@hatiolab/things-scene").BOUNDS) => import("@hatiolab/things-scene").BOUNDS | void) | null, context?: any): void; mutatePath(beforeLogic: ((path: import("@hatiolab/things-scene").POINT[]) => import("@hatiolab/things-scene").POINT[] | void) | null, afterLogic: ((path: import("@hatiolab/things-scene").POINT[]) => import("@hatiolab/things-scene").POINT[] | void) | null, context?: any): void; access(accessor: string): any; substitute(template: string, data: any): string | undefined; onchangeMappings(after: Record, before: Record): void; onchangeData(after: Record, before: Record): void; buildMappings(): void; executeMappings(force?: boolean): void; disposeMappings(): void; ondropfile(transfered: FileList, files: string[]): void; transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT; transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT; transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT; transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT; fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT; toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT; toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT; on(name: string | object, callback: Function, context?: any): any; off(name?: string | object, callback?: Function, context?: any): any; once(name: string | object, callback: Function, context?: any): any; trigger(name: string, ...args: any[]): any; delegate_on(delegator: any): any; delegate_off(delegator: any): any; onchange(after: Record, before: Record): void; calculateBounds?(): void; oncreate_element?(element: HTMLElement): void; removeComponent(component: Component, ghost?: boolean): void; addComponent(component: Component, ghost?: boolean): void; insertComponentAt(component: Component, index: number, ghost?: boolean): void; getOverlay(component: Component): HTMLElement | undefined; findById(id: string): Component | undefined; findByRefid(ref: string | number): Component | undefined; findAllById(id: string): Component[]; resize(): void; fit(type?: string): void; get components(): Component[] | undefined; get layout(): any; get auxOverlay(): HTMLElement | undefined; get isReady(): boolean; get unitScale(): number; get selected(): Component[]; set selected(_v: Component[]): any; get focused(): Component | null; set focused(_v: Component | null): any; get hasSameParentForAllSelected(): boolean; set hasSameParentForAllSelected(_v: boolean): any; get fitMode(): string | undefined; set fitMode(_v: string | undefined): any; get element(): HTMLElement | null; set element(_v: HTMLElement | null): any; }) & typeof Shape; export declare class SignalTower extends MixedShape { private _blinkRaf; private _lastBlinkOn; is3dish(): boolean; buildRealObject(): RealObject | undefined; get nature(): ComponentNature; ready(): Promise; dispose(): void; private _startBlink; private _stopBlink; onchange(after: Record, before: Record): void; render(ctx: CanvasRenderingContext2D): void; } export {};