type SeparateWindowLike = { isDestroyed(): boolean; isVisible?: () => boolean; }; export function hasLiveSeparateWindow( windows: Array, ): boolean { return windows.some( (window) => Boolean(window && !window.isDestroyed()) && (typeof window?.isVisible !== 'function' || window.isVisible()), ); } export function shouldSuppressVisibleOverlayRaiseForSeparateWindow(options: { window: unknown; mainWindow: unknown; separateWindows: Array; }): boolean { if (!options.mainWindow || options.window !== options.mainWindow) { return false; } return hasLiveSeparateWindow(options.separateWindows); }