import { Action, Command, CommandExecutionContext, CommandResult } from "sprotty/lib";
import { Workspace, WorkspaceEdit } from "@theia/languages/lib/browser";
export declare abstract class AbstractWorkspaceEditCommand extends Command {
    abstract createWorkspaceEdit(context: CommandExecutionContext): WorkspaceEdit;
    abstract readonly workspace: Workspace;
    protected workspaceEdit: WorkspaceEdit | undefined;
    execute(context: CommandExecutionContext): CommandResult;
    undo(context: CommandExecutionContext): CommandResult;
    redo(context: CommandExecutionContext): CommandResult;
}
export declare class WorkspaceEditCommand extends AbstractWorkspaceEditCommand {
    readonly action: WorkspaceEditAction;
    static readonly KIND: string;
    constructor(action: WorkspaceEditAction);
    readonly workspace: Workspace;
    createWorkspaceEdit(context: CommandExecutionContext): WorkspaceEdit;
}
/**
 * This is a client only action, so it does not have to be serializable
 */
export declare class WorkspaceEditAction implements Action {
    readonly workspaceEdit: WorkspaceEdit;
    readonly workspace: Workspace;
    readonly kind: string;
    constructor(workspaceEdit: WorkspaceEdit, workspace: Workspace);
}
//# sourceMappingURL=workspace-edit-command.d.ts.map