import { GameStateObject, PossibleMoves, PromotionPossibility } from "../types/game";
export declare class Game {
    private fen;
    private gameState;
    private movesNext;
    castlingAvailability: string;
    enPassantPossibility: string;
    halfMoveClock: number;
    fullMoveNumber: number;
    possibleMoves: PossibleMoves;
    isCheck: boolean;
    isCheckmate: boolean;
    private isStalemate;
    private isInsufficientMaterial;
    private START_GAME_FEN;
    constructor(fen?: string);
    private parseGameStateRowFen;
    private parseGameStateFen;
    private fenToGameState;
    private getAllPossibleMoves;
    getGameStateObject(): GameStateObject;
    isPromotionMove(from: string, to: string): boolean;
    isDraw(): {
        isDraw: boolean;
        reason: string;
    } | {
        isDraw: boolean;
        reason?: undefined;
    };
    move(from: string, to: string, promotion?: PromotionPossibility): boolean;
    generateFen(): string;
    getNextColor(): "black" | "white";
}
export default Game;
