import type { Session } from 'electron'; export function createBuildCreateOverlayWindowMainDepsHandler(deps: { createOverlayWindowCore: ( kind: 'visible' | 'modal', options: { isDev: boolean; ensureOverlayWindowLevel: (window: TWindow) => void; onRuntimeOptionsChanged: () => void; setOverlayDebugVisualizationEnabled: (enabled: boolean) => void; isOverlayVisible: (windowKind: 'visible' | 'modal') => boolean; tryHandleOverlayShortcutLocalFallback: (input: Electron.Input) => boolean; forwardTabToMpv: () => void; onWindowClosed: (windowKind: 'visible' | 'modal') => void; yomitanSession?: Session | null; }, ) => TWindow; isDev: boolean; ensureOverlayWindowLevel: (window: TWindow) => void; onRuntimeOptionsChanged: () => void; setOverlayDebugVisualizationEnabled: (enabled: boolean) => void; isOverlayVisible: (windowKind: 'visible' | 'modal') => boolean; tryHandleOverlayShortcutLocalFallback: (input: Electron.Input) => boolean; forwardTabToMpv: () => void; onWindowClosed: (windowKind: 'visible' | 'modal') => void; getYomitanSession?: () => Session | null; }) { return () => ({ createOverlayWindowCore: deps.createOverlayWindowCore, isDev: deps.isDev, ensureOverlayWindowLevel: deps.ensureOverlayWindowLevel, onRuntimeOptionsChanged: deps.onRuntimeOptionsChanged, setOverlayDebugVisualizationEnabled: deps.setOverlayDebugVisualizationEnabled, isOverlayVisible: deps.isOverlayVisible, tryHandleOverlayShortcutLocalFallback: deps.tryHandleOverlayShortcutLocalFallback, forwardTabToMpv: deps.forwardTabToMpv, onWindowClosed: deps.onWindowClosed, getYomitanSession: () => deps.getYomitanSession?.() ?? null, }); } export function createBuildCreateMainWindowMainDepsHandler(deps: { createOverlayWindow: (kind: 'visible' | 'modal') => TWindow; setMainWindow: (window: TWindow | null) => void; }) { return () => ({ createOverlayWindow: deps.createOverlayWindow, setMainWindow: deps.setMainWindow, }); } export function createBuildCreateModalWindowMainDepsHandler(deps: { createOverlayWindow: (kind: 'visible' | 'modal') => TWindow; setModalWindow: (window: TWindow | null) => void; }) { return () => ({ createOverlayWindow: deps.createOverlayWindow, setModalWindow: deps.setModalWindow, }); }