import { Call } from '../Call'; import { SpeakerState } from './SpeakerState'; import { CallSettingsResponse } from '../gen/coordinator'; import { DevicePersistenceOptions } from './devicePersistence'; export declare class SpeakerManager { readonly state: SpeakerState; private subscriptions; private areSubscriptionsSetUp; private readonly call; private defaultDevice?; private readonly devicePersistence; constructor(call: Call, devicePreferences: Required); apply(settings: CallSettingsResponse): void; private applyWeb; private applyRN; setup(): void; /** * Lists the available audio output devices * * Note: It prompts the user for a permission to use devices (if not already granted) * Note: This method is not supported in React Native * * @returns an Observable that will be updated if a device is connected or disconnected */ listDevices(): import("rxjs").Observable; /** * Select a device. * * Note: This method is not supported in React Native * * @param deviceId empty string means the system default */ select(deviceId: string): void; /** * Disposes the manager. * * @internal */ dispose: () => void; /** * Set the volume of the audio elements * @param volume a number between 0 and 1. * * Note: This method is not supported in React Native */ setVolume(volume: number): void; /** * Set the volume of a participant. * * @param sessionId the participant's session id. * @param volume a number between 0 and 1. Set it to `undefined` to use the default volume. */ setParticipantVolume(sessionId: string, volume: number | undefined): void; private persistSpeakerDevicePreference; }