import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron'; contextBridge.exposeInMainWorld('electronAPI', { getAccounts: () => ipcRenderer.invoke('get-accounts'), addAccount: (account: { identifier: string }) => ipcRenderer.invoke('add-account', account), updateAccount: (id: string, data: any) => ipcRenderer.invoke('update-account', id, data), deleteAccount: (id: string) => ipcRenderer.invoke('delete-account', id), switchAccount: (loginName: string) => ipcRenderer.invoke('switch-account', loginName), shareAccountWithUser: (steamId: string, targetSteamId: string) => ipcRenderer.invoke('share-account-with-user', steamId, targetSteamId), revokeAccountAccess: (steamId: string, targetSteamId: string) => ipcRenderer.invoke('revoke-account-access', steamId, targetSteamId), revokeAllAccountAccess: (steamId: string) => ipcRenderer.invoke('revoke-all-account-access', steamId), openExternal: (url: string) => ipcRenderer.invoke('open-external', url), openSteamAppLogin: () => ipcRenderer.invoke('open-steam-app-login'), openSteamLogin: (steamId: string) => ipcRenderer.invoke('open-steam-login', steamId), // Server Config & Auth getServerConfig: () => ipcRenderer.invoke('get-server-config'), updateServerConfig: (config: any) => ipcRenderer.invoke('update-server-config', config), loginToServer: () => ipcRenderer.invoke('login-to-server'), getServerUserInfo: () => ipcRenderer.invoke('get-server-user-info'), syncNow: () => ipcRenderer.invoke('sync-now'), getCommunityAccounts: () => ipcRenderer.invoke('get-community-accounts'), getServerUsers: () => ipcRenderer.invoke('get-server-users'), // Admin API adminGetStats: () => ipcRenderer.invoke('admin-get-stats'), adminGetUsers: () => ipcRenderer.invoke('admin-get-users'), adminDeleteUser: (userId: string) => ipcRenderer.invoke('admin-delete-user', userId), adminGetAccounts: () => ipcRenderer.invoke('admin-get-accounts'), adminRemoveAccount: (steamId: string) => ipcRenderer.invoke('admin-remove-account', steamId), onAccountsUpdated: (callback: (accounts: any[]) => void) => { const subscription = (_event: IpcRendererEvent, accounts: any[]) => callback(accounts); ipcRenderer.on('accounts-updated', subscription); return () => ipcRenderer.removeListener('accounts-updated', subscription); }, platform: process.platform });