import { MediaType, ReceiveSlot as WcmeReceiveSlot } from '@webex/internal-media-core'; import { FindMemberIdCallback, ReceiveSlot } from './receiveSlot'; export type CreateSlotCallback = (mediaType: MediaType) => Promise; export type { CSI, FindMemberIdCallback } from './receiveSlot'; /** * Manages all receive slots used by a meeting. WMCE receive slots cannot be ever deleted, * so this manager has a pool in order to re-use the slots that were released earlier. */ export declare class ReceiveSlotManager { private allocatedSlots; private freeSlots; private createSlotCallback; private findMemberIdByCsiCallback; /** * Constructor * @param {Meeting} meeting */ constructor(createSlotCallback: CreateSlotCallback, findMemberIdByCsiCallback: FindMemberIdCallback); /** * Creates a new receive slot or returns one from the existing pool of free slots * * @param {MediaType} mediaType * @returns {Promise} */ allocateSlot(mediaType: MediaType): Promise; /** * Releases the slot back to the pool so it can be re-used by others in the future * @param {ReceiveSlot} slot */ releaseSlot(slot: ReceiveSlot): void; /** * Resets the slot manager - this method should be called when the media connection is torn down */ reset(): void; /** * Returns statistics about the managed slots * * @returns {Object} */ getStats(): { numAllocatedSlots: {}; numFreeSlots: {}; }; /** * Tries to find the member id on all allocated receive slots * This function should be called when new members are added to the meeting. */ updateMemberIds(): void; /** * Find a receive slot by a ssrc. * * @param ssrc - The ssrc of the receive slot to find. * @returns - The receive slot with this ssrc, undefined if not found. */ findReceiveSlotBySsrc(ssrc: number): ReceiveSlot | undefined; }