import type { Theme, Rectangle } from '../../../treb-base-types/src/index'; import type { AutocompleteExecResult, FunctionDescriptor } from './autocomplete_matcher'; export interface AutocompleteResult { handled: boolean; accept?: boolean; data?: AutocompleteExecResult; value?: string; click?: boolean; type?: FunctionDescriptor['type']; } export type AcceptCallback = (result: AutocompleteResult) => void; export interface AutocompleteOptions { autocomplete_prefer_top?: boolean; tooltip_prefer_top?: boolean; theme?: Theme; container?: HTMLElement; } export declare class Autocomplete { private options; completion_list_visible: boolean; tooltip_visible: boolean; last_completion?: string; private completion_list; private tooltip; private selected_index; private block; private autocomplete_data; private callback?; private active_element?; private DOM; constructor(options?: AutocompleteOptions); Hide(): void; SetBlock(): void; ResetBlock(): void; ListMouseMove(event: MouseEvent): void; ListMouseDown(event: MouseEvent): void; HandleKey(event_type: 'keydown' | 'keyup', event: KeyboardEvent): AutocompleteResult; Show(callback: AcceptCallback, data: AutocompleteExecResult | undefined, position: Rectangle): void; }