import { AsyncEventEmitter } from "@vladfrangu/async_event_emitter";
import type { Entity } from "./entity";
export interface EntitiesEvents {
    create: [entity: Entity];
    delete: [id: number];
}
export declare class Entities extends AsyncEventEmitter<EntitiesEvents> {
    private entities;
    private register;
    has(id: number): boolean;
    lookup(key: string): Entity | null | undefined;
    get(id: number): Entity | undefined;
    set(id: number, entity: Entity): this;
    delete(id: number): boolean;
    entries(): MapIterator<[number, Entity]>;
    values(): MapIterator<Entity>;
    keys(): MapIterator<number>;
    get size(): number;
}
