import { FC, CSSProperties, PropsWithChildren, ReactNode } from 'react'; import { BadgeProps } from 'antd'; import './style'; interface Menu { title: string; key: string; badge?: 'dot' | number | string | BadgeProps | (() => any) | string; } interface Info { title: string; value: string; } interface Action { title: string; onClick?: () => void; } export interface HeaderConfig { hiddenIglooIcon?: boolean; menus?: Menu[]; defaultSelected?: string; selectedKey?: string; onMenuChange?: (menuItem: any) => any; dropMenuConfig?: { customInfos: Info[]; actions: Action[]; }; userName?: string; userAvatar?: string; } export interface FooterConfig { hiddenIglooIcon?: boolean; extraInfo?: () => any; companyInfoRender?: () => any; copyRightRender?: (origin: ReactNode) => any; tel?: string; email?: string; workTime?: any; address?: string; companyIcon?: string; } interface layoutType { hiddenIglooIcon?: boolean; className?: string; style?: CSSProperties; withFixedPanel?: boolean; headerConfig?: HeaderConfig; footerConfig?: FooterConfig; } type HeaderFunction = (props: HeaderConfig) => any; type FooterFunction = (props: FooterConfig) => any; interface ILayout extends FC> { Header: HeaderFunction; Footer: FooterFunction; } declare const Layout: ILayout; export default Layout;