import React from 'react';
import { SizeType } from '../config-provider/SizeContext';
import { ListRef } from '../virtual-list';
import type { CascaderOption, CascaderFieldNames, CascaderValueType, CascaderMultiValueType, CascaderMultiModeType } from './Cascader';
import { TooltipPlacement } from '../tooltip';
import { CascaderLocaleOmit } from './index';
interface MenusProps {
    value?: CascaderMultiValueType;
    mode?: CascaderMultiModeType;
    size?: SizeType;
    keyword?: string;
    activeValue?: (string | number)[];
    hoveredValue?: (string | number)[];
    enableValues?: CascaderMultiValueType;
    totalValues?: CascaderMultiValueType;
    options?: CascaderOption[];
    prefixCls?: string;
    transitionName?: string;
    popupPlacement?: string;
    expandTrigger?: string;
    visible?: boolean;
    virtual?: boolean;
    dropdownMenuColumnStyle?: React.CSSProperties;
    defaultFieldNames?: CascaderFieldNames;
    fieldNames?: CascaderFieldNames;
    expandIcon?: React.ReactNode;
    loadingIcon?: React.ReactNode;
    menusEdgeBuffer?: number;
    withCheckAll?: boolean;
    locale?: CascaderLocaleOmit;
    titlePlacement?: TooltipPlacement;
    dropdownMenuRender?: (menu: React.ReactElement, menuIndex: number, hoveredValue: CascaderValueType) => React.ReactNode;
    getEnableValues?: (options?: CascaderOption[]) => void;
    getTotalValues?: (options?: CascaderOption[]) => void;
    onItemDoubleClick?: (targetOption: string[], index: number, e: React.MouseEvent<HTMLElement>) => void;
    onActiveValueSet?: (activeValue: (string | number)[]) => void;
    onSelect?: (targetOption: string[], index: number, e: React.KeyboardEvent<HTMLElement>) => void;
    onMultiSelect?: (targetOption: CascaderOption, index: number, optionKey: CascaderValueType, e: React.KeyboardEvent<HTMLElement>) => void;
    onMultiSelectAll?: any;
    onDropdownMenuScroll?: (e: React.UIEvent<HTMLUListElement>, menuIndex: number) => void;
}
interface MenusState {
    menuScrollOpen: boolean;
    activeValue?: (string | number)[];
}
type MenusType = Record<number, HTMLLIElement>;
type MenuItemsType = Record<number, HTMLLIElement>;
type VMenusType = Record<number, ListRef>;
declare class Menus extends React.Component<MenusProps, MenusState> {
    menuWrap: HTMLLIElement;
    menus: MenusType;
    vMenus: VMenusType;
    menuItems: MenuItemsType;
    delayTimer: number;
    static defaultProps: MenusProps;
    constructor(props: any);
    componentDidUpdate(prevProps: MenusProps): void;
    isStatusOption(statusValue: any[], option: any, menuIndex: any): boolean;
    isActiveOption(value: any, optionValue: any): boolean;
    getFieldName(name: any): any;
    getOption(option: CascaderOption, menuIndex: number): React.JSX.Element;
    getCheckAllOption(menuIndex: number): React.JSX.Element;
    getActiveOptions(values?: CascaderOption[]): CascaderOption[];
    getShowOptions(): CascaderOption[][];
    delayOnEvent(onEvent: any, ...args: any[]): void;
    saveMenuWrap: (menuWrap: any) => void;
    saveMenus: (menuIndex: any) => (menus: any) => void;
    saveVMenus: (menuIndex: any) => (menus: any) => void;
    saveMenuItems: (index: any) => (node: any) => void;
    scrollActiveItemToView(): void;
    setMenuPosition(callback?: () => void): void;
    handleMenuScrollChange(menuScrollOpen: any): void;
    handleMenuScroll: (menuIndex: any) => (e: any) => void;
    onShowActive: () => void;
    onShowEnd: () => void;
    render(): React.JSX.Element;
}
export default Menus;
