import React from 'react';
import { OptionsControlProps, Option } from './Options';
export interface TreeSelectProps extends OptionsControlProps {
    placeholder?: any;
    autoComplete?: string;
}
export interface TreeSelectState {
    isOpened: boolean;
    isFocused: boolean;
    inputValue: string;
}
export default class TreeSelectControl extends React.Component<TreeSelectProps, TreeSelectState> {
    static defaultProps: {
        placeholder: string;
        optionsPlaceholder: string;
        multiple: boolean;
        clearable: boolean;
        rootLabel: string;
        rootValue: string;
        showIcon: boolean;
        joinValues: boolean;
        extractValue: boolean;
        delimiter: string;
        resetValue: string;
        spinnerClassName: string;
    };
    container: React.RefObject<HTMLDivElement>;
    target: React.RefObject<HTMLDivElement>;
    input: React.RefObject<HTMLInputElement>;
    cache: {
        [propName: string]: any;
    };
    constructor(props: TreeSelectProps);
    componentDidMount(): void;
    open(fn?: () => void): void;
    close(): void;
    handleFocus(): void;
    handleBlur(): void;
    handleClick(): void;
    handleKeyPress(e: React.KeyboardEvent): void;
    removeItem(index: number, e?: React.MouseEvent<HTMLElement>): void;
    handleChange(value: any): void;
    handleInputChange(e: React.ChangeEvent<HTMLInputElement>): void;
    handleInputKeyDown(event: React.KeyboardEvent): void;
    clearValue(): void;
    filterOptions(options: Array<Option>, keywords: string): Array<Option>;
    loadRemote(input: string): any;
    mergeOptions(options: Array<object>): object[];
    renderValues(): JSX.Element | JSX.Element[] | null;
    renderOuter(): JSX.Element;
    render(): JSX.Element;
}
export declare class TreeSelectControlRenderer extends TreeSelectControl {
}
