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 { 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; presence(user: DomainUserIdentifier): Promise; presence(users: DomainUserIdentifier[]): Promise; subscribe(user: DomainUserIdentifier): Promise; subscribe(users: DomainUserIdentifier[]): Promise; private _subscribeToServer; private _getManager; }