[thorium-states](README.md) / Exports

# thorium-states

## Table of contents

### Classes

- [\_State](classes/State.md)

### Interfaces

- [IState](interfaces/IState.md)

### Type Aliases

- [MutationListernerId](modules.md#mutationlisternerid)
- [State](modules.md#state)
- [StateMutator](modules.md#statemutator)
- [TProxyState](modules.md#tproxystate)
- [TState](modules.md#tstate)

### Functions

- [getState](modules.md#getstate)
- [listStates](modules.md#liststates)
- [useState](modules.md#usestate)

## Type Aliases

### MutationListernerId

Ƭ **MutationListernerId**: \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\`

Le type `MutationListernerId` est une chaîne de caractères formatée de manière unique
pour représenter l'identifiant d'un gestionnaire de mutations.
## Example
```typescript
const subscriptionId: MutationListernerId = 'xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx';
```

#### Defined in

[index.ts:50](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L50)

___

### State

Ƭ **State**\<`T`\>: [`TState`](modules.md#tstate)\<`T`\> \| [`TProxyState`](modules.md#tproxystate)\<`T`\>

Le type `State<T>` représente un état, qui peut être soit un `TState<T>` complet, soit un `TProxyState<T>` partiel.
Il permet de gérer des états complets ou partiels de manière uniforme.

#### Type parameters

| Name |
| :------ |
| `T` |

#### Defined in

[index.ts:31](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L31)

___

### StateMutator

Ƭ **StateMutator**\<`T`\>: [[`State`](modules.md#state)\<`T`\>, (`value`: `T`) => `T`]

Le type `StateMutator<T>` est un tableau qui représente un mutateur d'état.
Il contient deux éléments :
 - Le premier élément est de type `State<T>` et renvoie la valeur actuelle de l'état.
 - Le deuxième élément est une fonction qui prend une nouvelle valeur de type `T` en paramètre
   et renvoie la nouvelle valeur de l'état, tout en notifiant les abonnés du changement.

#### Type parameters

| Name |
| :------ |
| `T` |

#### Defined in

[index.ts:40](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L40)

___

### TProxyState

Ƭ **TProxyState**\<`T`\>: `Partial`\<typeof `Proxy`\>

Le type `TProxyState<T>` est utilisé lorsque l'état contient un objet ou un tableau,
permettant d'accéder à l'objet ou au tableau directement via un proxy.
Le proxy gère l'accès aux propriétés de l'objet ou du tableau, ainsi qu'à celles du state.
Si la clé n'est pas présente dans l'objet ou le tableau, le proxy vérifie si elle existe dans le state.
Si la clé n'est ni dans l'objet, ni dans le state, le proxy renvoie `undefined`.

#### Type parameters

| Name |
| :------ |
| `T` |

#### Defined in

[index.ts:8](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L8)

___

### TState

Ƭ **TState**\<`T`\>: [`IState`](interfaces/IState.md)\<`T`\> & `T`

Le type `TState<T>` est une combinaison de l'interface `IState<T>` et un type générique `T`.
Il est utilisé pour définir la structure complète d'un état.
## Example
```typescript
const userState: TState<{ name: string; age: number }> = {
  id: 'user123',
  value: { name: 'John', age: 30 },
  mutator: [userState, (newValue) => newValue],
  subscribe: (ref, callback) => 'subscription123',
  unsubscribe: (id) => {},
  delete: () => {},
};
```

#### Type parameters

| Name |
| :------ |
| `T` |

#### Defined in

[index.ts:25](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L25)

## Functions

### getState

▸ **getState**(`stateId`): [`_State`](classes/State.md)\<`any`\>

La fonction `getState` renvoie un état en utilisant son identifiant.

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `stateId` | `string` | L'identifiant de l'état à récupérer. |

#### Returns

[`_State`](classes/State.md)\<`any`\>

L'état correspondant à l'identifiant spécifié.
## Exemple :
```typescript
const retrievedState = getState(counterState[0].id);
console.log(retrievedState?.value);
```

#### Defined in

[index.ts:334](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L334)

___

### listStates

▸ **listStates**(): `void`

La fonction `listStates` affiche la liste des états dans la console sous forme de tableau.

#### Returns

`void`

#### Defined in

[index.ts:320](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L320)

___

### useState

▸ **useState**\<`T`\>(`arg`): [[`TState`](modules.md#tstate)\<`T`\>, (`value`: `T`) => `T`]

/**
 * La fonction `useState` renvoie un mutateur d'état pour un argument donné.
 *

#### Type parameters

| Name |
| :------ |
| `T` |

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `arg` | `T` | Le paramètre `arg` est de type `T`, ce qui signifie qu'il peut être de n'importe quel type spécifié lors * de l'appel de la fonction `useState`. Il représente la valeur initiale de l'état. * |

#### Returns

[[`TState`](modules.md#tstate)\<`T`\>, (`value`: `T`) => `T`]

Un objet StateMutator.
 * ## Exemple :
 * ```typescript
 * let [state , setState] = useState<string>('Hello World');
 * ```

#### Defined in

[index.ts:349](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L349)
