/// /// interface ProcessedDesktopSource { id: string; name: string; display_id: string; thumbnail: string | null; appIcon: string | null; } interface Window { electronAPI: { getSources: (opts: Electron.SourcesOptions) => Promise switchToEditor: () => Promise openSourceSelector: () => Promise selectSource: (source: any) => Promise getSelectedSource: () => Promise storeRecordedVideo: (videoData: ArrayBuffer, fileName: string) => Promise<{ success: boolean path?: string message: string error?: string }> getRecordedVideoPath: () => Promise<{ success: boolean path?: string message?: string error?: string }> getAssetBasePath: () => Promise setRecordingState: (recording: boolean) => Promise onStopRecordingFromTray: (callback: () => void) => () => void openExternalUrl: (url: string) => Promise<{ success: boolean; error?: string }> saveExportedVideo: (videoData: ArrayBuffer, fileName: string) => Promise<{ success: boolean path?: string message?: string cancelled?: boolean }> openVideoFilePicker: () => Promise<{ success: boolean; path?: string; cancelled?: boolean }> setCurrentVideoPath: (path: string) => Promise<{ success: boolean }> getCurrentVideoPath: () => Promise<{ success: boolean; path?: string }> clearCurrentVideoPath: () => Promise<{ success: boolean }> } }