import React from 'react';
import type { ActionObject, Option } from 'jamis-core';
import type { ISelectEvent, RenderMenuParams, SelectProps } from '../types';
export default class SelectControl extends React.Component<SelectProps, any> {
    static defaultProps: Partial<SelectProps>;
    input: any;
    unHook: Function;
    lazyloadRemote: import("lodash").DebouncedFunc<any>;
    lastTerm: string;
    /** 是否加载过一次 */
    autoCompleteLoadOnce: boolean;
    /** 默认的options */
    defaultOptions: Option[];
    /**
     * 已经发出过`change`事件的value
     */
    valueEmitedChangeEvent: any;
    hasFocused: boolean;
    constructor(props: SelectProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: SelectProps): void;
    inputRef(ref: any): void;
    foucs(): void;
    dispatchEvent: (eventName: ISelectEvent, eventData?: any) => Promise<import("jamis-core").RendererEvent<any, any>>;
    dispatchEventChange: (value: Option | Array<Option> | string | void, prevValue: Option | Array<Option> | string | void, valueFmt: string | Option | Array<Option> | void) => Promise<import("jamis-core").RendererEvent<any, any>>;
    changeValue: (value: Option | Array<Option> | string | void, restParam?: {
        isOpen?: boolean;
    }) => Promise<void>;
    loadRemote(input: string, from?: string): Promise<void | (() => void)>;
    /**
     * 处理一次搜索多个值的情况
     */
    handleSearchMultiValues: (input: string, combinedOptions: Option[]) => void;
    mergeOptions(options: Array<object>): Option[];
    renderMenu: (option: Option, params: RenderMenuParams) => JSX.Element;
    reload(): void;
    option2value(): void;
    renderOtherMode(): JSX.Element;
    doAction(action: ActionObject, data: object, throwErrors: boolean): any;
    handleActionSetOptions: (data: {
        /**
         * 新的options
         */
        options?: Option[];
        /**
         * 更新options的函数, 参数是旧的options, 要求返回新的options
         */
        optionsProvider?: string | string[] | ((options: Option[]) => Option[]);
        /**
         * 是否跳过options的格式化
         */
        skipNormalize?: boolean;
    }, throwErrors: boolean) => void;
    /**
     * 处理popover隐藏时, 要考虑默认值重置的问题
     */
    handleChangeIsOpen(isOpen: boolean): void;
    handleAdd: (args: any) => Promise<void>;
    handleDelete: (item: any) => Promise<void>;
    handleEdit: (item: any) => Promise<void>;
    handleFocus: (e: any) => Promise<void>;
    handleClose: () => void;
    render(): JSX.Element;
}
export declare class SelectControlRenderer extends SelectControl {
}
export declare class MultiSelectControlRenderer extends SelectControl {
    static defaultProps: {
        multiple: boolean;
    };
}
