import { ComponentStorage, Query, System, type ComponentType, type EntityId, type WorldSnapshot } from "../index.js"; import type { ComponentDataTuple } from "./Query.js"; export declare class World { private entityManager; private componentRegistry; private systems; private queries; private queryIndex; private entityComponents; private componentTypes; createEntity(): EntityId; destroyEntity(entityId: EntityId): void; getAllEntities(): readonly EntityId[]; getEntityCount(): number; addComponent(entityId: EntityId, componentType: ComponentType, data?: Partial): boolean; removeComponent(entityId: EntityId, componentType: ComponentType): boolean; getComponent(entityId: EntityId, componentType: ComponentType): T | undefined; hasComponent(entityId: EntityId, componentType: ComponentType): boolean; getEntitiesWithComponent(componentType: ComponentType): readonly EntityId[] | undefined; getComponentStorage(componentType: ComponentType): ComponentStorage | undefined; addSystem(systemOrClass: System | (new (world: World) => System)): void; removeSystem(system: System): boolean; getSystems(): readonly System[]; clearSystems(): void; update(deltaTime: number): void; private createQuery; query[]>(...components: T): Query>; registerQueryForComponent(query: Query, componentType: ComponentType): void; removeQuery(query: Query): boolean; private invalidateQueriesForComponent; save(): WorldSnapshot; load(snapshot: WorldSnapshot, componentTypes: ComponentType[]): void; destroy(): void; } //# sourceMappingURL=World.d.ts.map