import { ScreenCaptureDevice } from "tc-shared/video/VideoSource"; export declare type DeviceListResult = { status: "success"; devices: { id: string; displayName: string; }[]; selectedDeviceId: string | undefined; fallbackSelectedDeviceName: string | undefined; } | { status: "error"; reason: "no-permissions" | "request-permissions" | "custom"; }; export declare type VideoPreviewStatus = { status: "preview"; stream: MediaStream; } | { status: "error"; reason: "no-permissions" | "request-permissions" | "custom"; message?: string; } | { status: "none"; }; export declare type VideoSourceState = { type: "none"; } | { type: "selected"; deviceId: string; name: string; } | { type: "errored"; error: string; }; export declare type ScreenCaptureDeviceList = { status: "success"; devices: ScreenCaptureDevice[]; } | { status: "error"; reason: string; } | { status: "not-supported"; } | { status: "loading"; }; export declare type SettingFrameRate = { min: number; max: number; original: number; current: number; }; export declare type SettingBitrate = { allowedBitrate: number | -1; bitrate: number | 0; }; export interface ModalVideoSourceEvents { action_cancel: {}; action_start: {}; action_request_permissions: {}; action_select_source: { id: string | undefined; }; action_setting_dimension: { width: number; height: number; }; action_setting_framerate: { frameRate: number; }; action_setting_bitrate_max: { bitrate: number | 0; }; action_setting_keyframe_sender: { interval: number | 0; }; action_toggle_screen_capture_device_select: { shown: boolean; }; action_preselect_screen_capture_device: { deviceId: string; }; query_source: {}; query_device_list: {}; query_video_preview: {}; query_start_button: {}; query_setting_dimension: {}; query_setting_framerate: {}; query_setting_bitrate_max: {}; query_setting_keyframe_sender: {}; query_screen_capture_devices: {}; notify_source: { state: VideoSourceState; }; notify_device_list: { status: DeviceListResult; }; notify_video_preview: { status: VideoPreviewStatus; }; notify_start_button: { enabled: boolean; }; notify_setting_dimension: { setting: { minWidth: number; currentWidth: number; originalWidth: number; maxWidth: number; minHeight: number; currentHeight: number; originalHeight: number; maxHeight: number; } | undefined; }; notify_settings_framerate: { frameRate: SettingFrameRate | undefined; }; notify_screen_capture_devices: { devices: ScreenCaptureDeviceList; }; notify_setting_bitrate_max: { bitrate: SettingBitrate | undefined; }; notify_settings_keyframe_sender: { interval: number | 0; }; notify_destroy: {}; }