# LibTmux.Workspace.WorkspaceBuilder.PlanAsync

- **Module:** LibTmux.Workspace
- **Package:** LibTmux.Workspace
- **Language:** C#
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-dotnet/blob/cf34b255c896d19a97e7d7fabea58609c916012d/src/LibTmux.Workspace/WorkspaceBuilder.Plan.cs#L27
- **Page:** https://libtmux.org/en/csharp/latest/workspace/reference/libtmux-workspace-workspacebuilder-planasync/

```
LibTmux.Workspace.WorkspaceBuilder.PlanAsync(workspace: WorkspaceFile, options: WorkspacePlanOptions?, cancellationToken: CancellationToken) -> Task<WorkspacePlan>
```

Observes the endpoint and constructs an immutable workspace action plan.

## Parameters

- `workspace` (`WorkspaceFile`): The immutable declaration, resolved explicitly when file-relative paths are needed.
- `options` (`WorkspacePlanOptions?`): The conflict, readiness and cleanup policies.
- `cancellationToken` (`CancellationToken`): Cancels read-only endpoint observation.

## Returns

The actions and observed identity preconditions; no workspace actions are executed.

## Raises

- [`WorkspaceFormatException`](/en/csharp/latest/workspace/reference/libtmux-workspace-workspaceformatexception/): The declaration cannot be applied.
- [`TmuxSessionExistsException`](/en/csharp/latest/reference/libtmux-tmuxsessionexistsexception/): The default policy refuses an existing session.
- [`ArgumentException`](https://learn.microsoft.com/dotnet/api/system.argumentexception): The endpoint has an opaque initializer or the options are invalid.
