import { BoardState } from '../BoardState';
import { DicePip } from '../Dices';
import { BoardStateNode, NoMove } from '../BoardStateNode';
import { NodeBuilder } from './NodeBuilder';
/**
 * 指定された盤面について、指定された目を各ポイントに適用し、それぞれの場合の子局面を生成する。
 *
 * 生成された子局面は、ポイント位置に対して子局面を返す関数として返される。
 *
 * @param board 盤面
 * @param dicePip 盤面に対して使用したいダイス目
 * @param nodeBuilder ダイスが適用可能なポイントについて、適用後の状態を表す子局面ノードを生成する関数
 * @param mark この局面での未使用のダイスの数
 * @returns 各ポイントへのダイス適用可否（可の場合は{@link BoardStateNode}、否の場合は{@link NoMove}）を返す関数と、使用できなかったダイスの数（必ずmark以下の値となる）が返る
 *
 * 返値の未使用のダイスの数は、この局面で全くダイスが適用できない場合はmarkのままとなり、そうでなければ、
 * 子局面全体でできるだけ多くダイスを使った場合の、残りのダイス数となる。
 *
 */
export declare function applyDicePipToPoints(board: BoardState, dicePip: DicePip, nodeBuilder: NodeBuilder, mark: number): [(pos: number) => BoardStateNode | NoMove, number];
//# sourceMappingURL=applyDicePipToPoints.d.ts.map