import { Vector } from "./vector";
export interface StackedSpace {
get(pos: Vector): A[];
set(pos: Vector, objects: A[]): void;
add(pos: Vector, object: A): void;
retain(pos: Vector, predicate: (a: A) => boolean): void;
}
export declare class DiscreteStackedSpace implements StackedSpace {
private readonly objects;
get(pos: Vector): A[];
set(pos: Vector, objects: A[]): void;
add(pos: Vector, object: A): void;
retain(pos: Vector, predicate: (a: A) => boolean): void;
}
export declare class SubStackedSpace implements StackedSpace {
readonly space: StackedSpace;
readonly transform: (pos: Vector) => Vector;
constructor(space: StackedSpace, transform: (pos: Vector) => Vector);
get(pos: Vector): A[];
set(pos: Vector, objects: A[]): void;
add(pos: Vector, object: A): void;
retain(pos: Vector, predicate: (a: A) => boolean): void;
}