export interface TimeControl { timeSet: number; stopTime: number; stopped: number; time: number; } export default class WukongSearch { private readonly MAX_PLY; private readonly INFINITY; private readonly MATE_VALUE; private readonly MATE_SCORE; private readonly DO_NULL; private readonly NO_NULL; private readonly ALL_MOVES; private readonly ONLY_CAPTURES; private readonly NO_HASH; private readonly HASH_EXACT; private readonly HASH_ALPHA; private readonly HASH_BETA; private readonly MVV_LVA; private nodes; private followPv; private pvTable; private pvLength; private killerMoves; private historyMoves; private timing; private core; constructor(core: any); setTimeControl(timeControl: TimeControl): void; resetTimeControl(): void; getTimeControl(): TimeControl; clearSearch(): void; private checkTime; sortMoves(currentCount: number, moveList: { move: number; score: number; }[]): void; sortPvMove(moveList: { move: number; score: number; }[], bestMove: { value: number; }): void; storePvMove(move: number): void; readHashEntry(alpha: number, beta: number, bestMove: { value: number; }, depth: number): number; writeHashEntry(score: number, bestMove: number, depth: number, hashFlag: number): void; private perftDriver; perftTest(depth: number): void; private quiescence; private negamax; searchPosition(depth: number): number; assignMoveScores(moveList: { move: number; score: number; }[]): void; getPublicAPI(): { search: (depth: number) => number; perft: (depth: number) => void; setTimeControl: (timeControl: TimeControl) => void; resetTimeControl: () => void; clearSearch: () => void; }; }