UNPKG

sinch-rtc

Version:

RTC JavaScript/Web SDK

55 lines (54 loc) 2.41 kB
import { DeviceVersion } from "./DeviceVersion"; import { Capability } from "../models/Capability"; import { ClientEventFanout } from "../calling/listeners/ClientEventFanout"; import { ApiClient } from "../ocra/ApiClient"; import { InstanceAuthentication } from "../ocra/auth/InstanceAuthentication"; import { UserInstance, Instance } from "./UserInstance"; export declare class InstanceController { private applicationKey; private userId; private clientEvent; private api; private static MIN_TTL_MS; private readonly DefaultCapabilities; private static readonly REGISTRATION_TIMEOUT_MS; private static readonly APPLICATION_VERSION; private static readonly UPDATE_INSTANCE_DELAY_MS; private static readonly UPDATE_INSTANCE_TTL_WINDOW_DAYS_DEFAULT; private capabilities; private deviceId; private storage; private userInstance; private updateInstanceTimeoutId; private updateInstanceTtlWindowDays; authentication?: InstanceAuthentication; deviceVersion: DeviceVersion; updateInstance: () => Promise<void | undefined>; constructor(applicationKey: string, userId: string, clientEvent: ClientEventFanout, api: ApiClient); private removeInstance; private setInstance; get instance(): UserInstance | null; createNewInstanceAuthentication: () => Promise<InstanceAuthentication>; toggleCapability(capability: Capability, enabled: boolean): void; isCapabilityEnabled(capability: Capability): boolean; setUpdateInstanceTtlWindow(updateTtlWindowDays: number | undefined): void; start(): Promise<Instance>; prolongInstanceIfNeeded(): Promise<void>; terminate(): void; private createInstance; private updateInstanceIfNecessary; /** * When the SDK is about to issue an UpdateInstance request, the request is delayed for a short time. * When the timer has expired, only the latest UpdateInstance request is actually sent over to the backend. * This is to avoid sending multiple UpdateInstance requests in a very * short time when multiple properties of an instance (e.g. capabilities / device information) are changed. */ private scheduleInstanceUpdate; private prolongInstance; private register; private validateExpireAt; private storeInstance; private setUpdatedInstance; private callUpdateInstanceApi; private updateInstanceExpiresAt; }