import { SxProps } from '@mui/material';
import { IconName } from '../../../IconSvg/IconSvg';
import { DropdownMenuItem } from '../../../menu/DropdownMenu';
import { MouseEvent } from 'react';
type EntityActionMenuDropdownMenuType = 'DOWNLOAD' | 'PRIMARY';
type EntityActionMenuDropdownMenuConfiguration = {
    visible: boolean;
    tooltipText?: string;
    disabled?: boolean;
};
export type ActionConfiguration = {
    visible: boolean;
    text: string;
    disabled?: boolean;
    tooltipText?: string;
    onClick?: (e: MouseEvent) => void;
    href?: string;
};
export type ActionConfigurationMap = Record<string, ActionConfiguration>;
export type MenuConfigurationMap = Record<EntityActionMenuDropdownMenuType, EntityActionMenuDropdownMenuConfiguration>;
export type ActionViewProps = {
    action: string;
    icon?: IconName;
    textSx?: SxProps;
    iconSx?: SxProps;
};
export type EntityActionMenuLayout = {
    buttonActions: ActionViewProps[];
    downloadMenuActions: ActionViewProps[][];
    primaryMenuActions: ActionViewProps[][];
    primaryMenuText: string;
    primaryMenuEndIcon: IconName;
    menuButtonSx?: SxProps;
};
export type EntityActionMenuProps = {
    actionConfiguration: ActionConfigurationMap;
    menuConfiguration: MenuConfigurationMap;
    layout: EntityActionMenuLayout;
};
declare function getUnmappedActions(actionConfiguration: ActionConfigurationMap, layout: EntityActionMenuLayout): ActionConfigurationMap;
/**
 * Given a group of dropdown menu items and an action configuration,
 * return a list of dropdown menu items with non-visible and non-configured actions removed.
 * @param group
 * @param actionConfiguration
 */
declare function mapAndFilterItemsInMenuGroup(group: ActionViewProps[], actionConfiguration: ActionConfigurationMap): DropdownMenuItem[];
/**
 * Given a list of groups of dropdown menu actions, returns a list of dropdown menu item
 * groups where non-visible actions have been removed, and groups with no visible actions
 * have been removed.
 * @param menuActions
 * @param actionConfiguration
 */
declare function mapAndFilterMenuGroups(menuActions: ActionViewProps[][], actionConfiguration: ActionConfigurationMap): DropdownMenuItem[][];
/**
 * The EntityActionMenu renders a menu that displays the actions that can be invoked on an Entity page.
 */
export default function EntityActionMenu(props: EntityActionMenuProps): import("react/jsx-runtime").JSX.Element;
export declare const EXPORTED_FOR_UNIT_TESTING: {
    getUnmappedActions: typeof getUnmappedActions;
    mapAndFilterItemsInMenuGroup: typeof mapAndFilterItemsInMenuGroup;
    mapAndFilterMenuGroups: typeof mapAndFilterMenuGroups;
};
export {};
//# sourceMappingURL=EntityActionMenu.d.ts.map