import React, { ReactNode } from "react";
import { Room } from "matrix-js-sdk/src/matrix";
import { SDKContext } from "../../contexts/SDKContext";
interface IProps {
    isPanelCollapsed: boolean;
    children?: ReactNode;
}
type PartialDOMRect = Pick<DOMRect, "width" | "left" | "top" | "height">;
interface IState {
    contextMenuPosition: PartialDOMRect | null;
    isDarkTheme: boolean;
    isHighContrast: boolean;
    selectedSpace?: Room | null;
    showLiveAvatarAddon: boolean;
    showQrLogin: boolean;
    supportsQrLogin: boolean;
}
export default class UserMenu extends React.Component<IProps, IState> {
    static contextType: React.Context<import("../../contexts/SDKContext").SdkContextClass>;
    context: React.ContextType<typeof SDKContext>;
    private dispatcherRef?;
    private themeWatcherRef?;
    private readonly dndWatcherRef?;
    private buttonRef;
    constructor(props: IProps, context: React.ContextType<typeof SDKContext>);
    private get hasHomePage();
    private onCurrentVoiceBroadcastRecordingChanged;
    componentDidMount(): void;
    componentWillUnmount(): void;
    private checkQrLoginSupport;
    private isUserOnDarkTheme;
    private isUserOnHighContrastTheme;
    private onProfileUpdate;
    private onSelectedSpaceUpdate;
    private onThemeChanged;
    private onAction;
    private onOpenMenuClick;
    private onContextMenu;
    private onCloseMenu;
    private onSwitchThemeClick;
    private onSettingsOpen;
    private onProvideFeedback;
    private onSignOutClick;
    private onSignInClick;
    private onRegisterClick;
    private onHomeClick;
    private renderContextMenu;
    render(): React.ReactNode;
}
export {};
