import type { Color, PieceType } from './types.js'; export type ModeratorText = | 'no_such_piece' | 'no_legal_moves' | 'wont_help' | 'illegal_move' | 'white_moved' | 'black_moved' | 'white_moved_captured' | 'black_moved_captured' | 'white_moved_captured_ep' | 'black_moved_captured_ep' | 'white_castled_kingside' | 'white_castled_queenside' | 'black_castled_kingside' | 'black_castled_queenside' | 'white_in_check' | 'black_in_check' | 'white_promoted' | 'black_promoted' | 'white_checkmate' | 'black_checkmate' | 'stalemate' | 'draw_insufficient' | 'draw_fifty' | 'draw_threefold' | 'white_resigned' | 'black_resigned' | 'draw_agreed' | 'game_abandoned'; export type Audience = Color | 'both'; export interface Announcement { ply: number; text: ModeratorText; audience: Audience; payload?: { promotedTo?: PieceType }; at: number; }