import { SxProps } from '@mui/material';
export type ItemOptions = {
    id?: string;
    icon?: React.ReactNode;
    label?: React.ReactNode;
    description?: React.ReactNode;
    active?: boolean;
    variant?: 'default' | 'panel';
    children?: ItemOptions[];
};
export interface NavMenuProps extends React.HTMLAttributes<HTMLElement> {
    items?: ItemOptions[];
    mode?: 'horizontal' | 'vertical' | 'inline';
    children?: React.ReactNode;
    activeId?: string | null;
    textColor?: string;
    activeTextColor?: string;
    bgColor?: string;
    onSelected?: (id: string) => void;
    sx?: SxProps;
}
/**
 * NavMenu, 导航组件, 可用于 header/footer/sidebar
 */
declare function NavMenu({ items, mode, children: _childs, activeId, textColor, activeTextColor, bgColor, onSelected, ...rest }: NavMenuProps): import("react/jsx-runtime").JSX.Element;
declare namespace NavMenu {
    var Item: typeof import("./nav-menu").Item;
    var Sub: typeof import("./nav-menu").Sub;
}
export interface ItemProps extends React.HTMLAttributes<HTMLLIElement> {
    id?: string;
    icon?: React.ReactNode;
    label?: React.ReactNode;
    description?: React.ReactNode;
    active?: boolean;
    variant?: 'default' | 'panel';
    onClick?: () => void;
}
export declare function Item({ ref, id: _id, icon, label, description, active, variant, onClick, ...rest }: ItemProps & {
    ref?: React.Ref<unknown>;
}): import("react/jsx-runtime").JSX.Element;
export declare namespace Item {
    var displayName: string;
}
export interface SubProps extends Omit<ItemProps, 'children' | 'active'> {
    children?: Array<React.ReactElement<any> | null> | ((props: {
        isOpen: boolean;
    }) => React.ReactElement<any> | null);
    expandIcon?: React.ReactNode | ((props: {
        isOpen: boolean;
    }) => React.ReactNode);
}
export declare function Sub({ ref, id: _id, icon, label, description, variant, children, expandIcon, ...rest }: SubProps & {
    ref?: React.Ref<unknown>;
}): import("react/jsx-runtime").JSX.Element;
export declare namespace Sub {
    var displayName: string;
}
export default NavMenu;
