// Path: src/main/java/com/fluxchess/pulse/MoveList.java
// static final class RootEntry extends MoveEntry {
// 
// 	final MoveVariation pv = new MoveVariation();
// }


import static com.fluxchess.pulse.MoveList.RootEntry;
/*
 * Copyright 2013-2021 Phokham Nonava
 *
 * Use of this source code is governed by the MIT license that can be
 * found in the LICENSE file.
 */
package com.fluxchess.pulse;


interface Protocol {

	void sendBestMove(int bestMove, int ponderMove);

	void sendStatus(int currentDepth, int currentMaxDepth, long totalNodes, int currentMove, int currentMoveNumber);

	void sendStatus(boolean force, int currentDepth, int currentMaxDepth, long totalNodes, int currentMove, int currentMoveNumber);

// Path: src/main/java/com/fluxchess/pulse/MoveList.java
// static final class RootEntry extends MoveEntry {
// 
// 	final MoveVariation pv = new MoveVariation();
// }


// Path: src/main/java/com/fluxchess/pulse/Protocol.java
import static com.fluxchess.pulse.MoveList.RootEntry;

/*
 * Copyright 2013-2021 Phokham Nonava
 *
 * Use of this source code is governed by the MIT license that can be
 * found in the LICENSE file.
 */
package com.fluxchess.pulse;


interface Protocol {

	void sendBestMove(int bestMove, int ponderMove);

	void sendStatus(int currentDepth, int currentMaxDepth, long totalNodes, int currentMove, int currentMoveNumber);

	void sendStatus(boolean force, int currentDepth, int currentMaxDepth, long totalNodes, int currentMove, int currentMoveNumber);

	void sendMove(RootEntry entry, int currentDepth, int currentMaxDepth, long totalNodes);