/********************************************************************************
 * 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, IActionHandler, LabeledAction, TriggerEdgeCreationAction } from '@eclipse-glsp/sprotty';
import { CloseReason } from '../../../base/auto-complete/auto-complete-widget';
import { AutocompleteSuggestion, IAutocompleteSuggestionProvider } from '../../../base/auto-complete/autocomplete-suggestion-providers';
import { GEdge } from '../../../model';
import { SearchAutocompletePalette } from '../search/search-palette';
import { EdgeAutocompleteContext } from './edge-autocomplete-context';
export declare namespace EdgeAutocompletePaletteMetadata {
    const ID = "edge-autocomplete-palette";
}
export declare class EdgeAutocompletePalette extends SearchAutocompletePalette implements IActionHandler {
    protected context?: EdgeAutocompleteContext;
    protected readonly targetSuggestionProvider: PossibleEdgeTargetAutocompleteSuggestionProvider;
    id(): string;
    handle(action: Action): Action | void;
    protected onBeforeShow(containerElement: HTMLElement, root: Readonly<GModelRoot>, ...contextElementIds: string[]): void;
    protected getSuggestionProviders(root: Readonly<GModelRoot>, input: string): IAutocompleteSuggestionProvider[];
    protected reload(): void;
    protected executeSuggestion(input: LabeledAction | Action[] | Action): void;
    protected autocompleteHide(reason: CloseReason): void;
}
export declare class PossibleEdgeTargetAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
    protected proxyEdge?: GEdge;
    protected context?: EdgeAutocompleteContext;
    setContext(triggerAction: TriggerEdgeCreationAction, edgeAutocompleteContext: EdgeAutocompleteContext): void;
    isAllowedSource(element: GModelElement | undefined, role: 'source' | 'target'): boolean;
    retrieveSuggestions(root: Readonly<GModelRoot>, text: string): Promise<AutocompleteSuggestion[]>;
}
//# sourceMappingURL=edge-autocomplete-palette.d.ts.map