import React from 'react';
import type { ActionObject, Option, Options } from 'jamis-core';
import type { NestedSelectProps } from '../types';
interface NestedSelectState {
    isOpened?: boolean;
    isFocused?: boolean;
    inputValue?: string;
    stack: Array<Array<Option>>;
    optionHovered: Option | null;
}
export default class NestedSelectControl extends React.Component<NestedSelectProps, NestedSelectState> {
    static defaultProps: Partial<NestedSelectProps>;
    target: any;
    input: HTMLInputElement;
    state: NestedSelectState;
    domRef(ref: any): void;
    componentDidUpdate(prevProps: NestedSelectProps): void;
    doAction(action: ActionObject, data: object, throwErrors: boolean): void;
    dispatchEvent(eventName: string, eventData?: any): Promise<boolean>;
    handleOutClick(e: React.MouseEvent<any>): void;
    handleResultClear(): void;
    close(): void;
    removeItem(index: number, e?: React.MouseEvent<HTMLElement>): Promise<void>;
    renderValue(option: Option, key?: any): any;
    handleOptionClick(option: Option): Promise<void>;
    handleCheck(option: Option | Options, index?: number): Promise<void>;
    allChecked(options: Options): boolean;
    partialChecked(options: Options): boolean;
    reload(): void;
    getValue(): any;
    onFocus(e: any): Promise<void>;
    onBlur(e: any): Promise<void>;
    getTarget(): HTMLElement;
    handleKeyPress(e: React.KeyboardEvent): void;
    handleInputKeyDown(event: React.KeyboardEvent): void;
    handleInputChange(inputValue: string): void;
    handleResultChange(value: Array<Option>): Promise<void>;
    renderOptions(): JSX.Element;
    /**
     * 渲染在popover中的搜索结果
     */
    renderSearchResult(): JSX.Element;
    onMouseEnter(option: Option, index: number, e: MouseEvent): void;
    renderOuter(): JSX.Element;
    render(): JSX.Element;
}
export declare class NestedSelectControlRenderer extends NestedSelectControl {
}
export declare class CascaderSelectControlRenderer extends NestedSelectControl {
}
export {};
