export type GameMode = 'daily' | 'infinite' | 'evil-daily' | 'custom' | 'super-evil';

export type LetterState = 'correct' | 'present' | 'absent' | 'empty';

export type GameStatus = 'playing' | 'won' | 'lost';

export type Difficulty = 'wicked' | 'vicious' | 'nightmare';

export type GuessResult = {
  letter: string;
  state: LetterState;
};

export type Settings = {
  wordLength: 4 | 5 | 6 | 7;
  difficulty: Difficulty;
};

export type Stats = {
  gamesPlayed: number;
  wins: number;
  losses: number;
  currentStreak: number;
  bestStreak: number;
  infiniteLevel: number;
  infiniteWins: number;
  infiniteLosses: number;
};

export type SavedProgress = {
  dateKey: string;
  mode: GameMode;
  target: string;
  guesses: string[];
  status: GameStatus;
  level: number;
  isPractice: boolean;
};
