import React from "react";
import { AttireContent } from "./Cell";
import { Board } from "./Board";
import { AbstractTheme, ClassicTheme, ThemeStringType } from "./Theme";
import { LanguageStringType } from "./Language";
import { CellInfo } from "@gobstones/gobstones-gbb-parser";
import { Attire, AttireJSON } from "./Attire";
declare type BoardState = {
    header: CellLocation;
    cells: Board;
    attire: Attire;
    theme: AbstractTheme;
};
export declare type CellLocation = [number, number];
declare type BoardProps = {
    columnsQuantity: number;
    rowsQuantity: number;
    header: CellLocation;
    editable: boolean;
    boardInfo?: CellInfo[][];
    attire: AttireJSON;
    theme: ThemeStringType;
    language: LanguageStringType;
};
export declare class BoardComponent extends React.Component<BoardProps, BoardState> {
    constructor(props: BoardProps);
    static defaultProps: {
        columnsQuantity: number;
        rowsQuantity: number;
        header: {
            x: number;
            y: number;
        };
        editable: boolean;
        attire: AttireJSON;
        theme: ClassicTheme;
        language: string;
    };
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): React.ReactElement;
    handleRightArrowClickRight(): void;
    handleRightArrowClickLeft(): void;
    handleTopArrowClickUp(): void;
    handleTopArrowClickDown(): void;
    handleChangeXSize(n: number): void;
    handleChangeYSize(n: number): void;
    resetHeader(): void;
    renderRightArrows(): JSX.Element;
    renderTopArrows(): JSX.Element;
    private mapColumnsBorder;
    private mapRaws;
    private mapColumnsContent;
    private handleAddBlue;
    private handleAddGreen;
    private handleAddBlack;
    getAttireFor(x: number, y: number): AttireContent;
    private handleAddRed;
    isHeader(x: number, y: number): boolean;
    handleKeyPressed(e: KeyboardEvent): void;
    private handleFileChange;
    private parseBoardFile;
    private handleRemoveBlue;
    private handleRemoveBlack;
    private handleRemoveGreen;
    private handleRemoveRed;
    private handleExportGBB;
    private handleThemeChange;
}
export {};
