import { TabsProps } from 'antd'; import React from 'react'; import { MenuProps } from '../menu'; import { IWhalePageTitleProps } from './WhalePageTitle'; import type { MenuItemGroupType as RcMenuItemGroupType } from 'rc-menu/lib/interface'; interface IChildren { (menuItem: ItemType): React.ReactNode; } interface ITabItem { label: React.ReactNode; key: string; children: React.ReactNode; } interface ItemType extends Omit { children?: ItemType[]; key: React.Key; } export interface IWhaleLayoutProps { sidebar?: React.ReactNode; menu?: Pick & { items: ItemType[]; }; className?: string; children: IChildren | React.ReactNode; title?: string; initSidebarCollapsed?: boolean; style?: React.CSSProperties; menuTitleNode?: React.ReactNode; menuNode?: React.ReactNode; } declare function WhalePage({ title, menu, className, children, sidebar, initSidebarCollapsed, style, menuTitleNode, menuNode, }: IWhaleLayoutProps): JSX.Element; declare namespace WhalePage { var SimplePage: ({ tabItems, tab, titleExtraContent, breadcrumbs, title, className, children, id, style, titleNode, }: ISimplePageLayoutProps) => JSX.Element; var getExtraTabContentElementId: (key: string, id?: string | undefined) => string; } export default WhalePage; interface ISimplePageLayoutProps extends Omit { /** * 是函数时,需要 tab 受控即设置 activeKey 和 onChange */ titleExtraContent?: React.ReactNode | ((tabActiveKey?: string) => React.ReactNode); tabItems?: ITabItem[]; tab?: TabsProps; children?: React.ReactNode; className?: string; id?: string; style?: React.CSSProperties; /** WhalePageTitle 组件,会覆盖 title & titleExtraContent */ titleNode?: React.ReactNode; }