import { IBoard } from "./board"; import { IMove } from "./move"; import { Colour } from "./colour"; export declare const Terminations: { Mate: number; Timeout: number; Resignation: number; Stalemate: number; InsufficientMaterial: number; FiftyMoveRule: number; Repetition: number; Agreement: number; }; export type Termination = typeof Terminations.Mate | typeof Terminations.Timeout | typeof Terminations.Resignation | typeof Terminations.Stalemate | typeof Terminations.InsufficientMaterial | typeof Terminations.FiftyMoveRule | typeof Terminations.Repetition | typeof Terminations.Agreement; export declare const TerminationApi: ITerminationApi; export interface ITerminationApi { getTermination(board: IBoard, legalMoves: Array, enemyMoves: Array): Termination | null; isInMateWhenNoLegalMoves(board: IBoard, attacksOurKing: boolean): Colour | null; isInStalemateWhenNoLegalMoves(board: IBoard, attacksOurKing: boolean): boolean; isFiftyMoveRule(board: IBoard): boolean; isInsufficientMaterial(board: IBoard): boolean; }