---
url: >-
  https://lit-ui-router.dev/api/ui-router-server/fetch/type-aliases/RequiredShell.md
---
[ui-router-server](../../index.md) / [fetch](../index.md) / RequiredShell

# Type Alias: RequiredShell\<Decls>

```ts
type RequiredShell<Decls> = string extends Decls["name"] ? unknown : [PageState<Decls>] extends [never] ? unknown : {
  serveShell: ShellServer;
};
```

Defined in: [fetch.ts:195](https://github.com/simshanith/lit-ui-router/blob/3ab90929a8d23dda96e259d7396a274c5b05398e/packages/ui-router-server/src/fetch.ts#L195)

Makes `serveShell` required when a typed router has a [PageState](PageState.md).
An untyped router can't tell, so construction checks it instead.

## Type Parameters

| Type Parameter | Default type |
| ------ | ------ |
|  `Decls` *extends* [`RouteDeclaration`](../../redirects/interfaces/RouteDeclaration.md) | [`RouteDeclaration`](../../redirects/interfaces/RouteDeclaration.md) |
