interface ElectronWindowControl { minimize: () => Promise; maximize: () => Promise; close: () => Promise; } interface ElectronWindowState { onMaximized: (callback: () => void) => void; onUnmaximized: (callback: () => void) => void; removeMaximizedListener: () => void; removeUnmaximizedListener: () => void; } interface ElectronAppInfo { isElectron: boolean; version: string; } interface Electron { windowControl: ElectronWindowControl; windowState: ElectronWindowState; appInfo: ElectronAppInfo; } declare global { interface Window { electron: Electron; } }