export type Color = 'white' | 'black'; export type PieceType = 'king' | 'queen' | 'rook' | 'bishop' | 'knight' | 'pawn'; export interface Piece { type: PieceType; color: Color; } export type Square = string; export type Position = number; export type File = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h'; export type Rank = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; export interface Move { from: Square; to: Square; piece: Piece; captured?: Piece; promotion?: PieceType; castling?: 'kingside' | 'queenside'; enPassant?: boolean; san?: string; check?: boolean; checkmate?: boolean; } export interface MoveValidation { valid: boolean; error?: string; } export type GameStatus = 'active' | 'check' | 'checkmate' | 'stalemate' | 'draw' | 'insufficient_material' | 'threefold_repetition' | 'fifty_move_rule'; export interface GameState { board: (Piece | null)[][]; turn: Color; status: GameStatus; moveHistory: Move[]; halfMoveClock: number; fullMoveNumber: number; castlingRights: CastlingRights; enPassantSquare: Square | null; } export interface CastlingRights { whiteKingside: boolean; whiteQueenside: boolean; blackKingside: boolean; blackQueenside: boolean; } export type Fen = string; export type Pgn = string; export interface Coordinates { row: number; col: number; } export interface MoveOptions { from: Square; to: Square; promotion?: PieceType; } export interface GameConfig { fen?: Fen; validateMoves?: boolean; } export type {}; //# sourceMappingURL=index.d.ts.map