# UsageWindow

```ts
type UsageWindow = {
  admins: number;
  deletes: number;
  lists: number;
  processes: number;
  reads: number;
  upscales: number;
  videoEncodes: number;
  videoMinutes: number;
  writes: number;
};
```

Defined in: packages/sdk/src/index.ts:1315

## Properties

### admins

```ts
admins: number;
```

Defined in: packages/sdk/src/index.ts:1320

***

### deletes

```ts
deletes: number;
```

Defined in: packages/sdk/src/index.ts:1319

***

### lists

```ts
lists: number;
```

Defined in: packages/sdk/src/index.ts:1318

***

### processes

```ts
processes: number;
```

Defined in: packages/sdk/src/index.ts:1322

***

### reads

```ts
reads: number;
```

Defined in: packages/sdk/src/index.ts:1316

***

### upscales

```ts
upscales: number;
```

Defined in: packages/sdk/src/index.ts:1321

***

### videoEncodes

```ts
videoEncodes: number;
```

Defined in: packages/sdk/src/index.ts:1336

Encode passes behind `videoMinutes`. 0 when nothing was encoded.

***

### videoMinutes

```ts
videoMinutes: number;
```

Defined in: packages/sdk/src/index.ts:1334

Minutes of video actually TRANSCODED in the window — source minutes ×
encode passes, so a 7-rung HLS ladder over a 2-minute clip books 14.

A re-encode of a video already ingested counts AGAIN. That is the point:
an asset count cannot report it, because re-encoding an asset that already
exists creates no new asset.

A stream copy (`video: { passthrough: true }`, or an idempotent cache skip)
books nothing, so a tenant that ran no encoder reads `0` — and that `0` is real.

***

### writes

```ts
writes: number;
```

Defined in: packages/sdk/src/index.ts:1317