import { Participant, PrepopulateUserMediaType, ReorderStreamsType, ReUpdateInterParameters, ReUpdateInterType, ReorderStreamsParameters, PrepopulateUserMediaParameters } from '../../@types/types'; export interface ProducerMediaPausedParameters extends PrepopulateUserMediaParameters, ReorderStreamsParameters, ReUpdateInterParameters { activeSounds: string[]; meetingDisplayType: string; meetingVideoOptimized: boolean; participants: Participant[]; oldSoundIds: string[]; shared: boolean; shareScreenStarted: boolean; updateMainWindow: boolean; hostLabel: string; islevel: string; updateActiveSounds: (activeSounds: string[]) => void; updateUpdateMainWindow: (updateMainWindow: boolean) => void; reorderStreams: ReorderStreamsType; prepopulateUserMedia: PrepopulateUserMediaType; reUpdateInter: ReUpdateInterType; getUpdatedAllParams: () => ProducerMediaPausedParameters; [key: string]: any; } export interface ProducerMediaPausedOptions { producerId: string; kind: 'audio' | 'video' | 'screenshare' | 'screen'; name: string; parameters: ProducerMediaPausedParameters; } export type ProducerMediaPausedType = (options: ProducerMediaPausedOptions) => Promise; /** * Handles the event when media is paused for a producer. * * @param {ProducerMediaPausedOptions} options - The options for the producer media paused event. * @param {string} options.producerId - The ID of the producer. * @param {string} options.kind - The kind of media (e.g., "audio", "video"). * @param {string} options.name - The name of the producer. * @param {ProducerMediaPausedParameters} options.parameters - The parameters for the event. * * @returns {Promise} A promise that resolves when the media paused handling is complete. * * @description * This function handles the event when media is paused for a producer. It performs the following tasks: * - Updates the parameters. * - Iterates through participants and updates the UI based on their muted status and other conditions. * - Manages active sounds and screen sharing state. * - Optimizes UI based on meeting display type and video optimization settings. * * @example * ```typescript * const options = { * producerId: "abc123", * kind: "audio", * name: "Participant1", * parameters: { * activeSounds: [], * meetingDisplayType: "media", * meetingVideoOptimized: false, * participants: [{ name: "Participant1", muted: true, islevel: "2", videoID: null }], * oldSoundIds: ["Participant1"], * shared: false, * shareScreenStarted: false, * updateMainWindow: false, * hostLabel: "Host", * islevel: "1", * updateActiveSounds: (sounds) => console.log("Active sounds updated:", sounds), * updateUpdateMainWindow: (update) => console.log("Main window update:", update), * reorderStreams: async (params) => console.log("Reordered streams:", params), * prepopulateUserMedia: async (params) => console.log("Prepopulated user media:", params), * reUpdateInter: async (params) => console.log("Re-updated interface:", params), * getUpdatedAllParams: () => ({ }), * }, * }; * * await producerMediaPaused(options); * ``` */ export declare const producerMediaPaused: ({ producerId, kind, name, parameters, }: ProducerMediaPausedOptions) => Promise;