import { AvatarSource } from "../../AvatarSource"; import type { ViewModel } from "../../ViewModel"; import { ErrorReportViewModel, Options as BaseOptions } from "../../ErrorReportViewModel"; import { ErrorViewModel } from "../../ErrorViewModel"; import type { Room } from "../../../matrix/room/Room"; import type { GroupCall } from "../../../matrix/calls/group/GroupCall"; import type { Member } from "../../../matrix/calls/group/Member"; import type { BaseObservableList } from "../../../observable/list/BaseObservableList"; import type { Stream } from "../../../platform/types/MediaDevices"; import type { MediaRepository } from "../../../matrix/net/MediaRepository"; import type { SegmentType } from "../../navigation"; type Options = BaseOptions & { call: GroupCall; room: Room; }; export declare class CallViewModel extends ErrorReportViewModel> { readonly memberViewModels: BaseObservableList; constructor(options: Options); get isCameraMuted(): boolean; get isMicrophoneMuted(): boolean; get memberCount(): number; get name(): string; get id(): string; private get call(); private onUpdate; hangup(): Promise; toggleCamera(): Promise; toggleMicrophone(): Promise; } type MemberOptions = BaseOptions & { member: Member; mediaRepository: MediaRepository; }; export declare class CallMemberViewModel extends ErrorReportViewModel> implements IStreamViewModel { get stream(): Stream | undefined; private get member(); get isCameraMuted(): boolean; get isMicrophoneMuted(): boolean; get avatarLetter(): string; get avatarColorNumber(): number; avatarUrl(size: number): string | undefined; get avatarTitle(): string; onUpdate(): void; private mapMemberSyncErrorIfNeeded; compare(other: IStreamViewModel): number; } export interface IStreamViewModel extends AvatarSource, ViewModel { get stream(): Stream | undefined; get isCameraMuted(): boolean; get isMicrophoneMuted(): boolean; get errorViewModel(): ErrorViewModel | undefined; compare(other: IStreamViewModel): number; } export {};