import { APIResource } from "../../resource.js"; import * as Core from "../../core.js"; export declare class Presets extends APIResource { /** * Creates a preset belonging to the current App * * @example * ```ts * const preset = await client.realtimeKit.presets.create('app_id', { * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * config: { * max_screenshare_count: 0, * max_video_streams: { ... }, * media: { ... }, * view_type: 'GROUP_CALL', * }, * name: 'name', * ui: { * design_tokens: { ... }, * }, * }); * ``` */ create(appId: string, params: PresetCreateParams, options?: Core.RequestOptions): Core.APIPromise; /** * Update a preset by the provided preset ID * * @example * ```ts * const preset = await client.realtimeKit.presets.update( * 'app_id', * 'preset_id', * { account_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * ); * ``` */ update(appId: string, presetId: string, params: PresetUpdateParams, options?: Core.RequestOptions): Core.APIPromise; /** * Deletes a preset using the provided preset ID * * @example * ```ts * const preset = await client.realtimeKit.presets.delete( * 'app_id', * 'preset_id', * { account_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * ); * ``` */ delete(appId: string, presetId: string, params: PresetDeleteParams, options?: Core.RequestOptions): Core.APIPromise; /** * Fetches all the presets belonging to an App. * * @example * ```ts * const preset = await client.realtimeKit.presets.get( * 'app_id', * { account_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * ); * ``` */ get(appId: string, params: PresetGetParams, options?: Core.RequestOptions): Core.APIPromise; /** * Fetches details of a preset using the provided preset ID * * @example * ```ts * const response = * await client.realtimeKit.presets.getPresetById( * 'app_id', * 'preset_id', * { account_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * ); * ``` */ getPresetById(appId: string, presetId: string, params: PresetGetPresetByIDParams, options?: Core.RequestOptions): Core.APIPromise; } export interface PresetCreateResponse { /** * Data returned by the operation */ data: PresetCreateResponse.Data; /** * Success status of the operation */ success: boolean; } export declare namespace PresetCreateResponse { /** * Data returned by the operation */ interface Data { /** * ID of the preset */ id: string; config: Data.Config; /** * Name of the preset */ name: string; ui: Data.UI; permissions?: Data.Permissions; } namespace Data { interface Config { /** * Maximum number of screen shares that can be active at a given time */ max_screenshare_count: number; /** * Maximum number of streams that are visible on a device */ max_video_streams: Config.MaxVideoStreams; /** * Media configuration options. eg: Video quality */ media: Config.Media; /** * Type of the meeting */ view_type: 'GROUP_CALL' | 'WEBINAR' | 'AUDIO_ROOM'; } namespace Config { /** * Maximum number of streams that are visible on a device */ interface MaxVideoStreams { /** * Maximum number of video streams visible on desktop devices */ desktop: number; /** * Maximum number of streams visible on mobile devices */ mobile: number; } /** * Media configuration options. eg: Video quality */ interface Media { /** * Configuration options for participant screen shares */ screenshare: Media.Screenshare; /** * Configuration options for participant videos */ video: Media.Video; /** * Control options for Audio quality. */ audio?: Media.Audio; } namespace Media { /** * Configuration options for participant screen shares */ interface Screenshare { /** * Frame rate of screen share */ frame_rate: number; /** * Quality of screen share */ quality: 'hd' | 'vga' | 'qvga'; } /** * Configuration options for participant videos */ interface Video { /** * Frame rate of participants' video */ frame_rate: number; /** * Video quality of participants */ quality: 'hd' | 'vga' | 'qvga'; } /** * Control options for Audio quality. */ interface Audio { /** * Enable High Quality Audio for your meetings */ enable_high_bitrate?: boolean; /** * Enable Stereo for your meetings */ enable_stereo?: boolean; } } } interface UI { design_tokens: UI.DesignTokens; config_diff?: unknown; } namespace UI { interface DesignTokens { border_radius: 'rounded'; border_width: 'thin'; colors: DesignTokens.Colors; logo: string; spacing_base: number; theme: 'dark'; } namespace DesignTokens { interface Colors { background: Colors.Background; brand: Colors.Brand; danger: string; success: string; text: string; text_on_brand: string; video_bg: string; warning: string; } namespace Colors { interface Background { '1000': string; '600': string; '700': string; '800': string; '900': string; } interface Brand { '300': string; '400': string; '500': string; '600': string; '700': string; } } } } interface Permissions { /** * Whether this participant can accept waiting requests */ accept_waiting_requests: boolean; can_accept_production_requests: boolean; can_change_participant_permissions: boolean; can_edit_display_name: boolean; can_livestream: boolean; can_record: boolean; can_spotlight: boolean; /** * Chat permissions */ chat: Permissions.Chat; connected_meetings: Permissions.ConnectedMeetings; disable_participant_audio: boolean; disable_participant_screensharing: boolean; disable_participant_video: boolean; /** * Whether this participant is visible to others or not */ hidden_participant: boolean; kick_participant: boolean; /** * Media permissions */ media: Permissions.Media; pin_participant: boolean; /** * Plugin permissions */ plugins: Permissions.Plugins; /** * Poll permissions */ polls: Permissions.Polls; /** * Type of the recording peer */ recorder_type: 'RECORDER' | 'LIVESTREAMER' | 'NONE'; show_participant_list: boolean; /** * Waiting room type */ waiting_room_type: 'SKIP' | 'ON_PRIVILEGED_USER_ENTRY' | 'SKIP_ON_ACCEPT'; is_recorder?: boolean; } namespace Permissions { /** * Chat permissions */ interface Chat { private: Chat.Private; public: Chat.Public; } namespace Chat { interface Private { can_receive: boolean; can_send: boolean; files: boolean; text: boolean; } interface Public { /** * Can send messages in general */ can_send: boolean; /** * Can send file messages */ files: boolean; /** * Can send text messages */ text: boolean; } } interface ConnectedMeetings { can_alter_connected_meetings: boolean; can_switch_connected_meetings: boolean; can_switch_to_parent_meeting: boolean; } /** * Media permissions */ interface Media { /** * Audio permissions */ audio: Media.Audio; /** * Screenshare permissions */ screenshare: Media.Screenshare; /** * Video permissions */ video: Media.Video; } namespace Media { /** * Audio permissions */ interface Audio { /** * Can produce audio */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Screenshare permissions */ interface Screenshare { /** * Can produce screen share video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Video permissions */ interface Video { /** * Can produce video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } } /** * Plugin permissions */ interface Plugins { /** * Can close plugins that are already open */ can_close: boolean; /** * Can edit plugin config */ can_edit_config: boolean; /** * Can start plugins */ can_start: boolean; config: string | Plugins.UnionMember1; } namespace Plugins { interface UnionMember1 { access_control: 'FULL_ACCESS' | 'VIEW_ONLY'; handles_view_only: boolean; } } /** * Poll permissions */ interface Polls { /** * Can create polls */ can_create: boolean; /** * Can view polls */ can_view: boolean; /** * Can vote on polls */ can_vote: boolean; } } } } export interface PresetUpdateResponse { /** * Data returned by the operation */ data: PresetUpdateResponse.Data; /** * Success status of the operation */ success: boolean; } export declare namespace PresetUpdateResponse { /** * Data returned by the operation */ interface Data { /** * ID of the preset */ id: string; config: Data.Config; /** * Name of the preset */ name: string; ui: Data.UI; permissions?: Data.Permissions; } namespace Data { interface Config { /** * Maximum number of screen shares that can be active at a given time */ max_screenshare_count: number; /** * Maximum number of streams that are visible on a device */ max_video_streams: Config.MaxVideoStreams; /** * Media configuration options. eg: Video quality */ media: Config.Media; /** * Type of the meeting */ view_type: 'GROUP_CALL' | 'WEBINAR' | 'AUDIO_ROOM'; } namespace Config { /** * Maximum number of streams that are visible on a device */ interface MaxVideoStreams { /** * Maximum number of video streams visible on desktop devices */ desktop: number; /** * Maximum number of streams visible on mobile devices */ mobile: number; } /** * Media configuration options. eg: Video quality */ interface Media { /** * Configuration options for participant screen shares */ screenshare: Media.Screenshare; /** * Configuration options for participant videos */ video: Media.Video; /** * Control options for Audio quality. */ audio?: Media.Audio; } namespace Media { /** * Configuration options for participant screen shares */ interface Screenshare { /** * Frame rate of screen share */ frame_rate: number; /** * Quality of screen share */ quality: 'hd' | 'vga' | 'qvga'; } /** * Configuration options for participant videos */ interface Video { /** * Frame rate of participants' video */ frame_rate: number; /** * Video quality of participants */ quality: 'hd' | 'vga' | 'qvga'; } /** * Control options for Audio quality. */ interface Audio { /** * Enable High Quality Audio for your meetings */ enable_high_bitrate?: boolean; /** * Enable Stereo for your meetings */ enable_stereo?: boolean; } } } interface UI { design_tokens: UI.DesignTokens; config_diff?: unknown; } namespace UI { interface DesignTokens { border_radius: 'rounded'; border_width: 'thin'; colors: DesignTokens.Colors; logo: string; spacing_base: number; theme: 'dark'; } namespace DesignTokens { interface Colors { background: Colors.Background; brand: Colors.Brand; danger: string; success: string; text: string; text_on_brand: string; video_bg: string; warning: string; } namespace Colors { interface Background { '1000': string; '600': string; '700': string; '800': string; '900': string; } interface Brand { '300': string; '400': string; '500': string; '600': string; '700': string; } } } } interface Permissions { /** * Whether this participant can accept waiting requests */ accept_waiting_requests: boolean; can_accept_production_requests: boolean; can_change_participant_permissions: boolean; can_edit_display_name: boolean; can_livestream: boolean; can_record: boolean; can_spotlight: boolean; /** * Chat permissions */ chat: Permissions.Chat; connected_meetings: Permissions.ConnectedMeetings; disable_participant_audio: boolean; disable_participant_screensharing: boolean; disable_participant_video: boolean; /** * Whether this participant is visible to others or not */ hidden_participant: boolean; kick_participant: boolean; /** * Media permissions */ media: Permissions.Media; pin_participant: boolean; /** * Plugin permissions */ plugins: Permissions.Plugins; /** * Poll permissions */ polls: Permissions.Polls; /** * Type of the recording peer */ recorder_type: 'RECORDER' | 'LIVESTREAMER' | 'NONE'; show_participant_list: boolean; /** * Waiting room type */ waiting_room_type: 'SKIP' | 'ON_PRIVILEGED_USER_ENTRY' | 'SKIP_ON_ACCEPT'; is_recorder?: boolean; } namespace Permissions { /** * Chat permissions */ interface Chat { private: Chat.Private; public: Chat.Public; } namespace Chat { interface Private { can_receive: boolean; can_send: boolean; files: boolean; text: boolean; } interface Public { /** * Can send messages in general */ can_send: boolean; /** * Can send file messages */ files: boolean; /** * Can send text messages */ text: boolean; } } interface ConnectedMeetings { can_alter_connected_meetings: boolean; can_switch_connected_meetings: boolean; can_switch_to_parent_meeting: boolean; } /** * Media permissions */ interface Media { /** * Audio permissions */ audio: Media.Audio; /** * Screenshare permissions */ screenshare: Media.Screenshare; /** * Video permissions */ video: Media.Video; } namespace Media { /** * Audio permissions */ interface Audio { /** * Can produce audio */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Screenshare permissions */ interface Screenshare { /** * Can produce screen share video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Video permissions */ interface Video { /** * Can produce video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } } /** * Plugin permissions */ interface Plugins { /** * Can close plugins that are already open */ can_close: boolean; /** * Can edit plugin config */ can_edit_config: boolean; /** * Can start plugins */ can_start: boolean; config: string | Plugins.UnionMember1; } namespace Plugins { interface UnionMember1 { access_control: 'FULL_ACCESS' | 'VIEW_ONLY'; handles_view_only: boolean; } } /** * Poll permissions */ interface Polls { /** * Can create polls */ can_create: boolean; /** * Can view polls */ can_view: boolean; /** * Can vote on polls */ can_vote: boolean; } } } } export interface PresetDeleteResponse { /** * Data returned by the operation */ data: PresetDeleteResponse.Data; /** * Success status of the operation */ success: boolean; } export declare namespace PresetDeleteResponse { /** * Data returned by the operation */ interface Data { /** * ID of the preset */ id: string; config: Data.Config; /** * Name of the preset */ name: string; ui: Data.UI; permissions?: Data.Permissions; } namespace Data { interface Config { /** * Maximum number of screen shares that can be active at a given time */ max_screenshare_count: number; /** * Maximum number of streams that are visible on a device */ max_video_streams: Config.MaxVideoStreams; /** * Media configuration options. eg: Video quality */ media: Config.Media; /** * Type of the meeting */ view_type: 'GROUP_CALL' | 'WEBINAR' | 'AUDIO_ROOM'; } namespace Config { /** * Maximum number of streams that are visible on a device */ interface MaxVideoStreams { /** * Maximum number of video streams visible on desktop devices */ desktop: number; /** * Maximum number of streams visible on mobile devices */ mobile: number; } /** * Media configuration options. eg: Video quality */ interface Media { /** * Configuration options for participant screen shares */ screenshare: Media.Screenshare; /** * Configuration options for participant videos */ video: Media.Video; /** * Control options for Audio quality. */ audio?: Media.Audio; } namespace Media { /** * Configuration options for participant screen shares */ interface Screenshare { /** * Frame rate of screen share */ frame_rate: number; /** * Quality of screen share */ quality: 'hd' | 'vga' | 'qvga'; } /** * Configuration options for participant videos */ interface Video { /** * Frame rate of participants' video */ frame_rate: number; /** * Video quality of participants */ quality: 'hd' | 'vga' | 'qvga'; } /** * Control options for Audio quality. */ interface Audio { /** * Enable High Quality Audio for your meetings */ enable_high_bitrate?: boolean; /** * Enable Stereo for your meetings */ enable_stereo?: boolean; } } } interface UI { design_tokens: UI.DesignTokens; config_diff?: unknown; } namespace UI { interface DesignTokens { border_radius: 'rounded'; border_width: 'thin'; colors: DesignTokens.Colors; logo: string; spacing_base: number; theme: 'dark'; } namespace DesignTokens { interface Colors { background: Colors.Background; brand: Colors.Brand; danger: string; success: string; text: string; text_on_brand: string; video_bg: string; warning: string; } namespace Colors { interface Background { '1000': string; '600': string; '700': string; '800': string; '900': string; } interface Brand { '300': string; '400': string; '500': string; '600': string; '700': string; } } } } interface Permissions { /** * Whether this participant can accept waiting requests */ accept_waiting_requests: boolean; can_accept_production_requests: boolean; can_change_participant_permissions: boolean; can_edit_display_name: boolean; can_livestream: boolean; can_record: boolean; can_spotlight: boolean; /** * Chat permissions */ chat: Permissions.Chat; connected_meetings: Permissions.ConnectedMeetings; disable_participant_audio: boolean; disable_participant_screensharing: boolean; disable_participant_video: boolean; /** * Whether this participant is visible to others or not */ hidden_participant: boolean; kick_participant: boolean; /** * Media permissions */ media: Permissions.Media; pin_participant: boolean; /** * Plugin permissions */ plugins: Permissions.Plugins; /** * Poll permissions */ polls: Permissions.Polls; /** * Type of the recording peer */ recorder_type: 'RECORDER' | 'LIVESTREAMER' | 'NONE'; show_participant_list: boolean; /** * Waiting room type */ waiting_room_type: 'SKIP' | 'ON_PRIVILEGED_USER_ENTRY' | 'SKIP_ON_ACCEPT'; is_recorder?: boolean; } namespace Permissions { /** * Chat permissions */ interface Chat { private: Chat.Private; public: Chat.Public; } namespace Chat { interface Private { can_receive: boolean; can_send: boolean; files: boolean; text: boolean; } interface Public { /** * Can send messages in general */ can_send: boolean; /** * Can send file messages */ files: boolean; /** * Can send text messages */ text: boolean; } } interface ConnectedMeetings { can_alter_connected_meetings: boolean; can_switch_connected_meetings: boolean; can_switch_to_parent_meeting: boolean; } /** * Media permissions */ interface Media { /** * Audio permissions */ audio: Media.Audio; /** * Screenshare permissions */ screenshare: Media.Screenshare; /** * Video permissions */ video: Media.Video; } namespace Media { /** * Audio permissions */ interface Audio { /** * Can produce audio */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Screenshare permissions */ interface Screenshare { /** * Can produce screen share video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Video permissions */ interface Video { /** * Can produce video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } } /** * Plugin permissions */ interface Plugins { /** * Can close plugins that are already open */ can_close: boolean; /** * Can edit plugin config */ can_edit_config: boolean; /** * Can start plugins */ can_start: boolean; config: string | Plugins.UnionMember1; } namespace Plugins { interface UnionMember1 { access_control: 'FULL_ACCESS' | 'VIEW_ONLY'; handles_view_only: boolean; } } /** * Poll permissions */ interface Polls { /** * Can create polls */ can_create: boolean; /** * Can view polls */ can_view: boolean; /** * Can vote on polls */ can_vote: boolean; } } } } export interface PresetGetResponse { data: Array; paging: PresetGetResponse.Paging; success: boolean; } export declare namespace PresetGetResponse { /** * Returned by Get All Presets route */ interface Data { /** * ID of the preset */ id?: string; /** * Timestamp this preset was created at */ created_at?: string; /** * Name of the preset */ name?: string; /** * Timestamp this preset was last updated */ updated_at?: string; } interface Paging { end_offset: number; start_offset: number; total_count: number; } } export interface PresetGetPresetByIDResponse { /** * Data returned by the operation */ data: PresetGetPresetByIDResponse.Data; /** * Success status of the operation */ success: boolean; } export declare namespace PresetGetPresetByIDResponse { /** * Data returned by the operation */ interface Data { /** * ID of the preset */ id: string; config: Data.Config; /** * Name of the preset */ name: string; ui: Data.UI; permissions?: Data.Permissions; } namespace Data { interface Config { /** * Maximum number of screen shares that can be active at a given time */ max_screenshare_count: number; /** * Maximum number of streams that are visible on a device */ max_video_streams: Config.MaxVideoStreams; /** * Media configuration options. eg: Video quality */ media: Config.Media; /** * Type of the meeting */ view_type: 'GROUP_CALL' | 'WEBINAR' | 'AUDIO_ROOM'; } namespace Config { /** * Maximum number of streams that are visible on a device */ interface MaxVideoStreams { /** * Maximum number of video streams visible on desktop devices */ desktop: number; /** * Maximum number of streams visible on mobile devices */ mobile: number; } /** * Media configuration options. eg: Video quality */ interface Media { /** * Configuration options for participant screen shares */ screenshare: Media.Screenshare; /** * Configuration options for participant videos */ video: Media.Video; /** * Control options for Audio quality. */ audio?: Media.Audio; } namespace Media { /** * Configuration options for participant screen shares */ interface Screenshare { /** * Frame rate of screen share */ frame_rate: number; /** * Quality of screen share */ quality: 'hd' | 'vga' | 'qvga'; } /** * Configuration options for participant videos */ interface Video { /** * Frame rate of participants' video */ frame_rate: number; /** * Video quality of participants */ quality: 'hd' | 'vga' | 'qvga'; } /** * Control options for Audio quality. */ interface Audio { /** * Enable High Quality Audio for your meetings */ enable_high_bitrate?: boolean; /** * Enable Stereo for your meetings */ enable_stereo?: boolean; } } } interface UI { design_tokens: UI.DesignTokens; config_diff?: unknown; } namespace UI { interface DesignTokens { border_radius: 'rounded'; border_width: 'thin'; colors: DesignTokens.Colors; logo: string; spacing_base: number; theme: 'dark'; } namespace DesignTokens { interface Colors { background: Colors.Background; brand: Colors.Brand; danger: string; success: string; text: string; text_on_brand: string; video_bg: string; warning: string; } namespace Colors { interface Background { '1000': string; '600': string; '700': string; '800': string; '900': string; } interface Brand { '300': string; '400': string; '500': string; '600': string; '700': string; } } } } interface Permissions { /** * Whether this participant can accept waiting requests */ accept_waiting_requests: boolean; can_accept_production_requests: boolean; can_change_participant_permissions: boolean; can_edit_display_name: boolean; can_livestream: boolean; can_record: boolean; can_spotlight: boolean; /** * Chat permissions */ chat: Permissions.Chat; connected_meetings: Permissions.ConnectedMeetings; disable_participant_audio: boolean; disable_participant_screensharing: boolean; disable_participant_video: boolean; /** * Whether this participant is visible to others or not */ hidden_participant: boolean; kick_participant: boolean; /** * Media permissions */ media: Permissions.Media; pin_participant: boolean; /** * Plugin permissions */ plugins: Permissions.Plugins; /** * Poll permissions */ polls: Permissions.Polls; /** * Type of the recording peer */ recorder_type: 'RECORDER' | 'LIVESTREAMER' | 'NONE'; show_participant_list: boolean; /** * Waiting room type */ waiting_room_type: 'SKIP' | 'ON_PRIVILEGED_USER_ENTRY' | 'SKIP_ON_ACCEPT'; is_recorder?: boolean; } namespace Permissions { /** * Chat permissions */ interface Chat { private: Chat.Private; public: Chat.Public; } namespace Chat { interface Private { can_receive: boolean; can_send: boolean; files: boolean; text: boolean; } interface Public { /** * Can send messages in general */ can_send: boolean; /** * Can send file messages */ files: boolean; /** * Can send text messages */ text: boolean; } } interface ConnectedMeetings { can_alter_connected_meetings: boolean; can_switch_connected_meetings: boolean; can_switch_to_parent_meeting: boolean; } /** * Media permissions */ interface Media { /** * Audio permissions */ audio: Media.Audio; /** * Screenshare permissions */ screenshare: Media.Screenshare; /** * Video permissions */ video: Media.Video; } namespace Media { /** * Audio permissions */ interface Audio { /** * Can produce audio */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Screenshare permissions */ interface Screenshare { /** * Can produce screen share video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Video permissions */ interface Video { /** * Can produce video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } } /** * Plugin permissions */ interface Plugins { /** * Can close plugins that are already open */ can_close: boolean; /** * Can edit plugin config */ can_edit_config: boolean; /** * Can start plugins */ can_start: boolean; config: string | Plugins.UnionMember1; } namespace Plugins { interface UnionMember1 { access_control: 'FULL_ACCESS' | 'VIEW_ONLY'; handles_view_only: boolean; } } /** * Poll permissions */ interface Polls { /** * Can create polls */ can_create: boolean; /** * Can view polls */ can_view: boolean; /** * Can vote on polls */ can_vote: boolean; } } } } export interface PresetCreateParams { /** * Path param: The account identifier tag. */ account_id: string; /** * Body param */ config: PresetCreateParams.Config; /** * Body param: Name of the preset */ name: string; /** * Body param */ ui: PresetCreateParams.UI; /** * Body param */ permissions?: PresetCreateParams.Permissions; } export declare namespace PresetCreateParams { interface Config { /** * Maximum number of screen shares that can be active at a given time */ max_screenshare_count: number; /** * Maximum number of streams that are visible on a device */ max_video_streams: Config.MaxVideoStreams; /** * Media configuration options. eg: Video quality */ media: Config.Media; /** * Type of the meeting */ view_type: 'GROUP_CALL' | 'WEBINAR' | 'AUDIO_ROOM'; } namespace Config { /** * Maximum number of streams that are visible on a device */ interface MaxVideoStreams { /** * Maximum number of video streams visible on desktop devices */ desktop: number; /** * Maximum number of streams visible on mobile devices */ mobile: number; } /** * Media configuration options. eg: Video quality */ interface Media { /** * Configuration options for participant screen shares */ screenshare: Media.Screenshare; /** * Configuration options for participant videos */ video: Media.Video; /** * Control options for Audio quality. */ audio?: Media.Audio; } namespace Media { /** * Configuration options for participant screen shares */ interface Screenshare { /** * Frame rate of screen share */ frame_rate: number; /** * Quality of screen share */ quality: 'hd' | 'vga' | 'qvga'; } /** * Configuration options for participant videos */ interface Video { /** * Frame rate of participants' video */ frame_rate: number; /** * Video quality of participants */ quality: 'hd' | 'vga' | 'qvga'; } /** * Control options for Audio quality. */ interface Audio { /** * Enable High Quality Audio for your meetings */ enable_high_bitrate?: boolean; /** * Enable Stereo for your meetings */ enable_stereo?: boolean; } } } interface UI { design_tokens: UI.DesignTokens; config_diff?: unknown; } namespace UI { interface DesignTokens { border_radius: 'rounded'; border_width: 'thin'; colors: DesignTokens.Colors; logo: string; spacing_base: number; theme: 'dark'; } namespace DesignTokens { interface Colors { background: Colors.Background; brand: Colors.Brand; danger: string; success: string; text: string; text_on_brand: string; video_bg: string; warning: string; } namespace Colors { interface Background { '1000': string; '600': string; '700': string; '800': string; '900': string; } interface Brand { '300': string; '400': string; '500': string; '600': string; '700': string; } } } } interface Permissions { /** * Whether this participant can accept waiting requests */ accept_waiting_requests: boolean; can_accept_production_requests: boolean; can_change_participant_permissions: boolean; can_edit_display_name: boolean; can_livestream: boolean; can_record: boolean; can_spotlight: boolean; /** * Chat permissions */ chat: Permissions.Chat; connected_meetings: Permissions.ConnectedMeetings; disable_participant_audio: boolean; disable_participant_screensharing: boolean; disable_participant_video: boolean; /** * Whether this participant is visible to others or not */ hidden_participant: boolean; kick_participant: boolean; /** * Media permissions */ media: Permissions.Media; pin_participant: boolean; /** * Plugin permissions */ plugins: Permissions.Plugins; /** * Poll permissions */ polls: Permissions.Polls; /** * Type of the recording peer */ recorder_type: 'RECORDER' | 'LIVESTREAMER' | 'NONE'; show_participant_list: boolean; /** * Waiting room type */ waiting_room_type: 'SKIP' | 'ON_PRIVILEGED_USER_ENTRY' | 'SKIP_ON_ACCEPT'; is_recorder?: boolean; } namespace Permissions { /** * Chat permissions */ interface Chat { private: Chat.Private; public: Chat.Public; } namespace Chat { interface Private { can_receive: boolean; can_send: boolean; files: boolean; text: boolean; } interface Public { /** * Can send messages in general */ can_send: boolean; /** * Can send file messages */ files: boolean; /** * Can send text messages */ text: boolean; } } interface ConnectedMeetings { can_alter_connected_meetings: boolean; can_switch_connected_meetings: boolean; can_switch_to_parent_meeting: boolean; } /** * Media permissions */ interface Media { /** * Audio permissions */ audio: Media.Audio; /** * Screenshare permissions */ screenshare: Media.Screenshare; /** * Video permissions */ video: Media.Video; } namespace Media { /** * Audio permissions */ interface Audio { /** * Can produce audio */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Screenshare permissions */ interface Screenshare { /** * Can produce screen share video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Video permissions */ interface Video { /** * Can produce video */ can_produce: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } } /** * Plugin permissions */ interface Plugins { /** * Can close plugins that are already open */ can_close: boolean; /** * Can edit plugin config */ can_edit_config: boolean; /** * Can start plugins */ can_start: boolean; config: string | Plugins.UnionMember1; } namespace Plugins { interface UnionMember1 { access_control: 'FULL_ACCESS' | 'VIEW_ONLY'; handles_view_only: boolean; } } /** * Poll permissions */ interface Polls { /** * Can create polls */ can_create: boolean; /** * Can view polls */ can_view: boolean; /** * Can vote on polls */ can_vote: boolean; } } } export interface PresetUpdateParams { /** * Path param: The account identifier tag. */ account_id: string; /** * Body param */ config?: PresetUpdateParams.Config; /** * Body param: Name of the preset */ name?: string; /** * Body param */ permissions?: PresetUpdateParams.Permissions; /** * Body param */ ui?: PresetUpdateParams.UI; } export declare namespace PresetUpdateParams { interface Config { /** * Maximum number of screen shares that can be active at a given time */ max_screenshare_count?: number; /** * Maximum number of streams that are visible on a device */ max_video_streams?: Config.MaxVideoStreams; /** * Media configuration options. eg: Video quality */ media?: Config.Media; /** * Type of the meeting */ view_type?: 'GROUP_CALL' | 'WEBINAR' | 'AUDIO_ROOM'; } namespace Config { /** * Maximum number of streams that are visible on a device */ interface MaxVideoStreams { /** * Maximum number of video streams visible on desktop devices */ desktop?: number; /** * Maximum number of streams visible on mobile devices */ mobile?: number; } /** * Media configuration options. eg: Video quality */ interface Media { /** * Configuration options for participant screen shares */ screenshare?: Media.Screenshare; /** * Configuration options for participant videos */ video?: Media.Video; } namespace Media { /** * Configuration options for participant screen shares */ interface Screenshare { /** * Frame rate of screen share */ frame_rate?: number; /** * Quality of screen share */ quality?: 'hd' | 'vga' | 'qvga'; } /** * Configuration options for participant videos */ interface Video { /** * Frame rate of participants' video */ frame_rate?: number; /** * Video quality of participants */ quality?: 'hd' | 'vga' | 'qvga'; } } } interface Permissions { /** * Whether this participant can accept waiting requests */ accept_waiting_requests?: boolean; can_accept_production_requests?: boolean; can_change_participant_permissions?: boolean; can_edit_display_name?: boolean; can_livestream?: boolean; can_record?: boolean; can_spotlight?: boolean; /** * Chat permissions */ chat?: Permissions.Chat; connected_meetings?: Permissions.ConnectedMeetings; disable_participant_audio?: boolean; disable_participant_screensharing?: boolean; disable_participant_video?: boolean; /** * Whether this participant is visible to others or not */ hidden_participant?: boolean; is_recorder?: boolean; kick_participant?: boolean; /** * Media permissions */ media?: Permissions.Media; pin_participant?: boolean; /** * Plugin permissions */ plugins?: Permissions.Plugins; /** * Poll permissions */ polls?: Permissions.Polls; /** * Type of the recording peer */ recorder_type?: 'RECORDER' | 'LIVESTREAMER' | 'NONE'; show_participant_list?: boolean; /** * Waiting room type */ waiting_room_type?: 'SKIP' | 'ON_PRIVILEGED_USER_ENTRY' | 'SKIP_ON_ACCEPT'; } namespace Permissions { /** * Chat permissions */ interface Chat { private?: Chat.Private; public?: Chat.Public; } namespace Chat { interface Private { can_receive?: boolean; can_send?: boolean; files?: boolean; text?: boolean; } interface Public { /** * Can send messages in general */ can_send?: boolean; /** * Can send file messages */ files?: boolean; /** * Can send text messages */ text?: boolean; } } interface ConnectedMeetings { can_alter_connected_meetings?: boolean; can_switch_connected_meetings?: boolean; can_switch_to_parent_meeting?: boolean; } /** * Media permissions */ interface Media { /** * Audio permissions */ audio?: Media.Audio; /** * Screenshare permissions */ screenshare?: Media.Screenshare; /** * Video permissions */ video?: Media.Video; } namespace Media { /** * Audio permissions */ interface Audio { /** * Can produce audio */ can_produce?: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Screenshare permissions */ interface Screenshare { /** * Can produce screen share video */ can_produce?: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } /** * Video permissions */ interface Video { /** * Can produce video */ can_produce?: 'ALLOWED' | 'NOT_ALLOWED' | 'CAN_REQUEST'; } } /** * Plugin permissions */ interface Plugins { /** * Can close plugins that are already open */ can_close?: boolean; /** * Can edit plugin config */ can_edit_config?: boolean; /** * Can start plugins */ can_start?: boolean; config?: string | Plugins.UnionMember1; } namespace Plugins { interface UnionMember1 { access_control?: 'FULL_ACCESS' | 'VIEW_ONLY'; handles_view_only?: boolean; } } /** * Poll permissions */ interface Polls { /** * Can create polls */ can_create?: boolean; /** * Can view polls */ can_view?: boolean; /** * Can vote on polls */ can_vote?: boolean; } } interface UI { config_diff?: unknown; design_tokens?: UI.DesignTokens; } namespace UI { interface DesignTokens { border_radius?: 'rounded'; border_width?: 'thin'; colors?: DesignTokens.Colors; logo?: string; spacing_base?: number; theme?: 'dark'; } namespace DesignTokens { interface Colors { background?: Colors.Background; brand?: Colors.Brand; danger?: string; success?: string; text?: string; text_on_brand?: string; video_bg?: string; warning?: string; } namespace Colors { interface Background { '1000'?: string; '600'?: string; '700'?: string; '800'?: string; '900'?: string; } interface Brand { '300'?: string; '400'?: string; '500'?: string; '600'?: string; '700'?: string; } } } } } export interface PresetDeleteParams { /** * The account identifier tag. */ account_id: string; } export interface PresetGetParams { /** * Path param: The account identifier tag. */ account_id: string; /** * Query param: The page number from which you want your page search results to be * displayed. */ page_no?: number; /** * Query param: Number of results per page */ per_page?: number; } export interface PresetGetPresetByIDParams { /** * The account identifier tag. */ account_id: string; } export declare namespace Presets { export { type PresetCreateResponse as PresetCreateResponse, type PresetUpdateResponse as PresetUpdateResponse, type PresetDeleteResponse as PresetDeleteResponse, type PresetGetResponse as PresetGetResponse, type PresetGetPresetByIDResponse as PresetGetPresetByIDResponse, type PresetCreateParams as PresetCreateParams, type PresetUpdateParams as PresetUpdateParams, type PresetDeleteParams as PresetDeleteParams, type PresetGetParams as PresetGetParams, type PresetGetPresetByIDParams as PresetGetPresetByIDParams, }; } //# sourceMappingURL=presets.d.ts.map