> For the complete documentation index, see [llms.txt](https://docs.hello-lisa.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hello-lisa.com/developers/widgets/customisations/type-definitions.md).

# Type definitions

This article describes the type definitions used by LiSA Library for the Handlebars.js templates' input objects.

According to your custom sections config (see Configuration options ), if provided, or the default sections config, LiSA Library creates an array of Section objects and passes it to the Handlebars.js template:

```
interface LibraryInputObject {
  sections: Section[];
}
```

### Input object type definitions

Below you'll find the type definitions for all objects used by LiSA Library.

#### Asset

```javascript
interface Asset {
  orientation: 'landscape' | 'portrait';
  type: 'image' | 'video';
  url: string;
}
```

#### Section

```javascript
interface Section {
  items: Show[];
  title?: string;
  variations: string[];
}
```

#### Show

```
interface Show {
  asset?: Asset;
  date?: string;
  hosts?: UserShortProfile[];
  id: string;
  description?: string;
  preview?: Asset;
  state: ShowState;
  tag?: string;
  title?: string;
  variations?: string[];
}
```

#### ShowState

```
enum ShowState {
  LIVE = "live",
  POST_SHOW = "postShow",
  PRE_SHOW = "preShow",
  REPLAY = "replay"
}
```

#### UserShortProfile

```
interface UserShortProfile {
  active?: boolean;
  avatar?: string;
  id: string;
  displayName: string;
  username: string;
}
```
