@convergence/convergence
Version:
Convergence JavaScript Client
31 lines (30 loc) • 1.3 kB
TypeScript
import { ConvergenceSession } from "../ConvergenceSession";
import { ConvergenceEventEmitter } from "../util";
import { StringMapLike } from "../util/StringMap";
import { UserPresence } from "./UserPresence";
import { UserPresenceSubscription } from "./UserPresenceSubscription";
import { IPresenceEvent } from "./events";
import { DomainUserIdentifier } from "../identity";
export interface PresenceServiceEvents {
STATE_SET: string;
STATE_REMOVED: string;
STATE_CLEARED: string;
AVAILABILITY_CHANGED: string;
}
export declare class PresenceService extends ConvergenceEventEmitter<IPresenceEvent> {
static readonly Events: PresenceServiceEvents;
session(): ConvergenceSession;
isAvailable(): boolean;
setState(state: StringMapLike): void;
setState(key: string, value: any): void;
removeState(key: string): void;
removeState(keys: string[]): void;
clearState(): void;
state(): Map<string, any>;
presence(user: DomainUserIdentifier): Promise<UserPresence>;
presence(users: DomainUserIdentifier[]): Promise<UserPresence[]>;
subscribe(user: DomainUserIdentifier): Promise<UserPresenceSubscription>;
subscribe(users: DomainUserIdentifier[]): Promise<UserPresenceSubscription[]>;
private _subscribeToServer;
private _getManager;
}