export class ChatUI {
    constructor(scene: any);
    scene: any;
    hud: import("./hud.js").HUD;
    contentBase: string;
    /** @type {VRSpaceAPI} */
    api: VRSpaceAPI;
    /** @type {GroupsApi} */
    groupApi: GroupsApi;
    /** @type {CreateGroupForm} */
    createGroupForm: CreateGroupForm;
    /** @type {FormArea} */
    listGroupsForm: FormArea;
    /** @type {UserInviteForm} */
    inviteForm: UserInviteForm;
    listGroupsButton: any;
    createGroupsButton: any;
    groupsInvitesButton: any;
    activeButton: any;
    invitations: any[];
    listGroupsText: string;
    createGroupText: string;
    listDirectText: string;
    createDirectText: string;
    unreadGroupsTotal: number;
    unreadChatsTotal: number;
    dispose(): void;
    /**
     * Called from outside
     * @param {*} button HUD button that activates this call
     */
    show(button: any): Promise<void>;
    createChatButton: any;
    groupEventListener: any;
    showChatsButton(): Promise<void>;
    listChatsButton: any;
    showListButton(): Promise<void>;
    listGroups(): void;
    groupCount(invites: any, memberships: any, direct?: boolean): any;
    updateButtons(invites: any, memberships: any): Promise<void>;
    showInvitesButton(): void;
    hide(): void;
    clearForm(): void;
    createForm(invites: any, groups: any, refresh: any): void;
    /** List invites */
    listInvitesUI(): void;
    /**
     * List groups
     * @param {boolean} [direct=false] true for direct messages (private chats)
     */
    listGroupsUI(direct?: boolean, button?: any): void;
    groupDelete(group: any): void;
    refreshList(refresh: any): void;
    createGroupUI(): void;
    /**
     * Invite a user to a private chat: pop up UserInviteForm to select/enter the user,
     * then create a private group, and send the invite.
     */
    addContactUI(): void;
}
import { VRSpaceAPI } from '../client/rest-api.js';
import { GroupsApi } from '../client/openapi/api/GroupsApi.js';
import { CreateGroupForm } from './groups/create-groups-form.js';
import { FormArea } from './widget/form-area.js';
import { UserInviteForm } from './widget/user-invite-form.js';
