import { ReactElement } from 'react';
import { GridBaseRow } from '../Grid';
import { CellEditorCommon } from '../GridCell';
export interface GridFormPopoverMenuProps<TData extends GridBaseRow> extends CellEditorCommon {
    options: (selectedRows: TData[]) => Promise<MenuOption<TData>[]> | MenuOption<TData>[];
    defaultAction?: (props: {
        selectedRows: TData[];
        menuOption: SelectedMenuOptionResult<TData>;
    }) => Promise<void> | void;
}
export declare const PopoutMenuSeparator: Readonly<{
    label: "__isMenuSeparator__";
}>;
interface MenuSeparatorType {
    __isMenuSeparator__: boolean;
}
export interface SelectedMenuOptionResult<TData extends GridBaseRow> extends MenuOption<TData> {
    subValue: any;
}
export interface MenuOption<TData extends GridBaseRow> {
    label: ReactElement | string | MenuSeparatorType;
    subMenu?: () => ReactElement;
    action?: (props: {
        selectedRows: TData[];
        menuOption: SelectedMenuOptionResult<TData>;
    }) => Promise<void>;
    disabled?: string | boolean;
    hidden?: boolean;
    subComponent?: (props: any) => ReactElement;
}
/**
 * NOTE: If the popout menu doesn't appear on single click when also selecting row it's because
 * you need a useMemo around your columnDefs
 */
export declare const GridFormPopoverMenu: <TData extends GridBaseRow>(props: GridFormPopoverMenuProps<TData>) => import("react/jsx-runtime").JSX.Element;
export {};
