/** Scoring choices that vary between otherwise standard riichi rulesets. */ export interface Ruleset { /** Whether an open all-simples hand receives tanyao. */ openTanyao: boolean; /** Fu awarded to a pair matching both round and seat wind. */ doubleWindPairFu: 2 | 4; /** Fu floor for an open all-run hand with no other fu. */ openPinfuMinimumFu: 20 | 30; /** Promote 4 han 30 fu and 3 han 60 fu to mangan. */ kiriageMangan: boolean; /** Treat 13+ naturally accumulated han as yakuman rather than sanbaiman. */ kazoeYakuman: boolean; /** Permit four matching concealed tiles to count as two chiitoitsu pairs. */ kansaiChiitoitsu: boolean; /** Local single-hand double-yakuman variants. */ doubleYakuman: { daisuushii: boolean; kokushi13Wait: boolean; suuankouTanki: boolean; junseiChuuren: boolean; }; /** Physical red-five availability by suit. */ akaDora: { manzu: number; pinzu: number; souzu: number; }; } export type RulesetOptions = Omit, "akaDora" | "doubleYakuman"> & { akaDora?: Partial; doubleYakuman?: Partial; }; /** The established current behavior, named so callers can select it explicitly. */ export declare const TENHOU_RULESET: Readonly; /** Resolve caller overrides without allowing shared default state to be mutated. */ export declare function createRuleset(options?: RulesetOptions): Ruleset; //# sourceMappingURL=ruleset.d.ts.map