import { FC, ReactNode, MouseEvent } from 'react';
import { Style } from 'inlines';
export type MenuDataItemObject = {
    value?: string | number;
    icon?: ReactNode;
    onClick?: (e: MouseEvent) => void;
    label?: ReactNode;
    items?: MenuDataItemObject[];
} | {
    value?: any;
    icon?: ReactNode;
    onClick?: (e: MouseEvent) => void;
    label: ReactNode;
    items?: MenuDataItemObject[];
};
export type MenuDataItem = MenuDataItemObject | ReactNode;
export type MenuDataObjectItem = {
    [key: string]: ReactNode | MenuDataItem[];
};
type MenuDataObject = {
    [key: string]: ReactNode | MenuDataItem[] | MenuDataObjectItem;
};
export type MenuData = MenuDataItem[] | MenuDataObject;
export declare const isMenuDataObjectItem: (config: MenuDataObjectItem | ReactNode | MenuDataItem[]) => config is MenuDataObjectItem;
type MenuProps = {
    config?: MenuData;
    active?: any;
    isActive?: (value: any) => boolean;
    onChange?: (value: any, header?: any) => void;
    style?: Style;
    children?: ReactNode | ReactNode[];
    header?: ReactNode | ReactNode[];
    footer?: ReactNode | ReactNode[];
    collapse?: boolean;
    shrinkable?: boolean;
    shrunk?: boolean;
    mobileAllowed?: boolean;
};
export declare const Menu: FC<MenuProps>;
export {};
