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) => void; siderWidth?: number; avatarProps?: WithFalse 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) => void; getContainer?: false; logoStyle?: CSSProperties; hide?: boolean; className?: string; style?: CSSProperties; } & Pick>;