import type { BracketsState, Match, MatchInput, Player, PlayerInput, Rounds, RoundsInput, WinnerState } from '../types'; export declare class BracketModelHelper { private static idSeq; private static nextId; private static nextPowerOfTwo; static normalizePlayer(raw: PlayerInput | null | undefined): Player | null; private static clonePlayer; private static createMatch; private static resolveWinnerId; /** Round with exactly 2 matches (semifinals). Null if bracket is too small. */ static getSemifinalRoundIndex(rounds: Rounds): number | null; /** Final is the 1-match round just before the champion display round (or last 1-match). */ static getFinalRoundIndex(rounds: Rounds): number | null; private static loserOf; private static buildThirdPlaceFromSemis; static normalizeRounds(rawRounds: RoundsInput | null | undefined, options?: { thirdPlace?: boolean | MatchInput; }): { rounds: Rounds; thirdPlace: Match | null; }; private static applyByeAdvances; private static deepCloneRounds; private static cloneThirdPlace; private static syncThirdPlaceFromSemis; static setWinner(state: WinnerState, roundIndex: number | 'thirdPlace', matchIndex: number, playerId: string): WinnerState; private static clearDownstream; private static advanceWinner; static getSerializableState(state: { titles: boolean | string[]; rounds: Rounds; thirdPlace?: Match | null; }): BracketsState; }