import { IMove } from "./move"; import { BoardPosition } from "./boardPosition"; import { IBoard } from "./board"; import { Colour } from "./colour"; export interface IMoveMaker { isCastlingMove(move: IMove): boolean; makePromotionMove(boardPosition: BoardPosition, move: IMove): void; makeCastle(boardPosition: BoardPosition, move: IMove): void; isEnPassant(move: IMove): { fromX: number; targetX: number; } | null; makeNormalMove(board: IBoard, boardPosition: BoardPosition, move: IMove): void; makeMove(board: IBoard, move: IMove): void; makeEnPassant(boardPosition: BoardPosition, move: IMove, fromX: number, targetX: number): void; disableCastling(board: IBoard, move: IMove): void; clearEnPassant(board: IBoard): void; modifyFullMoveNumber(board: IBoard, move: IMove, colour: Colour): void; modifyHalfMoveNumber(board: IBoard, move: IMove, colour: Colour, isCastling: boolean, isEnPassant: boolean): void; isAttack(board: IBoard, move: IMove, colour: Colour, isCastling: boolean, isEnPassant: boolean): boolean; makeNormalMoveOnBoard(boardPosition: BoardPosition, move: IMove): void; trySetEnPassant(board: IBoard, move: IMove): void; tryDisableCastling(board: IBoard, move: IMove, isCastling: boolean): void; updateColourToMove(board: IBoard, move: IMove, colour: Colour): void; makeMoveOnBoard(boardPosition: BoardPosition, move: IMove): void; undoCastleMove(boardPosition: BoardPosition, move: IMove): void; undoEnPassantMove(boardPosition: BoardPosition, move: IMove): void; undoNormalMove(boardPosition: BoardPosition, move: IMove): void; undoMoveOnBoard(boardPosition: BoardPosition, move: IMove): void; } export declare const MoveMaker: IMoveMaker;