import { RightJoinProps } from "../utils/types.js";
import { AvatarProps } from "../avatar/avatar.types.js";
import { BoxProps } from "../box/box.types.js";
import { PopoverContentProps, PopoverProps, PopoverTriggerProps } from "../popover/popover.types.js";
import { HeaderLinkData } from "./header.types.js";
import { JSX } from "react";

//#region src/header/headerAccount.types.d.ts
/** Defines account link sections and user information. */
type HeaderAccountData = {
  sections?: HeaderAccountSectionData[];
  userInfo?: HeaderAccountUserInfoData;
};
type HeaderAccountProps = PopoverProps & {
  /** Children are disabled for this component. */children?: never; /** Props object passed to the PopoverContent component. */
  contentProps?: PopoverContentProps; /** Socket for a set of link sections below user information. */
  sections?: HeaderAccountData['sections'] | JSX.Element; /** Props object passed to the PopoverTrigger component. */
  triggerProps?: RightJoinProps<PopoverTriggerProps, AvatarProps>; /** Socket for user information on top of the account popover. */
  userInfo?: HeaderAccountData['userInfo'] | JSX.Element;
};
/** Defines heading and an array of links within one section. */
type HeaderAccountSectionData = {
  heading?: string;
  links?: HeaderLinkData[];
};
type HeaderAccountUserInfoData = {
  /** Displays company name in account user info section. */companyName?: string; /** Displays user name in account user info section. */
  displayName?: string;
  isApplication?: boolean;
  role?: string;
};
type HeaderAccountUserInfoProps = BoxProps & HeaderAccountUserInfoData;
//#endregion
export { HeaderAccountData, HeaderAccountProps, HeaderAccountSectionData, HeaderAccountUserInfoData, HeaderAccountUserInfoProps };

//# sourceMappingURL=headerAccount.types.d.ts.map