import { GameObject } from "./GameObject"; import { System } from "./Systems/System"; export declare abstract class Component { static instances: Array; static readonly id: string; protected _parent: GameObject; protected static readonly _system: typeof System; constructor(); static findInstances(_searchFunc: (e: T) => boolean): T[]; get parent(): GameObject; set parent(_parent: GameObject); getSystem(): typeof System; onDestroy(): void; abstract onAttach(): void; abstract onDetach(): void; /** * Called when a component is added to the parent */ abstract onComponentAttached(_componentId: string, _component: Component): void; }