/// import { Component } from "./component"; import { Entity } from "./entity"; import { EntityMapWithEvents } from "./entity_map"; import { EcsEvent, UnknownEvent } from "./events"; import { SyncSubject } from "./event_map"; import { Plugin } from './plugin'; import { Resource } from "./resource"; import { ResourceMapWrapped } from "./resource_map"; import { System } from "./system"; export declare const SingletonComponent: Component; interface WorldEventsMap extends ReadonlyMap> { get(event: EcsEvent): SyncSubject; has(event: EcsEvent): true; } export declare class World { readonly name?: string | undefined; readonly basePlugins: Set; private readonly state; readonly entities: EntityMapWithEvents; readonly resources: ResourceMapWrapped; private nameComponentMap; private nameSystemMap; private nameResourceMap; private systems; singletonEntity: Entity; private eventQueue; private queries; readonly events: WorldEventsMap; private pluginPromises; readonly plugins: Set; constructor(name?: string | undefined, basePlugins?: Set); emitNow(event: EcsEvent, data: Data, entities?: (string | Entity)[]): void; emit(event: EcsEvent, data: Data, entities?: (string | Entity)[]): void; removeAllPlugins(): Promise; addPlugin(plugin: Plugin): Promise; removePlugin(plugin: Plugin): Promise; addResource(resource: Resource): this; private removeResource; addSystem(system: System): this; removeSystem(system: System): this; addComponent(component: Component): void; /** * Flush the event queue. */ private flush; private runEvent; step(): void; private getArg; private runQuery; toString(): string; } export {};