import * as React from 'react';
import { IContextualMenuProps, IContextualMenuItem } from './ContextualMenu.Props';
import { DirectionalHint } from '../../common/DirectionalHint';
import './ContextualMenu.scss';
export interface IContextualMenuState {
    expandedMenuItemKey?: string;
    dismissedMenuItemKey?: string;
    contextualMenuItems?: IContextualMenuItem[];
    contextualMenuTarget?: HTMLElement;
    beakStyle?: any;
    submenuProps?: IContextualMenuProps;
    positions?: any;
    slideDirectionalClassName?: string;
    subMenuId?: string;
    submenuDirection?: DirectionalHint;
}
export declare class ContextualMenu extends React.Component<IContextualMenuProps, IContextualMenuState> {
    static defaultProps: {
        items: any[];
        shouldFocusOnMount: boolean;
        isBeakVisible: boolean;
        gapSpace: number;
        directionalHint: DirectionalHint;
        beakWidth: number;
    };
    private _host;
    private _previousActiveElement;
    private _isFocusingPreviousElement;
    private _didSetInitialFocus;
    private _enterTimerId;
    private _events;
    private _async;
    private _focusZone;
    constructor(props: IContextualMenuProps);
    dismiss(ev?: any, dismissAll?: boolean): void;
    componentWillMount(): void;
    componentDidMount(): void;
    componentWillReceiveProps(newProps: IContextualMenuProps, newState: IContextualMenuState): void;
    componentWillUnmount(): void;
    render(): any;
    private _renderMenuItem(item, index, hasCheckmarks, hasIcons);
    private _renderAnchorMenuItem(item, index, hasCheckmarks, hasIcons);
    private _renderMenuItemChildren(item, index, hasCheckmarks, hasIcons);
    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 _onSubMenuDismiss(ev?, dismissAll?);
}
