import React from 'react'; import { WithThemeProps } from '../../../Common/theming'; import { IconName } from '../../../Common/theming/icons'; import { UpMenuCustomStyles } from './styles'; export declare type RenderCallback = (props: Partial, state: UpMenuState) => JSX.Element; export declare type UpMenuCustomStylesKeys = 'menu' | 'nav' | 'content' | 'header' | 'footer'; export interface UpMenuProps { title?: string; icon?: RenderCallback | JSX.Element; header?: RenderCallback | JSX.Element; menuItems: MenuItemData[]; footer?: RenderCallback | JSX.Element; children?: RenderCallback | React.ReactNode; width?: number; minified?: boolean; blocked?: boolean; onClick?: (uri: string, menuItem?: MenuItemData) => boolean | void; onMinifiedChange?: (minified?: boolean) => void; toggleIconName?: IconName; showToggler?: boolean; customStyles?: UpMenuCustomStyles; } export interface UpMenuState { minified: boolean; } declare class UpMenu extends React.Component { static defaultProps: { theme: import("../../../Common/theming").UpThemeInterface; icon: () => JSX.Element; width: number; }; constructor(p: any, c: any); toggleMinification: () => void; setMinification: (minified: boolean) => void; get isMinifiedControlled(): boolean; get currentMinifiedValue(): boolean; handleClick: (menuitem: MenuItemData) => boolean | void; render(): JSX.Element; } export declare type RenderIcon = (props: Partial) => JSX.Element; export interface MenuItemData { title?: string; uri?: string; icon?: string | RenderIcon; isSelected?: boolean; isVisible?: boolean; childMenuItems?: MenuItemData[]; isSeparator?: boolean; render?: (item: MenuItemData, props?: Partial, state?: UpMenuState) => JSX.Element; } export interface MenuItemProps extends MenuItemData { onClick?: (menuItem: MenuItemData) => boolean | void; } export declare class MenuItem extends React.Component { constructor(p: any, c: any); shouldComponentUpdate(nextProps: any): boolean; onItemClick: (e: any) => void; render(): JSX.Element; } export interface SubMenuProps { title?: string; childMenuItems?: MenuItemData[]; onClick: (menuItem: MenuItemData) => void; } export declare class SubMenu extends React.Component { constructor(p: any, c: any); shouldComponentUpdate(nextProps: any): boolean; render(): JSX.Element; } export interface SubItemsProps extends MenuItemData { onClick: (menuItem: MenuItemData) => boolean | void; } export interface SubItemsState { active: boolean; } export declare class SubItems extends React.Component { constructor(p: any, c: any); shouldComponentUpdate(nextProps: any, nextState: any): boolean; get anyChild(): boolean; onClick: (e: any) => boolean; onClickA: (e: any) => void; render(): JSX.Element; } declare const UpMenuDefaultHeader: (props: { title: string; }, state: { minified: boolean; }) => JSX.Element; export { UpMenu, UpMenuDefaultHeader }; declare const _default: { new (props: any, context: any): { render(): JSX.Element; context: any; setState(state: {} | ((prevState: Readonly<{}>, props: Readonly>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void; forceUpdate(callback?: () => void): void; readonly props: Readonly> & Readonly<{ children?: React.ReactNode; }>; state: Readonly<{}>; refs: { [key: string]: React.ReactInstance; }; componentDidMount?(): void; shouldComponentUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): boolean; componentWillUnmount?(): void; componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void; getSnapshotBeforeUpdate?(prevProps: Readonly>, prevState: Readonly<{}>): any; componentDidUpdate?(prevProps: Readonly>, prevState: Readonly<{}>, snapshot?: any): void; componentWillMount?(): void; UNSAFE_componentWillMount?(): void; componentWillReceiveProps?(nextProps: Readonly>, nextContext: any): void; UNSAFE_componentWillReceiveProps?(nextProps: Readonly>, nextContext: any): void; componentWillUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): void; UNSAFE_componentWillUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): void; }; displayName: string; contextTypes: { theme: import("prop-types").Requireable; }; contextType?: React.Context; }; export default _default;