import { contextBridge, ipcRenderer } from 'electron' const api = { ping: () => ipcRenderer.invoke('app:ping'), workspace: { pick: () => ipcRenderer.invoke('workspace:pick') as Promise, get: () => ipcRenderer.invoke('workspace:get') as Promise, clear: () => ipcRenderer.invoke('workspace:clear') as Promise, init: (root: string) => ipcRenderer.invoke('workspace:init', root) as Promise }, env: { read: (root: string) => ipcRenderer.invoke('env:read', root) as Promise, write: (root: string, data: any) => ipcRenderer.invoke('env:write', root, data) as Promise }, apiProject: { read: (root: string) => ipcRenderer.invoke('api:project:read', root) as Promise, write: (root: string, data: any) => ipcRenderer.invoke('api:project:write', root, data) as Promise }, api: { read: (root: string, relativePath: string) => ipcRenderer.invoke('api:read', root, relativePath) as Promise, write: (root: string, relativePath: string, data: any) => ipcRenderer.invoke('api:write', root, relativePath, data) as Promise, create: (root: string, relativeDir: string, apiData: any) => ipcRenderer.invoke('api:create', root, relativeDir, apiData) as Promise<{ id: string; filePath: string }> }, shell: { openDir: (dir: string) => ipcRenderer.invoke('shell:openDir', dir) as Promise } } contextBridge.exposeInMainWorld('xs', api) export type XsApi = typeof api