import React from 'react';
import SidenavBody from './SidenavBody';
import SidenavHeader from './SidenavHeader';
import SidenavToggle from './SidenavToggle';
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
export interface SidenavProps<T = string> extends WithAsProps {
    /** Whether to expand the Sidenav */
    expanded?: boolean;
    /** Menu style */
    appearance?: 'default' | 'inverse' | 'subtle';
    /** Open menu, corresponding to Dropdown eventkey */
    defaultOpenKeys?: T[];
    /** Open menu, corresponding to Dropdown eventkey (controlled) */
    openKeys?: T[];
    /** Activation option, corresponding menu eventkey */
    activeKey?: T;
    /** Menu opening callback function that changed */
    onOpenChange?: (openKeys: T[], event: React.SyntheticEvent) => void;
    /** Select the callback function for the menu */
    onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
}
export declare const SidenavContext: React.Context<any>;
export interface SidenavContextType<T = string> {
    openKeys: T[];
    sidenav: boolean;
    expanded: boolean;
    onOpenChange: (openKeys: T[], event: React.SyntheticEvent) => void;
}
export interface SidenavComponent extends RsRefForwardingComponent<'div', SidenavProps> {
    Header: typeof SidenavHeader;
    Body: typeof SidenavBody;
    Toggle: typeof SidenavToggle;
}
declare const Sidenav: SidenavComponent;
export default Sidenav;
