import { IContextMenuItemProvider, MenuItem, PopupHoverMouseListener, SButtonImpl, SButtonSchema, SModelElementImpl, SModelRootImpl } from 'sprotty';
import { Action, Point, RequestPopupModelAction, SModelElement, SModelRoot } from 'sprotty-protocol';
import { Range } from 'vscode-languageserver-protocol';
import { CodeActionProvider } from './code-action-provider';
import { EditDiagramLocker } from './edit-diagram-locker';
import { IRootPopupModelProvider } from '../../root-popup-model-provider';
/**
 * A popup-palette based on code actions.
 */
export declare class CodeActionPopupPaletteProvider implements IRootPopupModelProvider {
    codeActionProvider: CodeActionProvider;
    editDiagramLocker: EditDiagramLocker;
    getPopupModel(action: RequestPopupModelAction, rootElement: SModelRoot): Promise<SModelElement | undefined>;
}
export interface PaletteButtonSchema extends SButtonSchema {
    codeActionKind: string;
    range: Range;
}
export declare class PaletteButton extends SButtonImpl {
    codeActionKind: string;
    range: Range;
}
export declare class PaletteMouseListener extends PopupHoverMouseListener {
    codeActionProvider: CodeActionProvider;
    mouseDown(target: SModelElementImpl, event: MouseEvent): (Action | Promise<Action>)[];
    getWorkspaceEditAction(target: PaletteButton): Promise<Action>;
}
/**
 * A command-palette based on code actions.
 */
export declare class CodeActionContextMenuProvider implements IContextMenuItemProvider {
    codeActionProvider: CodeActionProvider;
    editDiagramLocker: EditDiagramLocker;
    getItems(root: Readonly<SModelRootImpl>, lastMousePosition?: Point | undefined): Promise<MenuItem[]>;
}
//# sourceMappingURL=code-action-popup-palette.d.ts.map