import { IMove } from "./move"; import { BoardPosition } from "./boardPosition"; import { Piece } from "./piece"; import { SquareIndex } from "./square"; import { Colour } from "./colour"; interface IPawnMoveGenerator { generatePawnMoves(boardPosition: BoardPosition, piece: Piece, index: SquareIndex, posX: number, posY: number, colour: Colour, moveList: Array, enPassant: SquareIndex | null): void; validateYPositionToMoveTwoSquare(posY: number, colour: Colour): boolean; isOneSquareAheadEmpty(boardPosition: BoardPosition, yDir: number, posX: number, posY: number): boolean; getYDir(colour: Colour): number; tryAddTwoSquareMoveIfLegalAndOneSquareIsEmpty(piece: Piece, boardPosition: BoardPosition, colour: Colour, yDir: number, posX: number, posY: number, index: SquareIndex, moveList: Array): void; addMove(piece: Piece, from: SquareIndex, target: SquareIndex, targetPiece: Piece, moveList: Array): void; addCaptureMove(boardPosition: BoardPosition, piece: Piece, index: SquareIndex, posX: number, posY: number, colour: Colour, moveList: Array): void; addOneMoveIfOneSquareAheadIsEmpty(piece: Piece, index: SquareIndex, targetIndex: SquareIndex, moveList: Array): void; tryAddEnPassant(piece: Piece, colour: Colour, index: SquareIndex, enPassant: SquareIndex | null, yDir: number, posX: number, posY: number, moveList: Array): void; trySetEnPassantWhenMovesTwoSquare(colour: Colour, boardPosition: BoardPosition, posX: number, posY: number, targetY: number, yDir: number): SquareIndex | null; addMoveWithOptionalSetEnPassant(piece: Piece, from: SquareIndex, target: SquareIndex, targetPiece: Piece, moveList: Array, setEnPassant: SquareIndex | null): void; } export declare const PawnMoveGenerator: IPawnMoveGenerator; export {};