import { Mino } from "../queue/types";
export interface BoardInitializeParams {
    width: number;
    height: number;
    buffer: number;
}
export type BoardSquare = Mino | null;
export declare class Board {
    state: BoardSquare[][];
    private _height;
    private _width;
    private _buffer;
    constructor(options: BoardInitializeParams);
    get height(): number;
    set height(value: number);
    get width(): number;
    set width(value: number);
    get buffer(): number;
    set buffer(value: number);
    get fullHeight(): number;
    add(...blocks: [BoardSquare, number, number][]): void;
    clearLines(): {
        lines: number;
        garbageCleared: number;
    };
    clearBombs(placedBlocks: [number, number][]): {
        lines: number;
        garbageCleared: number;
    };
    clearBombsAndLines(placedBlocks: [number, number][]): {
        lines: number;
        garbageCleared: number;
    };
    get perfectClear(): boolean;
    insertGarbage({ amount, size, column, bombs }: {
        amount: number;
        size: number;
        column: number;
        bombs: boolean;
    }): void;
}
