import React from 'react';
import './MultiLevelDropdown.css';
export declare type IList = {
    label: String | React.ReactNode;
    action?: Function;
    default?: boolean;
    searchKey?: string;
    value?: string | React.ReactNode | Element;
    showAsActive?: Boolean;
    textLabel?: String;
    disable?: boolean;
    closeDropdownOnSelect?: boolean;
    stacks: Array<IList>;
};
export declare type IPrimaryList = {
    label: String | React.ReactNode;
    action?: Function;
    default?: boolean;
    searchKey?: string;
    value?: string | React.ReactNode | Element;
    showAsActive?: Boolean;
    textLabel?: String;
    disable?: boolean;
    closeDropdownOnSelect?: boolean;
    stacks: Array<IList>;
    actionTooltip?: boolean;
    actionTooltipProps: {
        list: Array<TooltipList>;
    };
};
export declare type TooltipList = {
    label: String | React.ReactNode;
    action?: Function;
    title?: string;
};
declare type IMultiLevelDropdown = {
    primaryList: Array<IPrimaryList>;
    secondaryList: Array<IList>;
    tertiaryList: Array<IList>;
    type: 'click' | 'hover' | 'select';
    children?: React.ReactNode | Element;
    withSearch?: Boolean;
    dropDownPosition?: 'top' | 'bottom' | 'left' | 'right';
    withArrow?: boolean;
    className?: string;
    dropDownType?: 'primary' | 'secondary' | 'tertiary' | 'quaternary';
    closeAfterSelect?: boolean;
    title?: string;
    searchPlaceholder?: string;
    onListClick?: (data?: any) => void;
    viewAs?: 'label' | 'value';
    primaryLabel?: string;
    secondaryLabel?: string;
    tertiaryLabel?: string;
    emptyPlaceholder?: string;
    arrowSecondary?: boolean;
    primaryListLoader?: boolean;
    secondaryListLoader?: boolean;
    onListHover?: (data?: any) => void;
    clickState?: boolean;
    hoverState?: boolean;
    adjustWidthForContent?: boolean;
    onChange: Function;
    value: any;
    limit?: number;
    loadMoreOptions: (loadmoreArgs: LoadMoreArgsProps) => LoadMoreOptReturnProps;
    initialOptions?: Array<InitArrayProps>;
    defaultOptions?: boolean;
    isClearable?: boolean;
    isSearchable?: boolean;
    loadMoreList: Function;
    itemStatusMap: object;
    defaultOptionList: Array<IList>;
    fetchMoreListOptions?: boolean;
    totalCount: number;
    secondaryArrow?: boolean;
    OnHoverSubNestedMenu?: boolean;
    setSelectedStack?: string;
    withPrimarySearch?: boolean;
    searchLimit?: number;
};
declare type LoadMoreArgsProps = {
    search: string;
    skip: number;
    limit: number;
    prevOptions: any;
};
declare type InitArrayProps = {
    label: String;
    value: String;
};
declare type LoadMoreOptReturnProps = {
    data: any;
    hasMore: boolean;
};
export declare function useComponentVisible(initialIsVisible: Boolean): {
    ref: any;
    isComponentVisible: Boolean;
    setIsComponentVisible: React.Dispatch<React.SetStateAction<Boolean>>;
};
declare const MultiLevelDropdown: React.FunctionComponent<IMultiLevelDropdown>;
export default MultiLevelDropdown;
