import { GameModeConfiguration } from '../types/index.js';
export declare class MinesweeperBoard {
    #private;
    private gameModeConfiguration;
    constructor(gameModeConfiguration: GameModeConfiguration);
    get rows(): number;
    get columns(): number;
    get bombs(): number;
    get positions(): ReadonlyArray<ReadonlyArray<string | number>>;
    get flags(): ReadonlyArray<ReadonlyArray<boolean>>;
    get flagCounter(): number;
    get questionMarks(): ReadonlyArray<ReadonlyArray<boolean>>;
    get revealedFields(): ReadonlyArray<ReadonlyArray<boolean>>;
    private generate2dFields;
    private placeBombs;
    /**
     * Calculates a random set of indices where bombs are located on the field
     * @returns List of indices of bomb #positions
     */
    private calculateRandomBombIndices;
    /**
     * Calculates for every field, except the fields with bombs, how many neighbor bombs are present.
     */
    private applyFieldNumbers;
    revealField(row: number, column: number): string | number;
    private expand;
    /**
     * @returns List of Neighbors, every entry contains a row and a column index
     */
    private getNeighbors;
    addFlag(selectedRow: number, selectedColumn: number): void;
    removeFlag(selectedRow: number, selectedColumn: number): void;
    addQuestionMark(selectedRow: number, selectedColumn: number): void;
    removeQuestionMark(selectedRow: number, selectedColumn: number): void;
    revealBombs(bombsAsFlags?: boolean): void;
}
//# sourceMappingURL=MinesweeperBoard.d.ts.map