import { Vector2 } from "./vector";
export declare class Table<T> {
    items: T[];
    readonly width: number;
    readonly height: number;
    constructor(width: number, height: number);
    fill(value: T): void;
    get({ x, y }: Vector2): T | undefined;
    set(pos: Vector2, item: T | undefined): void;
    clear(pos: Vector2): void;
    isInBounds({ x, y }: Vector2): boolean;
    getNeighbors(pos: Vector2, predicate?: (pos: Vector2, t: T | undefined) => Boolean, topology?: "four" | "eight"): Vector2[];
    floodFillSelect(pos: Vector2, targetValue?: T | undefined): Vector2[];
    filter(match: (v: Vector2, val: T | undefined) => boolean): Vector2[];
    clone(): Table<T>;
    isSameSize(other: Table<T>): boolean;
}
