import { Intersection, Object3D } from 'three'; import { Task } from '../loader/type'; import { CameraJson } from '../render/camera/type'; import { PluginJson } from '../plugin/type'; import { KeyframeJson } from '../keyframe/type'; import { MeshJson } from '../render/mesh/type'; import { GeometryJson } from '../render/mesh/geometry/type'; import { LineJson } from '../render/line/type'; import { InstanceJson } from '../render/instance/type'; import { SpriteJson } from '../render/sprite/type'; import { LoaderJson } from '../render/loader/type'; import { LightJson, Lighttype } from '../render/light/type'; import { GroupJson } from '../render/group/type'; import { FontJson } from '../render/font/type'; import { AudioJson } from '../render/audio/type'; import { ParticleJson } from '../render/particle/type'; import { MaterialJson } from '../render/mesh/material/type'; import { Component } from '../component'; interface Viewport { width: number; height: number; left: number; top: number; } interface IntersectComponent extends Component { object3D: Object3D; } interface Intersect extends Intersection { source: T; } interface EventListener { type: keyof GlobalEventHandlersEventMap; stop: boolean; listenner: (e: any) => void; source: (e: any) => void; } declare type RenderJson = Array | InstanceJson | LineJson | SpriteJson | LoaderJson | LightJson | GroupJson | FontJson | AudioJson | ParticleJson>; interface SceneJson { loadJson: Task[]; pluginJson: PluginJson[]; renderJson: RenderJson; cameraJson: CameraJson; keyframeJson: KeyframeJson[]; } export { Viewport, IntersectComponent, Intersect, EventListener, RenderJson, SceneJson, };