import { IContextualMenuProps, IContextualMenuItem } from './ContextualMenu.Props';
import { DirectionalHint } from '../../common/DirectionalHint';
import { BaseComponent } from '../../Utilities';
export interface IContextualMenuState {
    expandedMenuItemKey?: string;
    dismissedMenuItemKey?: string;
    contextualMenuItems?: IContextualMenuItem[];
    contextualMenuTarget?: HTMLElement;
    submenuTarget?: HTMLElement;
    positions?: any;
    slideDirectionalClassName?: string;
    subMenuId?: string;
    submenuDirection?: DirectionalHint;
}
export declare function hasSubmenuItems(item: IContextualMenuItem): boolean;
export declare function getSubmenuItems(item: IContextualMenuItem): IContextualMenuItem[] | undefined;
export declare class ContextualMenu extends BaseComponent<IContextualMenuProps, IContextualMenuState> {
    static defaultProps: IContextualMenuProps;
    private _host;
    private _previousActiveElement;
    private _isFocusingPreviousElement;
    private _enterTimerId;
    private _targetWindow;
    private _target;
    constructor(props: IContextualMenuProps);
    dismiss(ev?: any, dismissAll?: boolean): void;
    componentWillUpdate(newProps: IContextualMenuProps): void;
    componentWillMount(): void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element | null;
    private _renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);
    private _renderListItem(content, key, className?, title?);
    private _renderSeparator(index, className?);
    private _renderNormalItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);
    private _renderHeaderMenuItem(item, index, hasCheckmarks, hasIcons);
    private _renderAnchorMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);
    private _renderButtonItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks?, hasIcons?);
    private _renderMenuItemChildren(item, index, hasCheckmarks, hasIcons);
    private _renderIcon(item);
    private _onKeyDown(ev);
    private _onItemMouseEnter(item, ev);
    private _onMouseLeave(ev);
    private _onItemMouseDown(item, ev);
    private _onItemClick(item, ev);
    private _onAnchorClick(item, ev);
    private _executeItemClick(item, ev);
    private _onItemKeyDown(item, ev);
    private _onItemSubMenuExpand(item, target);
    private _getSubmenuProps();
    private _findItemByKey(key);
    private _onSubMenuDismiss(ev?, dismissAll?);
    private _setTargetWindowAndElement(target);
}
