import { Move } from './Move';
/**
 *  指し手を表現するとともに、絶対表記を含め、様々なフォーマットでの出力に対応するインターフェース
 */
export interface AbsoluteMove {
    fromAbs: number;
    toAbs: number;
    fromAbsInv: number;
    toAbsInv: number;
    fromDec: number;
    toDec: number;
    fromAsc: number;
    toAsc: number;
    isBearOff: boolean;
    isReenter: boolean;
    isHit: boolean;
    pip: number;
}
/**
 * 相対表記のムーブの配列を、白の手番のムーブとして絶対表記のムーブの配列に変換する
 * @param moves 相対表記のムーブの配列
 * @param invertPos 座標変換関数
 * @returns
 */
export declare function absoluteMovesWhite(moves: {
    from: number;
    to: number;
    isHit?: boolean;
}[], invertPos?: (pos: number) => number): AbsoluteMove[];
/**
 * 相対表記のムーブの配列を、赤の手番のムーブとして絶対表記のムーブの配列に変換する
 * @param moves 相対表記のムーブの配列
 * @param invertPos 座標変換関数
 * @returns
 */
export declare function absoluteMovesRed(moves: {
    from: number;
    to: number;
    isHit?: boolean;
}[], invertPos?: (pos: number) => number): AbsoluteMove[];
declare type AMove = Pick<Move, 'from' | 'to' | 'isHit' | 'pip'>;
/**
 * 最小限の項目からなる相対表記のムーブの配列を、白の手番のムーブとして絶対表記のムーブの配列に変換する
 * @param moves 相対表記のムーブの配列
 * @param invertPos 座標変換関数
 * @returns
 */
export declare function makeMovesAbsoluteAsWhite(moves: AMove[], invertPos?: (pos: number) => number): AbsoluteMove[];
/**
 * 最小限の項目からなる相対表記のムーブの配列を、赤の手番のムーブとして絶対表記のムーブの配列に変換する
 * @param moves 相対表記のムーブの配列
 * @param invertPos 座標変換関数
 * @returns
 */
export declare function makeMovesAbsoluteAsRed(moves: AMove[], invertPos?: (pos: number) => number): AbsoluteMove[];
/**
 * 最小限の項目からなる相対表記のムーブを、白の手番のムーブとして絶対表記のムーブに変換する
 * @param moves 相対表記のムーブ
 * @param invertPos 座標変換関数
 * @returns
 */
export declare function makeMoveAbsoluteAsWhite(move: AMove, invertPos?: (pos: number) => number): AbsoluteMove;
/**
 * 最小限の項目からなる相対表記のムーブを、赤の手番のムーブとして絶対表記のムーブに変換する
 * @param moves 相対表記のムーブ
 * @param invertPos 座標変換関数
 * @returns
 */
export declare function makeMoveAbsoluteAsRed(move: AMove, invertPos?: (pos: number) => number): AbsoluteMove;
export {};
//# sourceMappingURL=AbsoluteMove.d.ts.map