export type {
  MediaFile,
  User,
  CurrentUser,
  VideoModel,
  VideoFile,
  Video,
  ModelPhoto,
  Model,
  ArticleAuthor,
  Article,
  CommentUser,
  Comment,
  Stats,
  RecordedEvent,
  DeviceInfo,
  Recording,
  VideoLikeStatus,
  VideoPlayRecord,
  VideoLikeResponse,
  VideoPlayResponse,
  VideoAnalytics,
  Analytics,
  LeaderboardEntry,
  UserStats,
  UserAchievement,
  RecentPoint,
  UserGamification,
  Achievement,
} from "@sexy/types";

import type { CurrentUser } from "@sexy/types";
import type { ButtplugClientDevice } from "@sexy/buttplug";

// ─── Frontend-only types ─────────────────────────────────────────────────────

export interface AuthStatus {
  authenticated: boolean;
  user?: CurrentUser;
  data?: {
    refresh_token: string | null;
  };
}

export interface ShareContent {
  title: string;
  description: string;
  url: string;
  type: "video" | "model" | "article" | "link";
}

export interface DeviceActuator {
  featureIndex: number;
  outputType: string;
  maxSteps: number;
  descriptor: string;
  value: number;
}

export interface BluetoothDevice {
  id: string;
  name: string;
  actuators: DeviceActuator[];
  batteryLevel: number;
  hasBattery: boolean;
  isConnected: boolean;
  lastSeen: Date;
  info: ButtplugClientDevice;
}
