import { Component, KeyboardEvent, MouseEvent, ReactNode } from 'react';
import Input, { InputProps } from './Input';
import { ButtonProps } from '../button';
import { Size } from '../_util/enum';
import ConfigContext, { ConfigContextValue } from '../config-provider/ConfigContext';
export declare type SearchEvent = MouseEvent<HTMLElement> | KeyboardEvent<HTMLInputElement>;
export interface SearchProps extends InputProps {
    inputPrefixCls?: string;
    onSearch?: (value: string, event?: SearchEvent) => any;
    enterButton?: boolean | ReactNode;
    buttonProps?: ButtonProps;
}
export default class Search extends Component<SearchProps, any> {
    static displayName: string;
    static get contextType(): typeof ConfigContext;
    static defaultProps: {
        enterButton: boolean;
        size: Size;
    };
    context: ConfigContextValue;
    private input;
    onSearch: (e: SearchEvent) => void;
    focus(): void;
    blur(): void;
    saveInput: (node: Input) => void;
    getPrefixCls(): string;
    getButtonOrIcon(prefixCls?: string): JSX.Element;
    render(): JSX.Element;
}
