/********************************************************************************
 * Copyright (c) 2023 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, GModelElement, GModelRoot, LabeledAction } from '@eclipse-glsp/sprotty';
import { BaseAutocompletePalette } from '../../../base/auto-complete/base-autocomplete-palette';
import { AutocompleteSuggestion, IAutocompleteSuggestionProvider } from '../../../base/auto-complete/autocomplete-suggestion-providers';
import { GEdge } from '../../../model';
export declare class RevealNamedElementAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
    retrieveSuggestions(root: Readonly<GModelRoot>, text: string): Promise<AutocompleteSuggestion[]>;
    protected getActions(nameable: GModelElement): Action[];
}
export declare class RevealNodesWithoutNameAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
    retrieveSuggestions(root: Readonly<GModelRoot>, text: string): Promise<AutocompleteSuggestion[]>;
    protected getActions(nameable: GModelElement): Action[];
}
export declare class RevealEdgeElementAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
    retrieveSuggestions(root: Readonly<GModelRoot>, text: string): Promise<AutocompleteSuggestion[]>;
    protected getActions(edge: GEdge): Action[];
    protected getEdgeLabel(root: Readonly<GModelRoot>, edge: GEdge): string;
}
export declare class SearchAutocompletePalette extends BaseAutocompletePalette {
    static readonly ID = "search-autocomplete-palette";
    protected cachedSuggestions: AutocompleteSuggestion[];
    id(): string;
    protected initializeContents(containerElement: HTMLElement): void;
    protected getSuggestionProviders(root: Readonly<GModelRoot>, input: string): IAutocompleteSuggestionProvider[];
    protected retrieveSuggestions(root: Readonly<GModelRoot>, input: string): Promise<LabeledAction[]>;
    protected visibleSuggestionsChanged(root: Readonly<GModelRoot>, labeledActions: LabeledAction[]): Promise<void>;
    protected selectedSuggestionChanged(root: Readonly<GModelRoot>, labeledAction?: LabeledAction | undefined): Promise<void>;
    show(root: Readonly<GModelRoot>, ...contextElementIds: string[]): void;
    hide(): void;
    protected applyCSS(elements: GModelElement[], cssClass: string): Promise<void>;
    protected deleteCSS(elements: GModelElement[], cssClass: string): Promise<void>;
    protected deleteAllCSS(root: Readonly<GModelRoot>, cssClass: string): Promise<void>;
    protected getSuggestionsFromLabeledActions(labeledActions: LabeledAction[]): AutocompleteSuggestion[];
    protected getHiddenSuggestionsFromLabeledActions(labeledActions: LabeledAction[]): AutocompleteSuggestion[];
    protected getHiddenElements(root: Readonly<GModelRoot>, suggestions: AutocompleteSuggestion[]): GModelElement[];
}
//# sourceMappingURL=search-palette.d.ts.map