import { EvaluatedHand } from './types';
import { TableOdds, PlayerOdds } from "./types/odds.interface";
export declare function evalHand(cards: string[] | number[]): EvaluatedHand;
export declare function evalCard(card: number): number;
/**
 * This function takes the cards in a players hand as well as the community cards (if any) on the table.
 * Given the player count at the table and the number of simulation cycles to run, this estimates the odds of winning the hand.
 * Split pots are not counted as a win, so with a royal flush community hand, every player would have winning odds of 0.0.
 * The more cycles used, the more precise the number will become.  The time complexity of this function is a factor
 * of the player count multiplied by the number of cycles.  Hands with fewer cards on the table will take slightly longer.
 *
 * This does not use any tables, mathematical functions, or other heuristics.  It simply uses a Monte Carlo method.
 * This means that winning odds will vary with the same cards between runs, even with a very high cycle count.
 *
 * Cycles counts of 1000 tend to yield similar results to 100000 however, so unlike a chess engine, there are not
 * dramatically different qualities of results with longer calculating times.  In cases where the player may be aiming
 * for something very unlikely, like a straight flush or four of a kind, running 30000 or more cycles will help in getting
 * odds other than 0, instead yielding the correct ~0.0001.
 */
export declare function winningOddsForPlayer(hand: string[], community: string[], playerCount: number, cycles: number): PlayerOdds;
export declare function winningOddsForTable(knownPartialHands: string[][], community: string[], playerCount: number, cycles: number): TableOdds;
