export type PauseMode = "playing" | "soft-paused" | "full-paused";
export type GlitchPlayerMode = "playback" | "slide-preview";

export type ViewportMode = "mobile-portrait" | "mobile-landscape" | "desktop";

export interface DeviceContext {
  viewportMode: ViewportMode;
  userAgent: string;
  platform: string;
}

export interface PendingVote {
  lectureId: string;
  slideId: string;
  previousGlitchSlideId: string;
  selectedGlitchSlideId: string;
  startedAtSec: number;
  createdAtIso: string;
}

export interface PlayerState {
  lectureId: string;
  globalTimeSec: number;
  activeSegmentId: string | null;
  activeSlideId: string | null;
  activeGlitchSlideId: string | null;
  pauseMode: PauseMode;
  isDragging: boolean;
  isHolding: boolean;
  userOverrodeCurrentSlide: boolean;
  pendingVote: PendingVote | null;
  viewportMode: ViewportMode;
  sessionSlideOverrides: Record<string, string>;
  sessionId: string;
}
