/// <reference types="react" />
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?: "s" | "m" | "xs" | "l" | undefined;
    direction?: "downCenter" | "upCenter" | "downRight" | "downLeft" | "upRight" | "upLeft" | "leftUp" | "leftCenter" | "leftDown" | "rightUp" | "rightCenter" | "rightDown" | "downStartLeft" | "upStartLeft" | "downStartRight" | "upStartRight" | "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown" | undefined;
    offset?: import("../Popover").PopoverPropOffset | undefined;
    groups?: GROUP[] | undefined;
    sortGroup?: import("./types").ContextMenuPropSortGroup | undefined;
    onItemClick?: import("./types").ContextMenuPropOnItemClick<ITEM> | undefined;
    possibleDirections?: readonly ("downCenter" | "upCenter" | "downRight" | "downLeft" | "upRight" | "upLeft" | "leftUp" | "leftCenter" | "leftDown" | "rightUp" | "rightCenter" | "rightDown" | "downStartLeft" | "upStartLeft" | "downStartRight" | "upStartRight" | "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown")[] | undefined;
    subMenuDirection?: "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown" | undefined;
    spareDirection?: "downCenter" | "upCenter" | "downRight" | "downLeft" | "upRight" | "upLeft" | "leftUp" | "leftCenter" | "leftDown" | "rightUp" | "rightCenter" | "rightDown" | "downStartLeft" | "upStartLeft" | "downStartRight" | "upStartRight" | "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown" | undefined;
    onSetDirection?: ((direction: "downCenter" | "upCenter" | "downRight" | "downLeft" | "upRight" | "upLeft" | "leftUp" | "leftCenter" | "leftDown" | "rightUp" | "rightCenter" | "rightDown" | "downStartLeft" | "upStartLeft" | "downStartRight" | "upStartRight" | "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown") => void) | undefined;
    onClickOutside?: import("../../hooks/useClickOutside").ClickOutsideHandler | undefined;
    isOpen?: boolean | undefined;
    form?: "default" | "brick" | "round" | undefined;
    isMobile?: boolean | undefined;
    onEsc?: import("react").KeyboardEventHandler<Element> | undefined;
} & import("./types").MappersItem<ITEM> & import("./types").MappersGroup<GROUP> & {
    anchorRef: import("react").RefObject<HTMLElement>;
    position?: undefined;
} & Omit<import("react").HTMLAttributes<HTMLDivElement>, "form" | "size" | "css" | "items" | "groups" | "direction" | "offset" | "position" | "onItemClick" | "sortGroup" | "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: unknown;
} ? {} : {
    getGroupId: ContextMenuPropGetGroupId<GROUP>;
}) & (ITEM extends {
    label: string | number;
} ? {} : {
    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: import("react").Dispatch<import("react").SetStateAction<import("../../hooks/useComponentSize").ComponentSize>>;
    disableAnimationBack: () => void;
    enableAnimationBack: () => void;
}) | ({
    items: ITEM[];
    size?: "s" | "m" | "xs" | "l" | undefined;
    direction?: "downCenter" | "upCenter" | "downRight" | "downLeft" | "upRight" | "upLeft" | "leftUp" | "leftCenter" | "leftDown" | "rightUp" | "rightCenter" | "rightDown" | "downStartLeft" | "upStartLeft" | "downStartRight" | "upStartRight" | "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown" | undefined;
    offset?: import("../Popover").PopoverPropOffset | undefined;
    groups?: GROUP[] | undefined;
    sortGroup?: import("./types").ContextMenuPropSortGroup | undefined;
    onItemClick?: import("./types").ContextMenuPropOnItemClick<ITEM> | undefined;
    possibleDirections?: readonly ("downCenter" | "upCenter" | "downRight" | "downLeft" | "upRight" | "upLeft" | "leftUp" | "leftCenter" | "leftDown" | "rightUp" | "rightCenter" | "rightDown" | "downStartLeft" | "upStartLeft" | "downStartRight" | "upStartRight" | "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown")[] | undefined;
    subMenuDirection?: "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown" | undefined;
    spareDirection?: "downCenter" | "upCenter" | "downRight" | "downLeft" | "upRight" | "upLeft" | "leftUp" | "leftCenter" | "leftDown" | "rightUp" | "rightCenter" | "rightDown" | "downStartLeft" | "upStartLeft" | "downStartRight" | "upStartRight" | "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown" | undefined;
    onSetDirection?: ((direction: "downCenter" | "upCenter" | "downRight" | "downLeft" | "upRight" | "upLeft" | "leftUp" | "leftCenter" | "leftDown" | "rightUp" | "rightCenter" | "rightDown" | "downStartLeft" | "upStartLeft" | "downStartRight" | "upStartRight" | "leftStartUp" | "leftStartDown" | "rightStartUp" | "rightStartDown") => void) | undefined;
    onClickOutside?: import("../../hooks/useClickOutside").ClickOutsideHandler | undefined;
    isOpen?: boolean | undefined;
    form?: "default" | "brick" | "round" | undefined;
    isMobile?: boolean | undefined;
    onEsc?: import("react").KeyboardEventHandler<Element> | undefined;
} & import("./types").MappersItem<ITEM> & import("./types").MappersGroup<GROUP> & {
    anchorRef?: undefined;
    position: import("../Popover").Position;
} & Omit<import("react").HTMLAttributes<HTMLDivElement>, "form" | "size" | "css" | "items" | "groups" | "direction" | "offset" | "position" | "onItemClick" | "sortGroup" | "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: unknown;
} ? {} : {
    getGroupId: ContextMenuPropGetGroupId<GROUP>;
}) & (ITEM extends {
    label: string | number;
} ? {} : {
    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: import("react").Dispatch<import("react").SetStateAction<import("../../hooks/useComponentSize").ComponentSize>>;
    disableAnimationBack: () => void;
    enableAnimationBack: () => void;
});
export declare const getLevels: <ITEM>(params: GetLevelsParams<ITEM>) => Level<ITEM>[];
