const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('mangaApi', { meta: (sessionId) => ipcRenderer.invoke('mangaOnline:meta', sessionId), chapters: (sessionId, page) => ipcRenderer.invoke('mangaOnline:chapters', sessionId, page), chapterManifest: (sessionId, chapterId) => ( ipcRenderer.invoke('mangaOnline:chapterManifest', sessionId, chapterId) ), image: (sessionId, manifestId, index) => ( ipcRenderer.invoke('mangaOnline:image', sessionId, manifestId, index) ), closeSession: (sessionId) => ipcRenderer.invoke('mangaOnline:close', sessionId), getTheme: () => ipcRenderer.invoke('ui:getTheme'), setTheme: (theme) => ipcRenderer.invoke('ui:setTheme', theme), onThemeChanged: (callback) => { const listener = (_event, theme) => callback(theme); ipcRenderer.on('ui:themeChanged', listener); return () => ipcRenderer.removeListener('ui:themeChanged', listener); }, minimize: () => ipcRenderer.send('win:minimize'), maximize: () => ipcRenderer.send('win:maximize'), close: () => ipcRenderer.send('win:close') });