// Site Configuration Types export interface SiteConfig { id: string; name: string; url: string; logo: string; enabled: boolean; useProxy: boolean; searchScript: string; // Path to custom search script file } export interface ConfigData { version: string; lastUpdated: string; sites: SiteConfig[]; } // Search Results export interface SearchResult { name: string; // Movie/Series name url: string; // Link to the movie page image?: string; // Poster image year?: string; description?: string; rating?: string; } export interface SearchResultWithSource extends SearchResult { source: string; // Site ID sourceName: string; // Site Name } // Bookmark Types export interface Bookmark { id: string; title: string; url: string; image?: string; siteId: string; siteName: string; createdAt: string; metadata?: { year?: string; description?: string; rating?: string; }; } // Active Tab Types export interface ActiveTab { id: string; title: string; url: string; favicon?: string; isActive: boolean; createdAt: string; } // Version Check Types export interface VersionInfo { latestVersion: string; currentVersion: string; releaseDate: string; changelog: string; } export interface UpdateProgress { percent: number; bytesPerSecond: number; transferred: number; total: number; } export interface UpdateCheckResult { updateAvailable: boolean; latestVersion: string; } // Proxy Types export interface ProxyStatus { isRunning: boolean; port?: number; error?: string; } // Settings Types export interface AppSettings { configServerUrl: string; lastConfigUpdate?: string; proxyAutoStart: boolean; theme: 'light' | 'dark'; language: 'ru' | 'en'; downloadFolder?: string; } // IPC Channels export enum IPC_CHANNELS { // Config GET_CONFIG = 'config:get', UPDATE_CONFIG = 'config:update', SAVE_CONFIG = 'config:save', // Search SEARCH_ALL_SITES = 'search:all', SEARCH_SITE = 'search:site', // Bookmarks GET_BOOKMARKS = 'bookmarks:get', ADD_BOOKMARK = 'bookmarks:add', REMOVE_BOOKMARK = 'bookmarks:remove', // Tabs GET_TABS = 'tabs:get', CREATE_TAB = 'tabs:create', CLOSE_TAB = 'tabs:close', ACTIVATE_TAB = 'tabs:activate', HIDE_ACTIVE_TAB = 'tabs:hide', // Proxy GET_PROXY_STATUS = 'proxy:status', START_PROXY = 'proxy:start', STOP_PROXY = 'proxy:stop', // Version CHECK_VERSION = 'version:check', INSTALL_UPDATE = 'version:install', GET_APP_VERSION = 'app:version', // Settings GET_SETTINGS = 'settings:get', SAVE_SETTINGS = 'settings:save', }