# server.Server.validateLayouts

- **Module:** server
- **Package:** libtmux
- **Language:** TypeScript
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-ts/blob/f8ca14551254f81800faedc8bee9151565044ef1/packages/libtmux/src/server.ts#L1109
- **Page:** https://libtmux.org/en/ts/latest/reference/server-server-validatelayouts/

```
validateLayouts(
  layouts: readonly {
    readonly layout: string;
    readonly panes: number;
  }[],
  options?: CommandOptions,
): Promise<void>
```

Check every planned window layout before setup scripts or mutations.

Names accept unique abbreviations. Only version-sensitive layouts query the
daemon; a cold endpoint uses the selected client. Checksums, bounded tree
structure and pane counts are checked locally; tmux owns geometry and pruning.
Custom layouts are limited to 8192 characters and 256 classic groups.
JSON layouts require tmux 3.8-rc2 and permit at most 200 nested objects.

## Examples

```ts
await server.validateLayouts([
  { layout: "even-h", panes: 2 },
  { layout: "tiled", panes: 1 },
]);
```

## Parameters

- `layouts` (`readonly { readonly layout: string; readonly panes: number }[]`)
- `options?` (`CommandOptions`)

## Raises

- [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError): when a layout, pane count or version reply is invalid.
- [`TmuxCommandError`](/en/ts/latest/reference/errors-tmuxcommanderror/): when the daemon or client version cannot be read.
- [`TmuxTransportError`](/en/ts/latest/reference/errors-tmuxtransporterror/): when validation is cancelled or a version probe fails.
