import { Entity } from "./entity";
import { Component } from "./component";
import { Option } from "lazy-space";
import { Iteration } from "../iterator";
export interface Storage {
set(id: Entity, component: A): Storage;
remove(id: Entity): Storage;
get(id: Entity): Option;
has(id: Entity): boolean;
entities(): Iteration;
clear(): void;
}
export declare class SparseStorage implements Storage {
private readonly data;
set(id: Entity, component: A): Storage;
remove(id: Entity): Storage;
get(id: Entity): Option;
has(id: Entity): boolean;
entities(): Iteration;
clear(): void;
}
export declare class DenseStorage implements Storage {
private data;
set(id: Entity, component: A): Storage;
remove(id: Entity): Storage;
get(id: Entity): Option;
has(id: Entity): boolean;
entities(): Iteration;
clear(): void;
}