/// import { EventEmitter } from 'events'; import Board from './Board'; import Player from './Player'; import Tile from './Tile'; export declare class Game { eventEmitter: EventEmitter; gameEventString: string; white: Player; black: Player; board: Board; over: boolean; ct: number; /** * constuctor for a game * @constructor * @param {Player} white The white player. * @param {Player} black The black player. * @param {Board} board The board for the game. * @param {EventEmitter} eventEmitter The event emitter for the game * @param {string} gameEventString the string used to identify what event to listen to. */ constructor(eventEmitter: EventEmitter, gameEventString: string, white?: Player, black?: Player, board?: Board); static fromGame: (game: Game) => Game; /** * @param func referance to a function that prints information */ start: (func: (move: string) => void, whitePlayer: string, blackPlayer: string, pre?: (() => void) | undefined) => void; /** * Method to get the current board layout * @returns {string} current board layout */ getBoard: () => string; /** Algorithm for determining check. * @returns {boolean} true if the current player is in check, false if not */ check(currentPlayer: Player, enemyPlayer: Player, board: Board): boolean; /** Algorithm for determining check mate. * @returns {boolean} true if the current player is in checkMate, false if not */ checkMate(currentPlayer: Player, enemyPlayer: Player, theBoard: Board): boolean; /** * @TODO Not implemented */ stalemate: () => void | true; /** * @TODO Not implemented * @param {Tile} tile * @param {Player} player * @param {Player} enemyPlayer */ castle(tile: Tile, player: Player, enemyPlayer: Player): boolean; /** * Will promote pawn to a Queen * if the pawn is black, when the pawn reaches the top of the board. * if the pawn is white, when the pawn reaches the bottom of the board. * @param {Player} currentPlayer */ promotePawn(currentPlayer: Player): void; } export declare const genRealMove: (str: string) => Tile | null; export declare const genMove: (str: string) => Tile | null;