import { ReactElement, ReactNode } from "react";
import { IListProps } from "../List/index.js";
import { ITab } from "../Tabs/index.js";
/**
 * @internal
 */
export interface IDropdownListNoDataRenderProps {
    hasNoMatchingData: boolean;
}
/**
 * @internal
 */
export interface IDropdownListProps<T> extends IListProps<T> {
    title?: string;
    className?: string;
    tabsClassName?: string;
    height?: number;
    width?: number;
    maxHeight?: number;
    renderVirtualisedList?: boolean;
    onKeyDownSelect?: (item: T) => void;
    isLoading?: boolean;
    showSearch?: boolean;
    disableAutofocus?: boolean;
    searchFieldSize?: "small" | "normal";
    searchPlaceholder?: string;
    searchString?: string;
    searchLabel?: string;
    onSearch?: (searchString: string) => void;
    showTabs?: boolean;
    tabs?: ITab[];
    selectedTabId?: string;
    onTabSelect?: (tab: ITab) => void;
    mobileItemHeight?: number;
    isMobile?: boolean;
    renderNoData?: (props: IDropdownListNoDataRenderProps) => ReactNode;
    footer?: ReactNode | ((closeDropdown: () => void) => ReactNode);
    closeDropdown?: () => void;
    scrollToItem?: T;
    scrollDirection?: -1 | 1;
}
/**
 * @internal
 */
export declare const LOADING_HEIGHT = 100;
/**
 * @internal
 */
export declare const DEFAULT_ITEM_HEIGHT = 28;
/**
 * @internal
 */
export declare const DEFAULT_MOBILE_ITEM_HEIGHT = 40;
/**
 * @internal
 *
 * This component currently supports rendering both legacy and modern list implementations,
 * but there is an opportunity to simplify and improve maintainability by splitting it.
 *
 * TODO: Consider splitting this component into two separate implementations:
 *
 * 1. `List` — Maintained temporarily for backward compatibility with existing consumers that rely on
 *    the legacy `List` implementation based on `fixed-data-table-2`.
 *
 * 2. `UiPagedVirtualised` — Preferred implementation that uses our `UiPagedVirtualList` component
 */
export declare function DropdownList<T>(props: IDropdownListProps<T>): ReactElement;
//# sourceMappingURL=DropdownList.d.ts.map