import React from "react";

type LinkType = {
  onClick?: React.MouseEventHandler<HTMLButtonElement>;
  label?: React.ReactNode;
  icon?: any;
} & React.DetailedHTMLProps<
  React.ButtonHTMLAttributes<HTMLButtonElement>,
  HTMLButtonElement
>;

interface ProfileInfo {
  name?: string;
  email?: string;
  imageUrl?: string;
}

interface PopoverProps {
  description?: React.ReactNode;
  helpLinkProps?: React.DetailedHTMLProps<
    React.ButtonHTMLAttributes<HTMLButtonElement>,
    HTMLButtonElement
  >;
  title?: string;
}

interface ProfilePopoverProps {
  preferredDateFormat?: PopoverProps;
  preferredTimeFormat?: PopoverProps;
  timeZone?: PopoverProps;
}

type FloatingActionMenuProps = {
  profileInfoOverrides?: ProfileInfo;
  showProductSwitcher?: boolean;
  topLinks?: LinkType[];
  bottomLinks?: LinkType[];
  customContent?: React.ReactNode;
  isThemeSwitcherEnabled?: boolean;
  isOrganizationSwitcherEnabled?: boolean;
  profilePopoverProps?: ProfilePopoverProps;
  isConsumer?: boolean;
  enableSubscriptionUpgradeRequest?: boolean;
};

const FloatingActionMenu: React.FC<FloatingActionMenuProps>;

export default FloatingActionMenu;
