export interface SongData {
  song_id: string;
  song_url: string;
  image_url: string;
  title: string;
  description: string;
  styles: string[];
  start_time: string;
  duration: number;
  winning_style?: string;
  next_styles?: string[];
}

export interface VoteStatus {
  styles: string[];
  votes: number[];
  vote_session_uuid: string;
  vote_closed?: boolean;
  winning_style: string | null;
}

export interface ViewingCount {
  active_listeners: number;
}

export interface VoteMessageMetadata {
  type: 'vote';
  userId?: string;
  style?: string;
  styleIndex?: number;
  styleColor?: string;
  previousStyle?: string | null;
  previousStyleIndex?: number | null;
  previousStyleColor?: string | null;
  isNewVote?: boolean;
  isSwitching?: boolean;
}

export interface ChatMessageSentResponse {
  response: {
    status: number;
  };
  error?: {
    detail?: string;
  };
}
