import { contextBridge, ipcRenderer } from "electron" contextBridge.exposeInMainWorld("electronAPI", { focusWindow: () => ipcRenderer.send("window:focus"), setTheme: (dark: boolean) => ipcRenderer.send("window:setTheme", dark), minimizeWindow: () => ipcRenderer.send("window:minimize"), maximizeWindow: () => ipcRenderer.send("window:maximize"), closeWindow: () => ipcRenderer.send("window:close"), isMaximized: () => ipcRenderer.invoke("window:isMaximized"), onMaximizeChange: (callback: (maximized: boolean) => void) => { ipcRenderer.on("window:maximize-change", (_event, value) => callback(value)) }, openFileDialog: (filters: { name: string; extensions: string[] }[]) => ipcRenderer.invoke("dialog:openFile", filters), saveFileDialog: (defaultName: string, filters: { name: string; extensions: string[] }[]) => ipcRenderer.invoke("dialog:saveFile", defaultName, filters), readFile: (path: string) => ipcRenderer.invoke("file:read", path), writeFile: (path: string, data: string) => ipcRenderer.invoke("file:write", path, data), readImage: (path: string) => ipcRenderer.invoke("file:readImage", path), writeBinaryFile: (path: string, base64: string) => ipcRenderer.invoke("file:writeBinary", path, base64), getAppPath: () => ipcRenderer.invoke("app:getPath"), })