import { Action } from "sprotty-protocol/lib/actions";
import { InstanceRegistry } from "../../utils/registry";
import { CommandExecutionContext, SystemCommand, CommandReturn } from "../commands/command";
import { IUIExtension } from "./ui-extension";
/**
 * The registry maintaining UI extensions registered via `TYPES.IUIExtension`.
 */
export declare class UIExtensionRegistry extends InstanceRegistry<IUIExtension> {
    constructor(extensions?: (IUIExtension)[]);
}
/**
 * Action to set the visibility state of the UI extension with the specified `id`.
 */
export interface SetUIExtensionVisibilityAction extends Action {
    kind: typeof SetUIExtensionVisibilityAction.KIND;
    extensionId: string;
    visible: boolean;
    contextElementsId: string[];
}
export declare namespace SetUIExtensionVisibilityAction {
    const KIND = "setUIExtensionVisibility";
    function create(options: {
        extensionId: string;
        visible: boolean;
        contextElementsId?: string[];
    }): SetUIExtensionVisibilityAction;
}
export declare class SetUIExtensionVisibilityCommand extends SystemCommand {
    protected readonly action: SetUIExtensionVisibilityAction;
    static readonly KIND = "setUIExtensionVisibility";
    protected readonly registry: UIExtensionRegistry;
    constructor(action: SetUIExtensionVisibilityAction);
    execute(context: CommandExecutionContext): CommandReturn;
    undo(context: CommandExecutionContext): CommandReturn;
    redo(context: CommandExecutionContext): CommandReturn;
}
//# sourceMappingURL=ui-extension-registry.d.ts.map