import type { Task } from './task-types'; import { CONFIG_KEYS, WINDOW_NAMES } from './constants'; export type ThemeMode = 'dark' | 'light' | 'system'; export type WindowNames = `${WINDOW_NAMES}`; export type ConfigKeys = `${CONFIG_KEYS}`; export interface IConfig { [CONFIG_KEYS.THEME_MODE]: ThemeMode; [CONFIG_KEYS.PRIMARY_COLOR]: string; [CONFIG_KEYS.LANGUAGE]: 'zh' | 'en'; [CONFIG_KEYS.FONT_SIZE]: number; [CONFIG_KEYS.MINIMIZE_TO_TRAY]: boolean; [CONFIG_KEYS.PROVIDER]?: string; [CONFIG_KEYS.DEFAULT_MODEL]?: string | null; [CONFIG_KEYS.AUTO_CHECK_UPDATE]?: boolean; [CONFIG_KEYS.AUTO_DOWNLOAD_UPDATE]?: boolean; [CONFIG_KEYS.SELECTED_CHANNELS]: Array<{ id: string; channelName: string; channelUrl: string }>; [CONFIG_KEYS.IMAGE_CACHE]: Array<[string, any]>; [CONFIG_KEYS.TASK_LIST]?: Task[]; } export interface Provider { id: number; name: string; visible?: boolean; title?: string; type?: 'OpenAI'; openAISetting?: string; createdAt: number; updatedAt: number; models: string[]; } export interface OpenAISetting { baseURL?: string; apiKey?: string; }