import Lifecycle from './Lifecycle'; import { Object3D } from 'three'; export default class Component extends Lifecycle { private _name; private _object3d; private _isReady; private _enabled; uuid: string; interface: ComponentInterface; constructor(name: string, object3d: Object3D); /** * The name by which to search a component. * * For best results, make sure you don't * repeat them within the same Object3D. */ get name(): string; set name(newName: string); /** * Reference to the Object3D asociated to this component. * * Caution!! It can only be set internally by the engine */ get object3d(): Object3D; /** * The 'ready' status of the component. This property will * be true once all the assets referenced in the 'interface' * of this component are loaded. */ get isReady(): boolean; get enabled(): boolean; set enabled(value: boolean); toJSON(): { name: string; componentPrototypeName: string; interface: ComponentInterface; interfaceRefs: { [propName: string]: any; }; }; fromJSON(json: any): void; private serializePropRef; private serializeInterfaceRefs; private loadInterfaceRefs; private readyNotifier; private loadPropRef; awake(): void; start(): void; beforeUpdate(): void; update(): void; afterUpdate(): void; onBeforeRemoved(): void; onRemoved(): void; onBeforeObjectRemoved(): void; onObjectRemoved(): void; onDisabled(): void; } type ComponentInterfaceType = 'String' | 'Number' | 'Boolean' | 'Select' | 'Vector2' | 'Vector3' | 'Object3D' | 'Prefab' | 'Texture' | 'Material' | 'Component' | 'Audio' | 'Color' | 'PositionalAudio' | 'AnimationClip' | 'Button' | 'Data' | 'Code'; export type ComponentInterface = { [propName: string]: ComponentInterfaceType | { type: ComponentInterfaceType; options?: any; }; }; export {};