UNPKG

@todesktop/plugin-recall

Version:

ToDesktop plugin for Recall.ai Desktop Recording SDK - Plugin package

174 lines 5.09 kB
/** * Shared types and constants for Recall Desktop SDK integration */ export declare const IPC_CHANNELS: { readonly INIT_SDK: "recall-desktop:init-sdk"; readonly SHUTDOWN_SDK: "recall-desktop:shutdown-sdk"; readonly GET_STATUS: "recall-desktop:get-status"; readonly START_RECORDING: "recall-desktop:start-recording"; readonly STOP_RECORDING: "recall-desktop:stop-recording"; readonly PAUSE_RECORDING: "recall-desktop:pause-recording"; readonly RESUME_RECORDING: "recall-desktop:resume-recording"; readonly UPLOAD_RECORDING: "recall-desktop:upload-recording"; readonly PREPARE_DESKTOP_AUDIO: "recall-desktop:prepare-desktop-audio"; readonly REQUEST_PERMISSION: "recall-desktop:request-permission"; readonly SET_CONFIG: "recall-desktop:set-config"; readonly GET_CONFIG: "recall-desktop:get-config"; readonly SUBSCRIBE_EVENTS: "recall-desktop:subscribe-events"; readonly UNSUBSCRIBE_EVENTS: "recall-desktop:unsubscribe-events"; }; export interface RecallSdkConfig { enabled: boolean; apiUrl: string; requestPermissionsOnStartup: boolean; } export interface PluginContext { plugin: { todesktop: { preferences: [ { id: "enabled"; name: string; description: string; type: "checkbox"; spec: { value?: boolean; }; }, { id: "apiUrl"; name: string; description: string; type: "text"; spec: { value?: string; }; }, { id: "requestPermissionsOnStartup"; name: string; description: string; type: "checkbox"; spec: { value?: boolean; }; } ]; }; }; } export interface MeetingWindow { id: string; title?: string; url?: string; platform: string; } export interface StartRecordingRequest { windowId: string; uploadToken: string; } export interface StopRecordingRequest { windowId: string; } export interface PauseRecordingRequest { windowId: string; } export interface ResumeRecordingRequest { windowId: string; } export interface UploadRecordingRequest { windowId: string; } export type RecallSdkEventType = "recording-started" | "recording-ended" | "upload-progress" | "meeting-detected" | "meeting-updated" | "meeting-closed" | "sdk-state-change" | "error" | "media-capture-status" | "participant-capture-status" | "permissions-granted" | "permission-status" | "realtime-event" | "shutdown"; export interface RecallSdkEvent { type: RecallSdkEventType; data: any; } export interface MeetingDetectedEvent { window: MeetingWindow; } export interface SdkStateChangeEvent { sdk: { state: { code: "recording" | "idle" | "paused"; }; }; } export interface RecordingStartedEvent { window: MeetingWindow; } export interface RecordingEndedEvent { window: MeetingWindow; } export interface MeetingClosedEvent { window: MeetingWindow; } export interface UploadProgressEvent { window: { id: string; }; progress: number; } export interface MeetingUpdatedEvent { window: MeetingWindow; } export interface MediaCaptureStatusEvent { window: MeetingWindow; type: "video" | "audio"; capturing: boolean; } export interface ParticipantCaptureStatusEvent { window: MeetingWindow; type: "video" | "audio" | "screenshare"; capturing: boolean; } export interface RealtimeEvent { window: MeetingWindow; event: string; data: any; } export interface SdkErrorEvent { window?: MeetingWindow; type: string; message: string; } export interface PermissionStatusEvent { permission: PermissionType; status: string; } export interface ShutdownEvent { code: number; signal: string; } export type PermissionType = "accessibility" | "screen-capture" | "microphone" | "system-audio"; export interface ApiResponse<T = any> { success: boolean; message: string; data?: T; } export interface PluginStatus { initialized: boolean; sdkInitialized: boolean; version: string; config: RecallSdkConfig; sdkState?: "recording" | "idle" | "paused"; permissions?: { accessibility: boolean; screenCapture: boolean; microphone: boolean; systemAudio: boolean; }; } export declare class RecallSdkError extends Error { code?: string | undefined; constructor(message: string, code?: string | undefined); } export interface SdkInitOptions { apiUrl: string; acquirePermissionsOnStartup?: PermissionType[]; restartOnError?: boolean; } export interface PrepareDesktopAudioResponse { windowId: string; } //# sourceMappingURL=shared.d.ts.map