/********************************************************************************
 * Copyright (c) 2023-2025 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 { IAutocompleteSuggestionProvider, type AutocompleteSuggestion } from '../../../base/auto-complete/autocomplete-suggestion-provider';
import { GEdge } from '../../../model';
import { SearchAutocompletePalette, SearchAutocompleteSuggestion } from '../../search-palette/search-palette';
export declare namespace EdgeAutocompletePaletteMetadata {
    const ID = "edge-autocomplete-palette";
}
export interface EdgeAutocompleteContext {
    role: 'source' | 'target';
    triggerAction: TriggerEdgeCreationAction;
    sourceId?: string;
    targetId?: string;
}
export type EdgeAutocompletePaletteStages = 'initial' | 'source' | 'target' | 'reloading';
export declare class EdgeAutocompletePalette extends SearchAutocompletePalette implements IActionHandler {
    protected edgeAutocompleteContext?: EdgeAutocompleteContext;
    protected stage: EdgeAutocompletePaletteStages;
    id(): string;
    get searchContext(): string[];
    handle(action: Action): Action | void;
    protected onBeforeShow(containerElement: HTMLElement, root: Readonly<GModelRoot>, ...contextElementIds: string[]): void;
    protected reload(): Promise<void>;
    protected provideSearchSuggestions(root: Readonly<GModelRoot>, input: string): Promise<SearchAutocompleteSuggestion[]>;
    protected executeSuggestion(input: LabeledAction | Action[] | Action): Promise<void>;
    protected autocompleteHide(reason: CloseReason): void;
}
export declare class SetEdgeTargetGridSuggestionProvider implements IAutocompleteSuggestionProvider {
    id: string;
    canHandle(searchContext: string): boolean;
    getSuggestions(root: Readonly<GModelRoot>, text: string, context: EdgeAutocompleteContext): Promise<AutocompleteSuggestion[]>;
    protected isAllowedSource(proxyEdge: GEdge, element: GModelElement | undefined, role: 'source' | 'target'): boolean;
}
//# sourceMappingURL=edge-autocomplete-palette.d.ts.map