import { TopMenuSubgroupOfMenuItem } from "../top-menu/top-menu-types";
import { UserWorkspaces } from "../../layout/toolbar/workspace-picker/workspace-picker-types";
import { WithParentContextName } from "../../../../fd-toolbox/types/with-parent-context-name";
import { UserVisibleWorkspaceInfo } from "../../layout/toolbar/visible-workspace-picker/visible-workspace-picker-types";
/**
 * Props of {@link UserDropdownMenu}
 */
export interface DropdownMenuProps extends WithParentContextName {
    id?: string;
    items: TopMenuSubgroupOfMenuItem[];
    userWorkspaces: UserWorkspaces | Promise<UserWorkspaces>;
    visibleWorkspaces: UserVisibleWorkspaceInfo | Promise<UserVisibleWorkspaceInfo>;
}
/**
 * User dropdown menu component with avatar, user info, theme switching, and custom menu items
 *
 * @param DropdownMenuProps {@link DropdownMenuProps}
 *
 * @example
 * ```tsx
    function MyComponent() {
        const workspaceId = "8f5c1d72-7c0b-4b22-9d2f-1a8f9dce4b31";

        const items: DropdownMenuProps["items"] = [
            { text: "Setting", icon: "gear", path: "/setting", type: menuItemTypes.redirectUrl },
            { text: "Logout", icon: "logOut", type: menuItemTypes.text, callback: () => {} },
        ];

        const userWorkspaces: UserWorkspaces = {
            homeWorkspace: {
                id: workspaceId,
                name: "Main workspace",
            },
            childWorkspaces: [],
            currentWorkspaceId: workspaceId,
        };

        const visibleWorkspaces: UserVisibleWorkspaceInfo = {
            visibleWorkspacesId: [workspaceId],
            currentWorkspaceChildren: [],
        };

        return (
            <UserDropdownMenu
                items={items}
                userWorkspaces={userWorkspaces}
                visibleWorkspaces={visibleWorkspaces}
            />
        );
    }
 * ```
 */
export declare function UserDropdownMenu({ id, items, parentContextName, userWorkspaces, visibleWorkspaces, }: DropdownMenuProps): import("react").JSX.Element;
