export interface userInfo { avatar?: string|null, status?: string|null, coutry?: string|null, id?: string, registered?: number, type?: string, username?: string, relation?: "none"|"friends"|"incoming"|"outgoing"|"blocked", }; export type ruleset = { timelimit: { enabled: boolean; minutes?: number; seconds?: number; addmove?: number; shared: boolean; }, ranked: boolean; } export type userColors = { diskA: string; diskB: string; background: string; } export interface userPreferences { darkMode?: boolean; ruleset?: ruleset; userColors?: userColors; } export interface userGameTotals { draw: number; games: number; lose: number; win: number; } export type outcome = "w" | "l" | "d"; export interface userGames { totals: userGameTotals; games: Array; } export interface gameInfo { created: number; duration: number; id: string; moves: Array; opponent?: userInfo; outcome: outcome; parent?: string; private: boolean; rating?: number; rating_opponent?: number; ruleset: ruleset; started: number; status: "finished"|"in_progress"|"resign"|"wait_for_opponent"; }