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

# Type Alias: ResponseHandlers\<Decls, Resolves>

```ts
type ResponseHandlers<Decls, Resolves> = { readonly [N in ResponseState<Decls>]: ResponseHandler<N extends keyof Resolves ? Resolves[N] & object : ResponseContext["resolves"]> };
```

Defined in: [ssr.ts:66](https://github.com/simshanith/lit-ui-router/blob/4f9e1ea23844bc57088f9af022eec027c059192b/packages/ui-router-server/src/ssr.ts#L66)

A handler for every response state a router declares, keyed by state name:
exactly the names of the rows marked `response: true` for `as const`
routes, any name for an untyped router. `Resolves` types each handler's
resolves by state name; a state it omits reads untyped resolves.

## Type Parameters

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

## Example

```ts
const responses = {
  badge: ({ resolves }) => new Response(resolves.svg, { headers: { 'Content-Type': 'image/svg+xml' } }),
} satisfies ResponseHandlers<(typeof routes)[number], { badge: { svg: string } }>;
```
