import * as React from 'react';
import Item from './Item';
import SubSidebar from './SubSidebar';
import Logo from './Logo';
import Switcher from './Switcher';
export default class Sidebar extends React.PureComponent<SidebarProps, SidebarState> {
    static Item: typeof Item;
    static SubSidebar: typeof SubSidebar;
    static Logo: typeof Logo;
    static Switcher: typeof Switcher;
    static defaultProps: {
        prefixCls: string;
        className: string;
        defaultSelectedKey: string;
        selectedKey: string;
        defaultOpenKeys: never[];
        openKeys: never[];
        onClick: () => void;
        onOpenChange: () => void;
        onCollapseChange: () => void;
        onSubSidebarChange: () => void;
        onSubSidebarClick: () => void;
        withSwitcher: boolean;
        selectedDrawer: string;
    };
    logoComponent: any;
    itemComponents: Array<any>;
    constructor(props: SidebarProps);
    setParentState: (res: any) => void;
    componentWillReceiveProps(nextProps: SidebarProps): void;
    onDrawerClickHandler: () => void;
    toggleCollapsed: () => void;
    render(): JSX.Element;
}
export interface SidebarState {
    openKeys: string[];
    selectedKey?: string;
    collapsed?: boolean;
    isDrawerOpen?: boolean;
    prefixCls?: string;
    setParentState?: (res: any) => void;
    onSidebarItemClick?: (param: ClickParam) => void;
    onSubSidebarOpenChange?: (openKeys: string[], selectedKey: any) => void;
    onSubSidebarChange?: (closed: boolean) => void;
    onSubSidebarClick?: (selectedKey: any) => void;
    subDrawerStore?: any;
    subSidebarStore?: any;
    sidebarItemStore?: any;
    drawerContent?: any;
    selectedDrawer?: any;
}
export interface ClickParam {
    key: string;
    keyPath?: Array<string>;
    item?: any;
    openKeys?: string[];
    domEvent?: any;
}
export interface SidebarProps {
    id?: string;
    children?: any;
    withSwitcher?: boolean;
    selectedKey?: string;
    defaultSelectedKey?: string;
    openKeys?: string[];
    defaultOpenKeys?: Array<string>;
    onOpenChange?: (openKeys: string[], selectedKey: any) => void;
    onCollapseChange?: (collapsed: boolean) => void;
    onSubSidebarChange?: (closed: boolean) => void;
    onSubSidebarClick?: (selectedKey: any) => void;
    onClick?: (param: ClickParam) => void;
    style?: React.CSSProperties;
    className?: string;
    prefixCls?: string;
    collapsed?: boolean;
    selectedDrawer?: any;
}
