import { ContextMenuGroupDefault, ContextMenuItemDefault, ContextMenuLevelsProps, ContextMenuPropGetGroupId, ContextMenuPropGetGroupLabel, ContextMenuPropGetItemAs, ContextMenuPropGetItemAttributes, ContextMenuPropGetItemDisabled, ContextMenuPropGetItemGroupId, ContextMenuPropGetItemKey, ContextMenuPropGetItemLabel, ContextMenuPropGetItemLeftIcon, ContextMenuPropGetItemLeftSide, ContextMenuPropGetItemOnClick, ContextMenuPropGetItemRightIcon, ContextMenuPropGetItemRightSide, ContextMenuPropGetItemStatus, ContextMenuPropGetItemSubMenu, GetLevelsParams, Level } from './types';
export declare function withDefaultGetters<ITEM, GROUP>(props: ContextMenuLevelsProps<ITEM, GROUP>): ({
    items: ITEM[];
    size?: import("./types").ContextMenuPropSize;
    direction?: import("../Popover").Direction;
    offset?: import("../Popover").PopoverPropOffset;
    groups?: GROUP[] | undefined;
    sortGroup?: import("./types").ContextMenuPropSortGroup;
    onItemClick?: import("./types").ContextMenuPropOnItemClick<ITEM> | undefined;
    possibleDirections?: readonly import("../Popover").Direction[];
    subMenuDirection?: import("./types").ContextMenuPropSubMenuDirection;
    spareDirection?: import("../Popover").Direction;
    onSetDirection?: (direction: import("../Popover").Direction) => void;
    onClickOutside?: import("../../hooks/useClickOutside").ClickOutsideHandler;
    isOpen?: boolean;
    form?: import("./types").ContextMenuForm;
    isMobile?: boolean;
    onEsc?: React.KeyboardEventHandler;
} & import("./types").MappersItem<ITEM> & import("./types").MappersGroup<GROUP> & {
    anchorRef: React.RefObject<HTMLElement>;
    position?: never;
} & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "size" | "form" | "items" | "groups" | "position" | "direction" | "onItemClick" | "sortGroup" | "offset" | "possibleDirections" | "spareDirection" | "onClickOutside" | "onSetDirection" | "anchorRef" | "isOpen" | "subMenuDirection" | "isMobile" | "onEsc" | keyof import("./types").MappersItem<ITEM_1> | keyof import("./types").MappersGroup<GROUP_1>> & import("react").RefAttributes<HTMLDivElement> & (GROUP extends {
    id: ContextMenuGroupDefault["id"] | unknown;
} ? {} : {
    getGroupId: ContextMenuPropGetGroupId<GROUP>;
}) & (ITEM extends {
    label: ContextMenuItemDefault["label"];
} ? {} : {
    getItemLabel: ContextMenuPropGetItemLabel<ITEM>;
}) & {
    getItemKey: ContextMenuPropGetItemKey<ContextMenuItemDefault> | ContextMenuPropGetItemKey<ITEM>;
    getItemLabel: ContextMenuPropGetItemLabel<ContextMenuItemDefault> | ContextMenuPropGetItemLabel<ITEM>;
    getItemRightSide: ContextMenuPropGetItemRightSide<ContextMenuItemDefault> | ContextMenuPropGetItemRightSide<ITEM>;
    getItemLeftSide: ContextMenuPropGetItemLeftSide<ContextMenuItemDefault> | ContextMenuPropGetItemLeftSide<ITEM>;
    getItemRightIcon: ContextMenuPropGetItemRightIcon<ContextMenuItemDefault> | ContextMenuPropGetItemRightIcon<ITEM>;
    getItemLeftIcon: ContextMenuPropGetItemLeftIcon<ContextMenuItemDefault> | ContextMenuPropGetItemLeftIcon<ITEM>;
    getItemSubMenu: ContextMenuPropGetItemSubMenu<ContextMenuItemDefault> | ContextMenuPropGetItemSubMenu<ITEM>;
    getItemStatus: ContextMenuPropGetItemStatus<ContextMenuItemDefault> | ContextMenuPropGetItemStatus<ITEM>;
    getItemDisabled: ContextMenuPropGetItemDisabled<ContextMenuItemDefault> | ContextMenuPropGetItemDisabled<ITEM>;
    getItemOnClick: ContextMenuPropGetItemOnClick<ContextMenuItemDefault> | ContextMenuPropGetItemOnClick<ITEM>;
    getItemAs: ContextMenuPropGetItemAs<ContextMenuItemDefault> | ContextMenuPropGetItemAs<ITEM>;
    getItemAttributes: ContextMenuPropGetItemAttributes<ContextMenuItemDefault> | ContextMenuPropGetItemAttributes<ITEM>;
    getItemGroupId: ContextMenuPropGetItemGroupId<ContextMenuItemDefault> | ContextMenuPropGetItemGroupId<ITEM>;
    getGroupId: ContextMenuPropGetGroupId<ContextMenuGroupDefault> | ContextMenuPropGetGroupId<GROUP>;
    getGroupLabel: ContextMenuPropGetGroupLabel<ContextMenuGroupDefault> | ContextMenuPropGetGroupLabel<GROUP>;
    setComponentSize: React.Dispatch<React.SetStateAction<import("../../hooks/useComponentSize").ComponentSize>>;
    disableAnimationBack: () => void;
    enableAnimationBack: () => void;
}) | ({
    items: ITEM[];
    size?: import("./types").ContextMenuPropSize;
    direction?: import("../Popover").Direction;
    offset?: import("../Popover").PopoverPropOffset;
    groups?: GROUP[] | undefined;
    sortGroup?: import("./types").ContextMenuPropSortGroup;
    onItemClick?: import("./types").ContextMenuPropOnItemClick<ITEM> | undefined;
    possibleDirections?: readonly import("../Popover").Direction[];
    subMenuDirection?: import("./types").ContextMenuPropSubMenuDirection;
    spareDirection?: import("../Popover").Direction;
    onSetDirection?: (direction: import("../Popover").Direction) => void;
    onClickOutside?: import("../../hooks/useClickOutside").ClickOutsideHandler;
    isOpen?: boolean;
    form?: import("./types").ContextMenuForm;
    isMobile?: boolean;
    onEsc?: React.KeyboardEventHandler;
} & import("./types").MappersItem<ITEM> & import("./types").MappersGroup<GROUP> & {
    anchorRef?: never;
    position: import("../Popover").Position;
} & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "size" | "form" | "items" | "groups" | "position" | "direction" | "onItemClick" | "sortGroup" | "offset" | "possibleDirections" | "spareDirection" | "onClickOutside" | "onSetDirection" | "anchorRef" | "isOpen" | "subMenuDirection" | "isMobile" | "onEsc" | keyof import("./types").MappersItem<ITEM_1> | keyof import("./types").MappersGroup<GROUP_1>> & import("react").RefAttributes<HTMLDivElement> & (GROUP extends {
    id: ContextMenuGroupDefault["id"] | unknown;
} ? {} : {
    getGroupId: ContextMenuPropGetGroupId<GROUP>;
}) & (ITEM extends {
    label: ContextMenuItemDefault["label"];
} ? {} : {
    getItemLabel: ContextMenuPropGetItemLabel<ITEM>;
}) & {
    getItemKey: ContextMenuPropGetItemKey<ContextMenuItemDefault> | ContextMenuPropGetItemKey<ITEM>;
    getItemLabel: ContextMenuPropGetItemLabel<ContextMenuItemDefault> | ContextMenuPropGetItemLabel<ITEM>;
    getItemRightSide: ContextMenuPropGetItemRightSide<ContextMenuItemDefault> | ContextMenuPropGetItemRightSide<ITEM>;
    getItemLeftSide: ContextMenuPropGetItemLeftSide<ContextMenuItemDefault> | ContextMenuPropGetItemLeftSide<ITEM>;
    getItemRightIcon: ContextMenuPropGetItemRightIcon<ContextMenuItemDefault> | ContextMenuPropGetItemRightIcon<ITEM>;
    getItemLeftIcon: ContextMenuPropGetItemLeftIcon<ContextMenuItemDefault> | ContextMenuPropGetItemLeftIcon<ITEM>;
    getItemSubMenu: ContextMenuPropGetItemSubMenu<ContextMenuItemDefault> | ContextMenuPropGetItemSubMenu<ITEM>;
    getItemStatus: ContextMenuPropGetItemStatus<ContextMenuItemDefault> | ContextMenuPropGetItemStatus<ITEM>;
    getItemDisabled: ContextMenuPropGetItemDisabled<ContextMenuItemDefault> | ContextMenuPropGetItemDisabled<ITEM>;
    getItemOnClick: ContextMenuPropGetItemOnClick<ContextMenuItemDefault> | ContextMenuPropGetItemOnClick<ITEM>;
    getItemAs: ContextMenuPropGetItemAs<ContextMenuItemDefault> | ContextMenuPropGetItemAs<ITEM>;
    getItemAttributes: ContextMenuPropGetItemAttributes<ContextMenuItemDefault> | ContextMenuPropGetItemAttributes<ITEM>;
    getItemGroupId: ContextMenuPropGetItemGroupId<ContextMenuItemDefault> | ContextMenuPropGetItemGroupId<ITEM>;
    getGroupId: ContextMenuPropGetGroupId<ContextMenuGroupDefault> | ContextMenuPropGetGroupId<GROUP>;
    getGroupLabel: ContextMenuPropGetGroupLabel<ContextMenuGroupDefault> | ContextMenuPropGetGroupLabel<GROUP>;
    setComponentSize: React.Dispatch<React.SetStateAction<import("../../hooks/useComponentSize").ComponentSize>>;
    disableAnimationBack: () => void;
    enableAnimationBack: () => void;
});
export declare const getLevels: <ITEM>(params: GetLevelsParams<ITEM>) => Level<ITEM>[];
