import { TransformNode } from '../../../runtime';
import { Entity } from '../../Entity';
import { Component } from '../Component';
import { CabinetCapacityData } from './CabinetCapacityData';
import { RackMounted } from './RackMounted';
/**
 * 机柜
 */
export declare class Cabinet extends Component {
    /**
     * 机柜标签样式配置
     */
    static tagStyleConfig: {
        show: boolean;
        hasBackground: boolean;
        backgroundColor: string;
        fontSize: number;
        fontColor: string;
    };
    private _eventIds;
    private _tagMesh;
    _showAssetId: string;
    private _alarmAssetIds;
    /**
     * 数据
     */
    data: {
        cabinet_id: string;
        cabinet_name: string;
        area_id: string;
    };
    /**
     * 资产设备列表
     */
    readonly assets: RackMounted[];
    /**
     * 进入机柜事件
     */
    onEnterCabinet: (cabinet: Cabinet) => void;
    /**
     * 退出机柜事件
     */
    onExistCabinet: (cabinet: Cabinet) => void;
    /**
     * 机柜右键菜单事件
     */
    onCabinetRightMenu: (cabinet: Cabinet, left: number, top: number) => void;
    /**
     * 实例化一个机柜对象
     * @param entity 实体
     */
    constructor(entity: Entity);
    /**
     * 获取实体ID
     */
    get entityId(): string;
    /**
     * 获取机柜ID
     */
    get cabinetId(): string;
    /**
     * 获取机柜名称
     */
    get cabinetName(): string;
    /**
     * 显示容量
     * @param data 容量数据
     */
    showCapacity(data: CabinetCapacityData): void;
    /**
     * 隐藏容量
     */
    hideCapacity(): void;
    /**
     * 隐藏
     */
    hide(): void;
    /**
     * 显示
     */
    show(): void;
    /**
     * 前面居中显示
     * @param callback 回调函数
     */
    frontOn(callback?: () => void): void;
    /**
     * 后面居中显示
     * @param callback 回调函数
     */
    backOn(callback?: () => void): void;
    /**
     * 获取挂接点
     * @param flag 标记，true=前面，false=后面
     */
    getPoint(flag?: boolean): TransformNode;
    /**
     * 手动触发退出机柜事件
     */
    triggerExist(): void;
    /**
     * 添加编号
     */
    private _afterBuild;
    /**
     * 更新顶部编号标签
     */
    updateTag(): void;
    /**
     * 添加资产
     * @param item 机架设备
     * @param flag 挂接点标记，true=前面，false=后面
     */
    add(item: RackMounted, flag?: boolean): void;
    /**
     * 加载资产
     * @param list 资产配置列表
     */
    loadAssets(list: any[]): Promise<void>;
    /***
     * 清理资产
     */
    clear(): void;
    /**
     * 更新告警状态
     * @param asset_ids 资产ID列表
     */
    updateAlarmStates(asset_ids?: string[]): void;
    _updateAssetsAlarmStatus(): void;
    _resetCabinetAlarmStatus(): void;
}
