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'), // File system helpers pickFolder: () => ipcRenderer.invoke('pick-folder'), openFolder: (p) => ipcRenderer.invoke('open-folder', p), // 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', (_, d) => cb(d)), onStreamLog: (cb) => ipcRenderer.on('stream-log', (_, d) => cb(d)), onStreamError: (cb) => ipcRenderer.on('stream-error', (_, d) => cb(d)), onStreamEnded: (cb) => ipcRenderer.on('stream-ended', (_, d) => cb(d)), onStreamReconnecting: (cb) => ipcRenderer.on('stream-reconnecting', (_, d) => cb(d)), onAllStreamsStopped: (cb) => ipcRenderer.on('all-streams-stopped', () => cb()), removeAllListeners: (channel) => ipcRenderer.removeAllListeners(channel) })