import Entity from './Entity'; import EntityCollection from '../collections/EntityCollection'; import System from './System'; import { Constructor } from '../collections/Signable'; import Manager from './Manager'; import { ArrayListOptions } from '../lists/List'; import IList from '../lists/IList'; import SignableMap from '../collections/SignableMap'; interface EcsOptions { queueEntities?: boolean; } export default class Ecs { private readonly _systems; private readonly _managers; private readonly _entityCollections; private readonly _entities; private _queueEntities; private readonly _entitiesToCreate; private readonly _entitiesToDestroy; private _duration; constructor(options?: EcsOptions); get entities(): Map; getEntityNumber(): number; get systems(): SignableMap; get managers(): SignableMap; get entityCollections(): EntityCollection; get duration(): number; init(): Promise; stop(): void; update(elapsedTimeInSeconds: number, totalTimeInSeconds: number): void; private destroyEntities; registerSystems(...systemInstances: System[]): void; registerManagers(...managerInstances: Manager[]): void; system(constructor: Constructor): C; manager(constructor: Constructor): C; entity(entityId: string): Entity | undefined; create(id?: any): Entity; createList(options: ArrayListOptions, listConstructor?: Constructor>): IList; addEntityToCollections(entity: Entity): void; destroyEntity(entity: Entity): void; flush(reset?: boolean): void; private __destroyEntity; } export {};