import { EventEmitterProxy } from 'events-constructor'; import { EContentUseLicense, TApiManagerEvents } from '../ApiManager'; import { TEventMap } from './events'; import { TCallRole, TCallRoleSpectator, TCallSessionDiagnostics, TCallSessionSnapshot } from './types'; export declare const DEFAULT_LICENSE = EContentUseLicense.VIDEO; export declare class CallSessionState extends EventEmitterProxy { private readonly roleManager; private license; private isDuplexSendingMediaMode; private currentSnapshot; private readonly subscriptions; private dedupedTotal; constructor(); getSnapshot(): TCallSessionSnapshot; subscribe(listener: (snapshot: TCallSessionSnapshot) => void): () => void; subscribeRoleChanges(listener: (params: { previous: TCallRole; next: TCallRole; }) => void): () => void; hasSpectator(): boolean; setCallRoleParticipant(): void; setCallRoleSpectatorSynthetic(isAvailableSendingMedia?: boolean): void; setCallRoleSpectator(recvParams: TCallRoleSpectator['recvParams'], isAvailableSendingMedia?: boolean): void; reset(): void; subscribeToApiEvents(apiManager: TApiManagerEvents): void; stop(): void; getDiagnostics(): TCallSessionDiagnostics; private readonly notifySubscribers; private updateCurrentSnapshot; private readonly handleUseLicense; private readonly handleSyncMediaState; }