import type Meeting from '.'; import SendSlotManager from '../multistream/sendSlotManager'; export declare const createBrbState: (meeting: Meeting, enabled: boolean) => BrbState; /** The purpose of this class is to manage the local and remote brb state * and make sure that the server state always matches the last requested state by the client. */ export declare class BrbState { state: { client: { enabled: boolean; }; server: { enabled: boolean; }; syncToServerInProgress: boolean; }; meeting: Meeting; /** * Constructor * * @param {Meeting} meeting - the meeting object * @param {boolean} enabled - whether the client audio/video is enabled at all */ constructor(meeting: Meeting, enabled: boolean); /** * Enables/disables brb * * @param {boolean} enabled * @param {SendSlotManager} sendSlotManager * @returns {Promise} */ enable(enabled: boolean, sendSlotManager: SendSlotManager): Promise; /** * Updates the server local and remote brb values so that they match the current client desired state. * * @param {SendSlotManager} sendSlotManager * @returns {Promise} */ private applyClientStateToServer; /** * Send the local brb state to the server * * @returns {Promise} */ private sendLocalBrbStateToServer; /** * This method should be called whenever the server brb state is changed * * @param {Boolean} [enabled] true if user has brb enabled, false otherwise * @returns {undefined} */ handleServerBrbUpdate(enabled?: boolean): void; }