const { contextBridge, ipcRenderer } = require('electron') const api = { pty: { write: (data) => ipcRenderer.send('pty:write', data), resize: (cols, rows) => ipcRenderer.send('pty:resize', cols, rows), onData: (callback) => { const handler = (_event, data) => callback(data) ipcRenderer.on('pty:data', handler) return () => ipcRenderer.removeListener('pty:data', handler) }, onExit: (callback) => { const handler = (_event, code) => callback(code) ipcRenderer.on('pty:exit', handler) return () => ipcRenderer.removeListener('pty:exit', handler) }, }, window: { expand: () => ipcRenderer.send('window:expand'), collapse: () => ipcRenderer.send('window:collapse'), setPosition: (x, y) => ipcRenderer.send('window:set-position', x, y), setIgnoreMouseEvents: (ignore) => ipcRenderer.send('window:set-ignore-mouse', ignore), close: () => ipcRenderer.send('window:close'), minimize: () => ipcRenderer.send('window:minimize'), }, } contextBridge.exposeInMainWorld('petAPI', api)