import { IIndex, IBehaviour } from "../api";
import { Subscription } from "../connection/Subscription";
/**
 * Configuration for enabling Autocompletion for the text input field.
 *
 * @member {HTMLDivElement} dropdownElement is used as container to render the autocompletion dropdown.
 * Per default the first element with class lto-autocomplete is used.
 * @member {HTMLButtonElement} invokerElement is clicked when an autocomplete suggestion is clicked.
 * @member {number} maxNumberOfResults is used to determine the max elements displayed in the autocomplete dropdown.
 * Default is 5.
 * @member {IIndex} index is used to store and search for autocompletion elements.
 */
interface AutocompleteConfig {
    dropdownElement?: HTMLDivElement;
    invokerElement?: HTMLButtonElement;
    maxNumberOfResults?: number;
    index?: IIndex;
}
/**
 * The autocomplete behaviour adds an autocomplete mechanism
 * for the user input. The possible autocomplete entries
 * need to be added via add method.
 */
export declare class AutocompleteBehaviour extends IBehaviour {
    private readonly index;
    private readonly autocompleteDropdown;
    private readonly maxNumberOfResults;
    constructor(config: AutocompleteConfig, textbox?: HTMLTextAreaElement);
    add(element: string): void;
    clear(): void;
    bind(gateway: Subscription): void;
    unbind(): void;
    private onKeydown;
}
export {};
