const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { // Config getConfig: () => ipcRenderer.invoke('get-config'), saveConfig: (config) => ipcRenderer.invoke('save-config', config), // Devices getDevices: () => ipcRenderer.invoke('get-devices'), getWindows: () => ipcRenderer.invoke('get-windows'), // Streams startStream: (config) => ipcRenderer.invoke('start-stream', config), stopStream: (id) => ipcRenderer.invoke('stop-stream', id), getActiveStreams: () => ipcRenderer.invoke('get-active-streams'), // Tolbek receiver startTolbek: (config) => ipcRenderer.invoke('start-tolbek', config), stopTolbek: () => ipcRenderer.invoke('stop-tolbek'), // Window controls minimizeWindow: () => ipcRenderer.invoke('minimize-window'), hideWindow: () => ipcRenderer.invoke('hide-window'), updateTrayCount: (count) => ipcRenderer.send('update-tray-count', count), // Event listeners onStreamStatus: (cb) => ipcRenderer.on('stream-status', (_, data) => cb(data)), onStreamLog: (cb) => ipcRenderer.on('stream-log', (_, data) => cb(data)), onStreamError: (cb) => ipcRenderer.on('stream-error', (_, data) => cb(data)), onStreamEnded: (cb) => ipcRenderer.on('stream-ended', (_, data) => cb(data)), onAllStreamsStopped: (cb) => ipcRenderer.on('all-streams-stopped', () => cb()), removeAllListeners: (channel) => ipcRenderer.removeAllListeners(channel) })