import { Component } from 'react';
import PropTypes from 'prop-types';
export declare const SoftContextMenuPanelItemShape: PropTypes.Requireable<PropTypes.InferProps<{
    name: PropTypes.Requireable<string>;
    icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
    onClick: PropTypes.Requireable<(...args: any[]) => any>;
    panel: PropTypes.Requireable<string | number>;
    disabled: PropTypes.Requireable<boolean>;
}>>;
export declare const SoftContextMenuPanelShape: PropTypes.Requireable<PropTypes.InferProps<{
    id: PropTypes.Requireable<string | number>;
    width: PropTypes.Requireable<number>;
    content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
    items: PropTypes.Requireable<PropTypes.InferProps<{
        name: PropTypes.Requireable<string>;
        icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        panel: PropTypes.Requireable<string | number>;
        disabled: PropTypes.Requireable<boolean>;
    }>[]>;
    title: PropTypes.Requireable<string>;
}>>;
export declare class SoftContextMenu extends Component<{
    panels?: any;
    className?: any;
    initialPanelId?: any;
}> {
    static propTypes: {
        className: PropTypes.Requireable<string>;
        panels: PropTypes.Requireable<PropTypes.InferProps<{
            id: PropTypes.Requireable<string | number>;
            width: PropTypes.Requireable<number>;
            content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            items: PropTypes.Requireable<PropTypes.InferProps<{
                name: PropTypes.Requireable<string>;
                icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
                onClick: PropTypes.Requireable<(...args: any[]) => any>;
                panel: PropTypes.Requireable<string | number>;
                disabled: PropTypes.Requireable<boolean>;
            }>[]>;
            title: PropTypes.Requireable<string>;
        }>[]>;
        initialPanelId: PropTypes.Requireable<string | number>;
    };
    static defaultProps: {
        panels: any[];
    };
    static getDerivedStateFromProps(nextProps: any, prevState: any): {
        prevProps: {
            panels: any;
        };
        idToPanelMap: {};
        idToPreviousPanelIdMap: {};
        idAndItemIndexToPanelIdMap: {};
    };
    state: {
        prevProps: {};
        idToPanelMap: {};
        idToPreviousPanelIdMap: {};
        idAndItemIndexToPanelIdMap: {};
        idToRenderedItemsMap: any;
        height: any;
        outgoingPanelId: any;
        incomingPanelId: any;
        transitionDirection: any;
        isOutgoingPanelVisible: boolean;
        focusedItemIndex: any;
        isUsingKeyboardToNavigate: boolean;
    };
    constructor(props: any);
    componentDidUpdate(prevProps: any): void;
    hasPreviousPanel: (panelId: any) => boolean;
    showPanel(panelId: any, direction: any): void;
    showNextPanel: (itemIndex: any) => void;
    showPreviousPanel: () => void;
    onIncomingPanelHeightChange: (height: any) => void;
    onOutGoingPanelTransitionComplete: () => void;
    onUseKeyboardToNavigate: () => void;
    mapIdsToRenderedItems: (panels: any) => any;
    renderItems(items?: any[]): any;
    renderPanel(panelId: any, transitionType: any): JSX.Element;
    render(): JSX.Element;
}
