> ## Documentation Index
> Fetch the complete documentation index at: https://docs.collab-kit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Utility Methods

> Exported functions from @collab-kit/utils.

```typescript theme={null}
import { defineStores, codes } from '@collab-kit/utils';
```

## defineStores()

Identity function that preserves store schema types for full TypeScript inference. Use it to define your store schemas when initializing the client.

```typescript theme={null}
function defineStores<T extends StoresConfig>(config: T): T;
```

### Usage

```typescript theme={null}
import { defineStores } from '@collab-kit/utils';

const stores = defineStores({
  tasks: {
    title: { type: 'string', required: true },
    completed: { type: 'boolean', default: false },
    assignee: { type: 'string' },
  },
  settings: {
    theme: { type: 'string', required: true, default: 'light' },
    fontSize: { type: 'number', required: true, default: 14 },
  },
});
```

The returned value is the same object you pass in, but TypeScript preserves the exact literal types of your schema. This enables full type inference when calling `client.stores.<name>.set()`, `get()`, etc.

Pass the result to the `CollabKitClient` constructor:

```typescript theme={null}
const client = new CollabKitClient({
  serverUrl: 'https://api.collab-kit.com',
  authToken: '<jwt>',
  stores,
});

// Fully typed: value is { title: string; completed?: boolean; assignee?: string }
await client.stores.tasks.set({
  key: 'task-1',
  value: { title: 'Ship v1' },
});
```

## codes

Mapping of [`ResponseCode`](/types/constants#responsecode) enum values to their HTTP status codes, descriptions, and messages. Useful for interpreting error responses.

```typescript theme={null}
const codes: Record<ResponseCode, {
  description: string;
  code: number;
  message: string;
}>;
```

### Usage

```typescript theme={null}
import { codes, ResponseCode } from '@collab-kit/utils';

const info = codes[ResponseCode.NOT_FOUND];
// { description: 'NOT_FOUND', code: 404, message: 'Not found' }
```
