import { contextBridge, ipcRenderer } from 'electron'; const localCdnPreference = { cdn: 'local', latency: 0, timestamp: Date.now(), }; const windowControls = { minimize: () => ipcRenderer.invoke('truegrowth-window:minimize'), toggleMaximize: () => ipcRenderer.invoke('truegrowth-window:toggle-maximize'), close: () => ipcRenderer.invoke('truegrowth-window:close'), getState: () => ipcRenderer.invoke('truegrowth-window:is-maximized'), onStateChange: (callback: (state: unknown) => void) => { if (typeof callback !== 'function') { return () => undefined; } const listener = (_event: Electron.IpcRendererEvent, state: unknown) => callback(state); ipcRenderer.on('truegrowth-window:state', listener); return () => ipcRenderer.removeListener('truegrowth-window:state', listener); }, }; contextBridge.exposeInMainWorld('trueGrowthRuntime', { app: 'TrueGrowth', platform: process.platform, assetMode: 'local', localApiBaseUrl: 'http://127.0.0.1:48177/local-api', windowControls, }); contextBridge.exposeInMainWorld('__OPENTU_DESKTOP__', true); contextBridge.exposeInMainWorld('__OPENTU_CDN__', localCdnPreference); contextBridge.exposeInMainWorld('__AITU_CDN__', localCdnPreference);