Files
llink/js/desktop/src/electron.d.ts
T
Arjun PatelandGitHub c1f5b6c8c1 Implement membership notifications and deep-link handling for Electron desktop app (#246)
* security: add cors for desktop app scheme

* Revert "security: add cors for desktop app scheme"

This reverts commit d450fced75.

* ignore tags

* add commands for windows dev

* cleanup unnecessary parts of main desktop process

* resolve lint errors

* add format command for go

* fix: send email on new member joining

Closes #228

* add proper deeplinking on desktop

The desktop app was merely focusing before, but now it will navigate to the proper route

* honor email notifications setting

* prevent sending email when no recipients
2026-06-09 08:04:18 -07:00

65 lines
1.9 KiB
TypeScript

import type { AutoplayPayload } from './lib/autoplay-ipc';
declare global {
interface ScreenSource {
id: string;
name: string;
thumbnailDataUrl: string;
appIconDataUrl: string | null;
}
interface Window {
electronWindow: {
minimize: () => void;
maximize: () => void;
fullscreen: () => void;
close: () => void;
openHuddle: (data: { token: string; serverUrl: string }) => void;
closeHuddle: () => void;
platform: NodeJS.Platform;
onMaximizeChange: (
callback: (isMaximized: boolean) => void,
) => () => void;
};
electronHuddle: {
getScreenSources: () => Promise<ScreenSource[]>;
};
electronAutoplay: {
play: (payload: AutoplayPayload) => void;
dismiss: () => void;
navigate: (data: { networkId: string; streamId: string }) => void;
onPlay: (callback: (payload: AutoplayPayload) => void) => () => void;
onStop: (callback: () => void) => () => void;
onNavigate: (
callback: (data: { networkId: string; streamId: string }) => void,
) => () => void;
};
electronScreen: {
getScreenSources: () => Promise<ScreenSource[]>;
startRecordingWindow: () => void;
stopRecordingWindow: () => void;
onStopRequested: (callback: () => void) => () => void;
};
electronScreenRecord: {
stop: () => void;
onInit: (callback: () => void) => () => void;
};
electronDeepLink: {
getPending: () => Promise<string | null>;
onNavigate: (callback: (path: string) => void) => () => void;
};
electronLink: {
openExternal: (url: string) => Promise<void>;
};
electronAttachment: {
download: (url: string, filename?: string) => void;
};
electronApp: {
setDockBadge: (count: number) => void;
getVersion: () => Promise<string>;
};
}
}
export {};