const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('api', { // Config getConfig: () => ipcRenderer.invoke('get-config'), saveConfig: (config) => ipcRenderer.invoke('save-config', config), getHistory: () => ipcRenderer.invoke('get-history'), clearHistory: () => ipcRenderer.invoke('clear-history'), // File selection selectFiles: () => ipcRenderer.invoke('select-files'), // Upload control startUpload: (payload) => ipcRenderer.invoke('start-upload', payload), cancelUpload: () => ipcRenderer.invoke('cancel-upload'), runHealthCheck: (payload) => ipcRenderer.invoke('run-health-check', payload), // Clipboard copyToClipboard: (text) => ipcRenderer.invoke('copy-to-clipboard', text), // Events (main -> renderer) onUploadProgress: (callback) => { ipcRenderer.on('upload-progress', (_event, data) => callback(data)); }, onUploadBatchDone: (callback) => { ipcRenderer.on('upload-batch-done', (_event, data) => callback(data)); }, removeAllListeners: () => { ipcRenderer.removeAllListeners('upload-progress'); ipcRenderer.removeAllListeners('upload-batch-done'); } });