export type CommitPhase = "collecting" | "revealed"; export interface SealedCommit { playerId: string; action: TAction; sealedAt: number; } export interface CommitRoundConfig { participants: readonly string[]; allowReseal?: boolean; } export type SealResult = { ok: true; allSealed: boolean; } | { ok: false; reason: "unknown_participant" | "already_sealed" | "already_revealed"; }; /** @internal */ export declare class CommitRound { private readonly order; private readonly participants; private readonly allowReseal; private readonly sealed; private revealedFlag; constructor(config: CommitRoundConfig); seal(playerId: string, action: TAction, at: number): SealResult; hasSealed(playerId: string): boolean; sealedCount(): number; pending(): string[]; allSealed(): boolean; get phase(): CommitPhase; reveal(): readonly SealedCommit[] | null; } /** @internal */ export declare function createCommitRound(config: CommitRoundConfig): CommitRound; /** @internal */ export declare function resolveCommits(reveals: readonly SealedCommit[], resolver: (ordered: readonly SealedCommit[]) => TResult): TResult;