import { RunTime, Scene } from '../runtime';
import { Entity } from '../entity/Entity';
import { CameraMgr } from '../camera/CameraMgr';
import { EffectMgr } from '../effect/EffectMgr';
import { EventDispatcher } from '../event/EventDispatcher';
import { EventMgr } from '../event/EventMgr';
import { GUIMgr } from '../gui/GUIMgr';
import { LevelMgr } from '../entity/LevelMgr';
import { ResPool } from '../res/ResPool';
import { AppOptions } from './AppOptions';
import { Size } from './Size';
import { MaterialMgr } from '../material/MaterialMgr';
import { EntityType } from '../entity/EntityType';
import { Component } from '../entity/component/Component';
import { Tracker } from '../entity/Tracker';
import { LinkMgr } from '../link/LinkMgr';
/**
 * 应用
 */
export declare class App extends EventDispatcher {
    private _cursor;
    version: string;
    /**
     * 是否编辑器模式
     */
    _isEditor: boolean;
    /**
     * 实体字典
     */
    _entityMap: Map<string, Entity>;
    /**
     * 所有组件对象
     */
    readonly allComponents: Component[];
    /**
     * 场景
     */
    _scene: Scene;
    /**
     * DOM容器
     */
    container: HTMLDivElement;
    /**
     * 富文本容器
     */
    richContainer: HTMLDivElement;
    /**
     * 根路径
     */
    readonly basePath: string;
    /**
     * 项目文件地址
     */
    projectFile: string;
    /**
     * 授权文件地址
     */
    licenseFile: string;
    /**
     * 画布大小
     */
    size: Size;
    /**
     * 画布
     */
    canvas: HTMLCanvasElement;
    /**
     * 运行时
     */
    runTime: RunTime;
    /**
     * 材质管理器
     */
    materialMgr: MaterialMgr;
    /**
     * 相机管理器
     */
    cameraMgr: CameraMgr;
    /**
     * 效果管理器
     */
    effectMgr: EffectMgr;
    /**
     * 资源池
     */
    resPool: ResPool;
    /**
     * 层级管理器
     */
    levelMgr: LevelMgr;
    /**
     * GUI管理器
     */
    guiMgr: GUIMgr;
    /**
     * 事件管理器
     */
    eventMgr: EventMgr;
    /**
     * 链路管理器
     */
    linkMgr: LinkMgr;
    /**
     * 跟踪器
     */
    tracker: Tracker;
    /**
     * 是否已加载
     */
    loaded: boolean;
    /**
     * 选项
     */
    options: AppOptions;
    /**
     * 是否为移动端
     */
    readonly isMobile: boolean;
    /**
     * 实例化一个应用对象
     * @param options 选项
     */
    constructor(options: AppOptions);
    /**
     * 获取或设置指针样式（与CSS一致）
     */
    get cursor(): string;
    set cursor(value: string);
    /**
     * 注册默认事件
     * @param levelBack 是否注册层级后退事件，默认true
     */
    registerDefaultEvents(levelBack?: boolean): void;
    /**
     * 加载项目
     */
    load(): Promise<void>;
    /**
     * 根据ID获取实体对象
     * @param id 实体ID
     * @returns 实体对象
     */
    getEntityById(id: string): Entity | undefined;
    /**
     * 创建实体
     * @param type 实体类型
     */
    create(type: EntityType | string): Entity;
    /**
     * 释放
     */
    dispose(): void;
}
