import React from 'react';
import { Menu } from '../Menu/index.js';
import type { MenuItemState } from '../../components/MenuItem/index.js';
import type { Nullable } from '../../typings/utility-types.js';
import type { ComboBoxExtendedItem } from '../../components/ComboBox/index.js';
import type { SizeProp } from '../../lib/types/props.js';
import { ComboBoxRequestStatus } from './CustomComboBoxTypes.js';
export interface ComboBoxMenuProps<T> {
    opened?: boolean;
    items?: Nullable<Array<ComboBoxExtendedItem<T>>>;
    totalCount?: number;
    loading?: boolean;
    hasMargin?: boolean;
    maxMenuHeight?: number | string;
    refMenu?: (menu: Nullable<Menu>) => void;
    renderNotFound?: () => React.ReactNode;
    renderTotalCount?: (found: number, total: number) => React.ReactNode;
    renderItem: (item: T, state: MenuItemState) => React.ReactNode;
    itemWrapper?: (item: T) => React.ComponentType;
    onValueChange: (value: T) => any;
    renderAddButton?: () => React.ReactNode;
    caption?: React.ReactNode;
    repeatRequest?: () => void;
    requestStatus?: ComboBoxRequestStatus;
    isMobile?: boolean;
    menuId?: string;
    size?: SizeProp;
}
export declare const ComboBoxMenuDataTids: {
    readonly loading: "ComboBoxMenu__loading";
    readonly failed: "ComboBoxMenu__failed";
    readonly notFound: "ComboBoxMenu__notFound";
    readonly items: "ComboBoxMenu__items";
    readonly item: "ComboBoxMenu__item";
};
type DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;
export declare class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    static defaultProps: DefaultProps<unknown>;
    private getProps;
    private readonly locale;
    private theme;
    render(): React.JSX.Element;
    renderMain(): React.JSX.Element | null;
    private renderItem;
}
export {};
