import { LinkEditionContext, LinkSuggestion } from '../misc/linkSuggest';
import { ReactElement } from 'react';
export type SearchBoxProps = {
    /**
     * The search box's initial value
     */
    initialValue?: string;
    /**
     * The search box's placeholder (when empty)
     */
    placeholder: string;
    /**
     * Link edition context, required for validate raw entity references on submit
     *
     * @since 18.0.0RC1
     */
    linkEditionCtx: LinkEditionContext | null;
    /**
     * Perform a search
     *
     * @param query - A user query (text)
     *
     * @returns Suggestions matching the provided query
     */
    getSuggestions: (query: string) => Promise<LinkSuggestion[] | false>;
    /**
     * Render a single suggestion
     *
     * @param suggestion -
     *
     * @returns A JSX element
     */
    renderSuggestion: (suggestion: LinkSuggestion) => ReactElement;
    /**
     * Triggered when a result is selected in the list of suggestions
     */
    onSelect: (url: string) => void;
    /**
     * Triggered when a result is submitted by the user
     *
     * e.g. when the user uses the `<Enter>` key on an URL
     */
    onSubmit: (url: string) => void;
};
/**
 * This component provides a search (text) field with a dropdown for the results
 *
 * Raw URLs input is supported, as well as raw entity references.
 *
 * @see SearchBoxProps
 */
export declare const SearchBox: React.FC<SearchBoxProps>;
