import { StateEvent, WorksEvent, ModelEvent, ModelSceneEvent, ModelTileEvent, ModeChangeEvent, PanoEvent, RenderEvent, ObjectEvent, NetworkResourceEvent } from "../utils/event";
import type { ControllerEventTypes } from "../controllers/events";
import type { LegacyEventType } from "./events-legacy";
declare const PROXY_CONTROLLER_EVENT_NAMES: readonly ["gesture.pan", "gesture.tap", "gesture.dbltap", "gesture.press", "gesture.pinch", "gesture.mousewheel", "gesture.mousemove", "gesture.momentum", "gesture.fire", "initAnimation.start", "initAnimation.end", "camera.update", "intersect.update", "pano.select", "pano.moveTo", "pano.moving", "pano.arrived", "pano.cancel", "pano.error", "pano.prepare", "pano.texture.load", "pano.texture.progress", "pano.texture.success", "pano.texture.error", "pano.texture.abort", "xr.session.start", "xr.session.end", "xr.gesture.tap", "xr.gesture.press", "xr.gesture.buttonUp", "xr.gesture.buttonDown", "xr.controller.update"];
/**
 * Five 事件列表
 * @description
 * 具体事件列表 请查看 {@link EventCallback}
 */
type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROLLER_EVENT_NAMES[number]> & LegacyEventType & {
    /** 请求点位 */
    "pano.request"(event: PanoEvent): void;
    /** 内部错误 */
    "error"(error: Error): void;
    /** 请求 work数据 */
    "works.request"(event: WorksEvent): void;
    /** 加载 work */
    "works.load"(event: WorksEvent): void;
    /** 加载 work 并 controller ready */
    "works.ready"(event: WorksEvent): void;
    /** 设置 state */
    "state.set"(event: StateEvent): void;
    /** 当 state 变化 */
    "state.change"(event: StateEvent): void;
    /** 当 state 同步完成 */
    "state.synced"(event: StateEvent): void;
    /** 当前 state 变化 */
    "currentState.change"(event: StateEvent): void;
    /** 当模型加载 */
    "model.request"(event: ModelEvent): void;
    /** 当模型修改楼层 */
    "model.load"(event: ModelEvent): void;
    /** 当模型错误 */
    "model.error"(event: ModelEvent): void;
    /** 当模型修改楼层 */
    "model.changeShownFloor"(event: ModelEvent): void;
    /** 模型加载完成 */
    "models.load"(event: ModelSceneEvent): void;
    /** 模型细化完成 */
    "models.refined"(event: ModelSceneEvent): void;
    /** 模型加载完成 */
    "models.tileLoad"(event: ModelTileEvent): void;
    /** 模型加载完成 */
    "models.tileUnload"(event: ModelTileEvent): void;
    /** 渲染前 */
    "render.prepare"(event: RenderEvent): void;
    /** 渲染后 */
    "render"(event: RenderEvent): void;
    /** 请求改变 mode */
    "mode.change.request"(event: ModeChangeEvent): void;
    /** 改变 mode */
    "mode.change"(event: ModeChangeEvent): void;
    /** 改变 helpers 元素可见 */
    "helpers.visible"(event: ObjectEvent): void;
    /** 网络资源 */
    "network.resource"(event: NetworkResourceEvent): void;
    /** 当前 fps 变化 */
    "fps"(fps: number): void;
    /** five 被析构。 插件中请监听用于自身析构 */
    "dispose"(): void;
};
/**
 * Five 事件列表
 * @description
 * 可以通过 `five.on(METHOD_NAME, METHOD)` 调用
 */
interface EventCallback extends EventTypes {
}
export { PROXY_CONTROLLER_EVENT_NAMES, ControllerEventTypes, EventTypes, EventCallback, };
