import { defaultLoseRate } from "./modifier";
/**
 *
 * @param loseVec Lose rate of available choices. Act as a minimization objective.
 *      - ex. [.1, .2, .7] : lose rate .1 after calling 1 number,
 *      lose rate .2 after calling 2 number,
 *      lose rate .7 after calling 3 number.
 *      Thus, AI will call 3 numbers.
 * @param options Optional settings
 * @param options.absTol Arithematic error tolerance on comparison.
 * @returns Optimal choose rate for each choice.
 */
export declare function getChooseProb(loseVec: number[], { absTol }?: {
    absTol?: number;
}): number[];
export declare function getLookupMat(loseMat: number[][], maxCall: number, currentNum: number): number[][];
export declare function getLookupMatRev(loseMat: number[][], maxCall: number, currentNum: number, numEnd: number): number[][];
/**
 *
 * @param loseMat
 * @param maxCall
 * @param currentNum
 * @param options
 * @param options.vecModifier Apply modifier to lose rate vector. For setting kill target, improving player win rate, etc.
 * @returns (Modified) Lose rate vector regarding `loseMat`.
 */
export declare function getLoseVec(loseMat: number[][], maxCall: number, currentNum: number, { vecModifier }?: {
    vecModifier?: typeof defaultLoseRate | undefined;
}): number[];
export declare function getLoseVecRev(loseMat: number[][], maxCall: number, currentNum: number, numEnd: number, { vecModifier }?: {
    vecModifier?: typeof defaultLoseRate | undefined;
}): number[];
/**
 *
 * @param numPlayer Number of players
 * @param maxCount Maximam number of numbers player can call on his turn.
 * @param numEnd Final number of the game.
 * @returns ((`numEnd` + 1) x (`numPlayer`)) lose probability matrix.
 */
export declare function getFullLoseProbMat(numPlayer: number, maxCall: number, numEnd: number): number[][];
