import { IRoomService } from '../types';
import { UserInfo } from '../../stores/room';

interface IUserManager {
    setSelfInfo(options: SelfInfoOptions): Promise<void>;
    setCustomInfoForUser(options: CustomInfoForUser): Promise<void>;
}
export type CustomInfoForUser = {
    userId: string;
    customInfo: Record<string, string>;
};
export type SelfInfoOptions = {
    userName?: string;
    avatarUrl?: string;
    customInfo?: Record<string, any>;
};
export declare class UserManager implements IUserManager {
    private service;
    constructor(service: IRoomService);
    setSelfInfo(options: SelfInfoOptions): Promise<void>;
    setCustomInfoForUser(options: CustomInfoForUser): Promise<any>;
    getDisplayName(options: UserInfo): string;
    setLocalUser(userInfo: {
        userId: string;
    }): void;
    private onRemoteUserEnterRoom;
    private onRemoteUserLeaveRoom;
    private onSeatListChanged;
    private onUserAudioStateChanged;
    private onUserVideoStateChanged;
    private bindRoomEngineEvents;
    private unbindRoomEngineEvents;
}
export {};
