/********************************************************************************
 * Copyright (c) 2023-2024 Business Informatics Group (TU Wien) and others.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the Eclipse
 * Public License v. 2.0 are satisfied: GNU General Public License, version 2
 * with the GNU Classpath Exception which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 ********************************************************************************/
import { Action, GModelRoot, IActionDispatcher, LabeledAction } from '@eclipse-glsp/sprotty';
import '../../../css/autocomplete-palette.css';
import { GLSPAbstractUIExtension } from '../ui-extension/ui-extension';
import { AutoCompleteWidget, CloseReason } from './auto-complete-widget';
/**
 * A reusable base implementation for `UIExtensions` that want to provide autocomplete functionality
 * using the {@link AutoCompleteWidget}.
 *
 */
export declare abstract class BaseAutocompletePalette extends GLSPAbstractUIExtension {
    protected readonly autoSuggestionSettings: {
        noSuggestionsMessage: string;
        suggestionsClass: string;
        debounceWaitMs: number;
        showOnFocus: boolean;
    };
    protected root?: Readonly<GModelRoot>;
    protected autocompleteWidget: AutoCompleteWidget;
    protected actionDispatcher: IActionDispatcher;
    containerClass(): string;
    show(root: Readonly<GModelRoot>, ...contextElementIds: string[]): void;
    hide(): void;
    protected initializeContents(containerElement: HTMLElement): void;
    protected abstract retrieveSuggestions(root: Readonly<GModelRoot>, input: string): Promise<LabeledAction[]>;
    protected visibleSuggestionsChanged(root: Readonly<GModelRoot>, labeledActions: LabeledAction[]): Promise<void>;
    protected selectedSuggestionChanged(root: Readonly<GModelRoot>, labeledAction?: LabeledAction): Promise<void>;
    protected autocompleteHide(reason: CloseReason): void;
    protected executeSuggestion(input: LabeledAction | Action[] | Action): void;
}
//# sourceMappingURL=base-autocomplete-palette.d.ts.map