import * as React from 'react';
import { TreeListItem, TreeListProps } from '../TreeList';
export type TreeDropdownProps<T extends TreeListItem<any>> = {
    placeholder?: string;
    style?: React.CSSProperties;
    fieldStyle?: React.CSSProperties;
    listSizeConstraints?: {
        minWidth?: number | string;
        maxWidth?: number | string;
        minHeight?: number | string;
        maxHeight?: number | string;
    };
    options: TreeListProps<T>['options'];
    labelField?: string;
    primaryKey?: keyof T;
    value?: any[][] | string[];
    defaultValue?: any[][] | string[];
    toDisplayValue?: (value: any[][] | string[]) => string;
    onChange: (value: any[][] | string[]) => void;
    onMenuOpen?: () => void;
    onMenuClose?: () => void;
    onMouseDown?: (e: React.MouseEvent<HTMLDivElement>) => void;
    resizable?: boolean;
    clearable?: boolean;
};
export declare function toDisplayValueDefault(value: any[][] | string[]): string;
/**
 * Formats the closed TreeDropdown input using each option's `label` for the stored `value` path
 * segments (same shape as {@link toDisplayValueDefault}, but resolves raw values to labels).
 */
export declare function toDisplayValueFromOptionTree<T extends {
    value: any;
    label: string;
    children?: T[];
}>(paths: any[][] | string[], options: T[]): string;
export declare function TreeDropdown<T extends TreeListItem<any>>(props: TreeDropdownProps<T>): React.JSX.Element;
