import type { JsonObject } from "@elgato/utils";

export type FilyxSettings = JsonObject & {
  apiUrl?: string;
  apiKey?: string;
  channelId?: string;
  buttonTitle?: string;
  title?: string;
  alertType?: string;
  game?: string;
  control?: string;
  seconds?: number;
  widget?: string;
  enabled?: boolean;
  announceInChat?: boolean;
  chatMessage?: string;
  message?: string;
  multiSteps?: string;
  obsHost?: string;
  obsPort?: number;
  obsPassword?: string;
  obsConnectionMode?: "shared" | "local";
  sceneName?: string;
  sourceName?: string;
  sourceVisible?: string;
  confirmUntil?: number;
};

export type FilyxGlobalSettings = JsonObject & {
  apiUrl?: string;
  apiKey?: string;
  deviceId?: string;
  pairingId?: string;
  pairingToken?: string;
  pairingExpiresAt?: number;
};

export type FilyxTheme = { accent: string; background: string; text: string; muted: string };
export type FilyxSelectedTheme = { id: number; name: string; theme: FilyxTheme };
export type FilyxResponse = { ok: boolean; message?: string; error?: string; result?: Record<string, unknown>; theme?: FilyxSelectedTheme };
