import { BrowserWindow } from 'electron' interface ElectronAppState { mainWindow: BrowserWindow | null serverPort: number isDev: boolean } class ElectronState { private state: ElectronAppState = { mainWindow: null, serverPort: 3001, isDev: false, } private windows = new Map() getMainWindow(): BrowserWindow | null { return this.state.mainWindow } setMainWindow(window: BrowserWindow | null): void { this.state.mainWindow = window } getServerPort(): number { return this.state.serverPort } setServerPort(port: number): void { this.state.serverPort = port } isDevelopment(): boolean { return this.state.isDev } setDevelopment(isDev: boolean): void { this.state.isDev = isDev } addWindow(window: BrowserWindow): void { this.windows.set(window.id, window) } removeWindow(id: number): void { this.windows.delete(id) } getWindow(id: number): BrowserWindow | undefined { return this.windows.get(id) } getAllWindows(): BrowserWindow[] { return Array.from(this.windows.values()) } reset(): void { this.windows.clear() this.state = { mainWindow: null, serverPort: 3001, isDev: false, } } } export const electronState = new ElectronState()