import type { Color, GameStatus, Move, MoveOptions, CastlingRights, Square, GameConfig, Piece } from '@/types/index'; import { Board } from './board'; export declare class Game { private board; private moveGenerator; private currentTurn; private moveHistory; private castlingRights; private enPassantSquare; private halfMoveClock; private fullMoveNumber; private gameStatus; private positionHistory; constructor(config?: GameConfig); move(moveOptions: MoveOptions): Move | null; getLegalMoves(): Move[]; getLegalMovesFrom(square: Square): Move[]; undo(): Move | null; getStatus(): GameStatus; getTurn(): Color; getHistory(): Move[]; getBoard(): Board; getPosition(): { board: (Piece | null)[][]; turn: Color; castlingRights: CastlingRights; enPassantSquare: Square | null; halfMoveClock: number; fullMoveNumber: number; }; isGameOver(): boolean; isInCheck(): boolean; getCastlingRights(): CastlingRights; getEnPassantSquare(): Square | null; getHalfMoveClock(): number; getFullMoveNumber(): number; reset(): void; refreshMoveGenerator(): void; loadFen(fen: string): void; getFen(): string; private executeMove; private executeCastling; private undoCastling; private updateGameState; private updateCastlingRights; private updateGameStatus; private isEnPassantCapture; private isCastlingMove; private recordPosition; private getPositionKey; private isInsufficientMaterial; private restoreGameStateFromMove; private restoreInitialGameState; private generateSan; private getDisambiguation; } //# sourceMappingURL=game.d.ts.map