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; }