import { CallIntent, CallType } from "./callEventTypes"; import { GroupCall } from "./group/GroupCall"; import type { Room } from "../room/Room"; import type { MemberChange } from "../room/members/RoomMember"; import type { StateEvent } from "../storage/types"; import type { ILogItem } from "../../logging/types"; import type { BaseObservableMap } from "../../observable/map"; import type { SignallingMessage, MGroupCallBase } from "./callEventTypes"; import type { Options as GroupCallOptions } from "./group/GroupCall"; import type { Transaction } from "../storage/idb/Transaction"; import type { Clock } from "../../platform/web/dom/Clock"; import type { RoomStateHandler } from "../room/state/types"; import type { MemberSync } from "../room/timeline/persistence/MemberWriter"; export type Options = Omit & { clock: Clock; }; export declare class CallHandler implements RoomStateHandler { private readonly options; private readonly _calls; private roomMemberToCallIds; private groupCallOptions; private sessionId; constructor(options: Options); loadCalls(intent?: CallIntent, log?: ILogItem): Promise; loadCallsForRoom(intent: CallIntent, roomId: string, log?: ILogItem): Promise; private _getLoadTxn; private _loadCallEntries; createCall(roomId: string, type: CallType, name: string, intent?: CallIntent, log?: ILogItem): Promise; get calls(): BaseObservableMap; /** @internal */ handleRoomState(room: Room, event: StateEvent, memberSync: MemberSync, txn: Transaction, log: ILogItem): Promise; /** @internal */ updateRoomMembers(room: Room, memberChanges: Map): void; /** @internal */ handlesDeviceMessageEventType(eventType: string): boolean; /** @internal */ handleDeviceMessage(message: SignallingMessage, userId: string, deviceId: string, log: ILogItem): void; private handleCallEvent; private handleCallMemberEvent; dispose(): void; }