import { HTMLTemplateResult, PropertyValues } from "lit";
import { ObjectRecord } from "../../helpers/types/advancedTypes";
export type TypeaheadCallback = (text: string, context: Context) => Promise | Value[];
export type TypeaheadTextConverter = (model: any) => string;
declare const TypeaheadComponent_base: import("../../helpers/types/mixins").Component & {
tagName: string;
};
/**
* @description
* An internal typeahead component
*
* @event oe-typeahead-selected
*/
export declare class TypeaheadComponent extends TypeaheadComponent_base {
static readonly selectedEventName = "oe-typeahead-selected";
static styles: import("lit").CSSResult;
textConverter: TypeaheadTextConverter;
search: TypeaheadCallback;
maxItems: number;
recentlyUsedCount: number;
private typeaheadResults;
private focusedIndex;
private readonly tagInput;
private readonly recentlyUsed;
updated(change: PropertyValues): void;
focus(): void;
reset(): void;
/**
* Fetches new search results from the "search" callback
* If a searchTerm is not provided, a DOM query will be performed to get the
* typeahead text input value.
*/
private handleSearchInvalidation;
private handleInput;
private handleKeyDown;
private handleKeyUp;
private handleFocusUp;
private handleFocusDown;
private handleFocusStart;
private handleFocusEnd;
private handleFocusSelection;
private handleDecision;
private addToRecentlyUsed;
clearRecentlyUsed(): void;
private resultTemplate;
render(): HTMLTemplateResult;
}
declare global {
interface HTMLElementTagNameMap {
"oe-typeahead": TypeaheadComponent;
}
}
export {};