///
import { IListBoxItem, IListBoxSharedProps } from '../../ListBox';
import { ISelectionRange } from '../../Utilities/Selection';
import { IDropdownCalloutProps } from "./DropdownCallout.Props";
import { IDropdownExpandableProps } from "./DropdownExpandable.Props";
export interface IDropdownProps extends IListBoxSharedProps, Pick, "actions" | "calloutContentClassName" | "filteredNoResultsText" | "filterPlaceholderText" | "noItemsText" | "showFilterBox" | "userFilteredItems">, Pick, "ariaLabel" | "className" | "onCollapse" | "onExpand" | "placeholder"> {
/**
* Set to false to not do any text filtering when the user types in the filter box. Do this if you want
* to control filtering through filteredItems.
* @default: true
*/
filterByText?: boolean;
/**
* Optional method to perform a custom filter of items based on filter text.
* If not provided, it will filter items based on item.text.
*/
filterItem?: (filterText: string, item: IListBoxItem, items: IListBoxItem[]) => boolean;
/**
* This is called when updates are made to the listBox items to update the unselectbale items in the selection.
*/
getUnselectableRanges?: (items: IListBoxItem[]) => ISelectionRange[];
/**
* Function which returns the callout for this dropdpown.
*/
renderCallout?: (props: IDropdownCalloutProps) => JSX.Element;
/**
* Function which returns the Expandable for this dropdown.
*/
renderExpandable?: (props: IDropdownExpandableProps) => JSX.Element;
/**
* Supply for a custom width for the callout. By default, the callout's width will be the same as the
* expandable. To change the expandable width, set a className.
*/
width?: number;
}