import { ReactNode } from 'react';
import { Except } from 'type-fest';
import { DropdownButtonProps } from './dropdown-button';
import { BasicItem } from '../utils';
import '../styles/components/tree-select.scss';
export type TreeSelectProps<Item extends BasicItem<Item>> = {
    /**
     * The tree structure
     */
    data: Item[];
    /**
     * What happens when something is selected
     */
    onSelect: (item: Omit<Item, 'items'>) => void;
    /**
     * Contains autocomplete functionality to search through tree
     */
    autocomplete?: boolean;
    /**
     * Placeholder for the autocomplete input box
     */
    autocompletePlaceholder?: string;
    autocompleteFilter?: boolean;
    /**
     * The displayed label on the button
     */
    label?: ReactNode;
    /**
     * Array of default active nodes for initialisation
     */
    defaultActiveNodes?: Item['id'][];
};
declare const TreeSelect: <Item extends BasicItem<Item>>({ data, onSelect, autocomplete, autocompletePlaceholder, autocompleteFilter, defaultActiveNodes, label, ...props }: Except<DropdownButtonProps, "children" | "label" | "onSelect"> & TreeSelectProps<Item>) => import("react/jsx-runtime").JSX.Element;
export default TreeSelect;
