import type { LNode } from '../../common';
export interface LdMenuProps {
    collapsed?: boolean;
    expanded?: Array<MenuValue>;
    defaultExpanded?: Array<MenuValue>;
    expandMutex?: boolean;
    expandType?: 'normal' | 'popup';
    logo?: LNode;
    operations?: LNode;
    theme?: 'light' | 'dark';
    value?: MenuValue;
    defaultValue?: MenuValue;
    width?: string | number | Array<string | number>;
    onChange?: (value: MenuValue) => void;
    onExpand?: (value: Array<MenuValue>) => void;
}
export interface LdHeadMenuProps {
    expanded?: Array<MenuValue>;
    defaultExpanded?: Array<MenuValue>;
    expandType?: 'normal' | 'popup';
    logo?: LNode;
    operations?: LNode;
    theme?: 'light' | 'dark';
    value?: MenuValue;
    defaultValue?: MenuValue;
    onChange?: (value: MenuValue) => void;
    onExpand?: (value: Array<MenuValue>) => void;
}
export interface LdSubmenuProps {
    content?: string | LNode;
    default?: string | LNode;
    disabled?: boolean;
    icon?: LNode;
    title?: string | LNode;
    value?: MenuValue;
}
export interface LdMenuItemProps {
    content?: string | LNode;
    default?: string | LNode;
    disabled?: boolean;
    href?: string;
    icon?: LNode;
    replace?: boolean;
    router?: Record<string, any>;
    target?: '_blank' | '_self' | '_parent' | '_top';
    to?: MenuRoute;
    value?: MenuValue;
    onClick?: (context: {
        e: MouseEvent;
    }) => void;
}
export interface LdMenuGroupProps {
    title?: string | LNode;
}
export type MenuValue = string | number;
export interface MenuRoute {
    path?: string;
    name?: string;
    hash?: string;
    query?: MenuQueryData;
    params?: MenuQueryData;
}
export interface MenuQueryData {
    [key: string]: string | string[];
}
