import React from 'react';
import type { ActionObject, Option } from 'jamis-core';
import type { ItemRenderStates, TreeCompRef, TreeDropInfo, TreeSelectProps } from '../types';
interface TreeSelectState {
    isOpened: boolean;
    inputValue: string;
}
declare class TreeRenderer extends React.Component<TreeSelectProps, TreeSelectState> {
    static defaultProps: Partial<TreeSelectProps>;
    treeRef: TreeCompRef;
    targetRef: React.RefObject<HTMLDivElement>;
    container: React.RefObject<HTMLDivElement>;
    input: React.RefObject<HTMLInputElement>;
    cache: {
        [propName: string]: any;
    };
    /** 是否加载过一次 */
    autoCompleteLoadOnce: boolean;
    /** 在loading的时候, 是否保留dom */
    keepTreeDOM: boolean;
    /** 标识已经发送了change事件的值 */
    valueEmitedChangeEvent: any;
    constructor(props: TreeSelectProps);
    componentDidMount(): void;
    componentDidUpdate(prevProps: Readonly<TreeSelectProps>, prevState: Readonly<TreeSelectState>): void;
    open(fn?: () => void): void;
    close(): void;
    handleFocus: (e: any) => void;
    handleBlur: (e: any) => void;
    handleKeyPress: (e: React.KeyboardEvent) => void;
    validate(): any;
    removeItem(index: number, e?: React.MouseEvent<HTMLElement>): void;
    handleChange: (value: any, changedOption?: Option) => Promise<boolean>;
    handleInputChange: (value: string) => void;
    handleInputKeyDown: (event: React.KeyboardEvent) => void;
    handleSort: (parent: Option | undefined, index: number, mode: "desc" | "asc") => void;
    /**
     * 处理拖拽移动节点
     */
    handleMove: (dropInfo: TreeDropInfo) => Promise<void>;
    clearValue(): void;
    /**
     * 计算出过滤后的项
     */
    getFilteredOptions: () => Option[];
    loadRemote(input: string): Promise<{
        options: Option[];
    } | undefined>;
    mergeOptions(options: Array<object>): Option[];
    reload(): void;
    handleOutClick: (e: React.MouseEvent<any>) => void;
    handleResultChange: (value: Array<Option>, changedOption?: Option) => void;
    doAction(action: ActionObject, data: any, throwErrors: boolean): any;
    resultChangeEvent: (value: any, changedOption?: Option) => Promise<boolean>;
    renderItem: (item: Option) => any;
    /**
     * 以树状样式渲染选中的项
     */
    renderSelectedItemAsTree: (item: Option, onRemove: (ev: React.MouseEvent, item: Option) => void) => JSX.Element;
    renderSelectedItems: (selectedItems: Option[]) => JSX.Element[] | Option[];
    domRef(ref: TreeCompRef): void;
    renderOptionItem: (option: Option, states: ItemRenderStates) => JSX.Element;
    dispatchTreeEvent: (eventName: "click" | "sort-asc" | "sort-desc", value: Record<string, any>) => Promise<boolean>;
    calcPlaceholder: (useAutoComplete: boolean) => string;
    renderChild: (region: string, schema: any, childProps?: Record<string, any>) => JSX.Element;
    renderOuter(): JSX.Element;
    render(): JSX.Element;
}
export declare class TreeSelectControlRenderer extends TreeRenderer {
}
export declare class TreeControlRenderer extends TreeRenderer {
}
export {};
