import type { VueNode } from '@antdv/pro-utils';
import type { AvatarProps, SiderProps } from 'ant-design-vue';
import type { CSSProperties, Ref, VNode } from 'vue';
import type { WithFalse } from '../../typing';
import type { AppItemProps, AppListProps } from '../AppsLogoComponents/types';
import type { BaseMenuProps } from './BaseMenu';
export type SiderMenuProps = {
    logo?: VueNode;
    appList?: AppListProps;
    appListRender?: (props: AppListProps, defaultDom: VNode) => VueNode;
    itemClick?: (item: AppItemProps, popoverRef?: Ref<HTMLSpanElement | null>) => void;
    siderWidth?: number;
    avatarProps?: WithFalse<AvatarProps & {
        title?: VueNode;
        render?: (avatarProps: AvatarProps, defaultDom: VNode, props: SiderMenuProps) => VueNode;
    }>;
    actionsRender?: WithFalse<(props: any) => VueNode[] | VueNode>;
    menuHeaderRender?: WithFalse<(logo: VueNode, title: VueNode, props?: SiderMenuProps) => VueNode>;
    menuFooterRender?: WithFalse<(props?: SiderMenuProps) => VueNode>;
    menuContentRender?: WithFalse<(props: SiderMenuProps, defaultDom: VueNode) => VueNode>;
    menuExtraRender?: WithFalse<(props: SiderMenuProps) => VueNode>;
    collapsedButtonRender?: WithFalse<(collapsed?: boolean, defaultDom?: VNode) => VueNode>;
    breakpoint?: SiderProps['breakpoint'] | false;
    onMenuHeaderClick?: (e: MouseEvent) => void;
    links?: VueNode[];
    onOpenChange?: (openKeys: WithFalse<string[]>) => void;
    getContainer?: false;
    logoStyle?: CSSProperties;
    hide?: boolean;
    className?: string;
    style?: CSSProperties;
} & Pick<BaseMenuProps, Exclude<keyof BaseMenuProps, ['onCollapse']>>;
