import { vec3 } from 'gl-matrix';
import { BIMWrap } from '../index';
import { Component } from './component';
import { Space } from './space';
import * as sadi from 'sadi-sdk-ts';
interface IChangeEnvParams {
    edgeColor?: string;
    edgeWidth?: number;
    outLineColor?: string;
    outLineWidth?: number;
    background?: string;
    light?: {
        color?: string;
        phi?: number;
        theta?: number;
        [key: string]: any;
    };
    camera?: {
        orthographic?: boolean;
        phi?: number;
        theta?: number;
        [key: string]: any;
    };
    ambient?: string;
    highlightColor?: string;
    bloom_range?: number;
    exposure?: number;
    [key: string]: any;
}
interface sadiEvent {
    (ev: sadi.SceneContext, sc: CustomEvent<sadi.SelectResult>): void;
}
interface CustomEvents {
    roam?: Function;
    hideSpace?: Function;
    recovery?: Function;
    fullScreen?: Function;
    cut?: Function;
    measure?: Function;
}
export declare let customEvents: CustomEvents;
export declare class View {
    loaded: boolean;
    clickEvent: sadiEvent;
    scene: sadi.Scene;
    constructor(scene: any, loaded: boolean, clickEvent: any);
    /**
     * 恢复视图
     */
    recovery: (componentWrap: Component, spaceWrap: Space) => void;
    /**
     * 视图自适应
     */
    updateSize: () => void;
    /**
     * 视图动画
     */
    setCamera: (data: any) => void;
    /**
     * 获取视图
     */
    getScreenShotPic: () => sadi.Scene;
    /**
     * 获取视点
     */
    getCameraInfo: () => sadi.CameraInfo;
    /**
     * 设置模式
     */
    setSelectMode: (type: number) => void;
    /**
     * 设置背景图片
     */
    setBackgroundImage: (url?: string) => Promise<void>;
    /**初始化一些光效、背景等样式 */
    initViewWrapEnvParams: () => void;
    /**
     * 属性组合设置 (目前支持最多两层属性设置)
     */
    changeEnvParams: (params: IChangeEnvParams) => void;
    /**
     * 获取视图上下文
     */
    getSceneContext: (sadiIns: BIMWrap) => Promise<sadi.SceneContext>;
    /**
     * 获取场景中所有楼层
     */
    getStoreyList: () => sadi.Storey[];
    /**
     * 获取场景结构树
     */
    getstructureTree: () => sadi.CategoryNode[];
    /**
     * 绑定点击事件
     */
    bindClick: (event: any) => void;
    /**
     * cube
     * 显示cube
     */
    showCube: () => void;
    /**
     * cube
     * 隐藏cube
     */
    hideCube: () => void;
    /**
     * cube
     * 导航cube位置和大小修改
     */
    changeCubePositionAndSize: ({ size, position }: {
        size: number;
        position: {
            top: number;
            left: number;
        };
    }) => void;
    /**
     * cube
     * 导航cube显示隐藏
     */
    enableNavigationCube: (isShow: boolean) => void;
    /**
     * cube
     * 漫游
     */
    roam: (start: boolean, opts?: {
        location: vec3;
        angle: number;
        height: number;
        floor: sadi.Storey;
    }) => void;
    /**
     * cube
     * 导航cube 场景移动
     */
    move3D: (mv: vec3) => void;
    /**
     * 销毁
     */
    dispose: () => void;
}
export {};
