import { type KeyboardEvent, type MouseEvent, type ReactNode } from "react";
import { type ITheme } from "@gooddata/sdk-model";
import { type HelpMenuDropdownAlignPoints } from "../typings/positioning.js";
/**
 * @internal
 */
export interface IHeaderMenuItem {
    key: string;
    label?: string;
    href?: string;
    isActive?: boolean;
    className?: string;
    target?: string;
    iconName?: string;
    icon?: ReactNode;
    onClick?: (obj: any) => void;
    isActiveByStartWith?: boolean;
}
/**
 * @internal
 */
export interface IAppHeaderProps {
    className?: string;
    onLogoClick?: (e: MouseEvent<HTMLAnchorElement>) => void;
    onMenuItemClick?: (menuItem: IHeaderMenuItem, e?: MouseEvent) => void;
    menuItemsGroups?: IHeaderMenuItem[][];
    accountMenuItems?: IHeaderMenuItem[];
    helpMenuItems?: IHeaderMenuItem[];
    badges?: ReactNode;
    logoUrl?: string;
    logoHref?: string;
    logoTitle?: string;
    organizationName?: string;
    isAccessibilityCompliant?: boolean;
    documentationUrl?: string;
    workspacePicker: ReactNode;
    headerColor?: string;
    headerTextColor?: string;
    activeColor?: string;
    userName: string;
    expiredDate?: string;
    disableHelpDropdown?: boolean;
    onHelpClick?: (isOpen: boolean) => void;
    helpMenuDropdownAlignPoints?: HelpMenuDropdownAlignPoints;
    showStaticHelpMenu?: boolean;
    helpRedirectUrl?: string;
    theme?: ITheme;
    showUpsellButton?: boolean;
    onUpsellButtonClick?: (e: MouseEvent) => void;
    search?: ReactNode;
    notificationsPanel?: (props: {
        isMobile: boolean;
        closeNotificationsOverlay: () => void;
    }) => ReactNode;
    showChatItem?: boolean;
    onChatItemClick?: (e: MouseEvent) => void;
}
/**
 * @internal
 */
export interface IAppHeaderState {
    childrenWidth: number;
    guid: string;
    isOverlayMenuOpen: boolean;
    responsiveMode: boolean;
    isHelpMenuOpen: boolean;
    isSearchMenuOpen: boolean;
    isNotificationsMenuOpen: boolean;
}
/**
 * @internal
 */
export interface IHeaderAccountProps {
    className?: string;
    items?: IHeaderMenuItem[];
    onMenuItemClick: (menuItem: IHeaderMenuItem, e?: MouseEvent | KeyboardEvent) => void;
    userName?: string;
}
/**
 * @internal
 */
export interface IHeaderAccountState {
    isOpen: boolean;
}
/**
 * @internal
 */
export interface IHeaderMenuProps {
    className?: string;
    onMenuItemClick?: (menuItem: IHeaderMenuItem, e?: MouseEvent) => void;
    sections?: IHeaderMenuItem[][];
}
/**
 * @internal
 */
export interface IHeaderUpsellButtonProps {
    onUpsellButtonClick?: (e: MouseEvent) => void;
}
/**
 * @internal
 */
export type TUTMContent = "main_menu_help_documentation" | "main_menu_help_university" | "main_menu_help_community" | "main_menu_help_support" | "main_menu_help_ticket" | "main_menu_help_slack";
//# sourceMappingURL=typings.d.ts.map