@noya-app/noya-multiplayer-react 0.1.62 → 0.1.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as _noya_app_state_manager from '@noya-app/state-manager';
2
- import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManager, StateManagerOptions, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
2
+ import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManager, StateManagerOptions, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, MultiplayerPatchMetadata, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
3
3
  export * from '@noya-app/state-manager';
4
4
  import React, { SetStateAction, ComponentProps } from 'react';
5
5
  import * as _noya_app_noya_schemas from '@noya-app/noya-schemas';
6
- import { OutputTransform, Input } from '@noya-app/noya-schemas';
6
+ import { Asset, OutputTransform, Input } from '@noya-app/noya-schemas';
7
7
  import { GetAtPath, ObservableOptions, PathKey, Observable } from '@noya-app/observable';
8
8
  import { MenuItem } from '@noya-app/noya-designsystem';
9
9
 
@@ -30,7 +30,7 @@ type UserPointersOverlayProps<E extends UserPointerData> = {
30
30
  connectedUsersManager: ConnectedUsersManager;
31
31
  ephemeralUserDataManager: EphemeralUserDataManager<E>;
32
32
  } & RenderUserPointer;
33
- declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement | null;
33
+ declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement<any> | null;
34
34
 
35
35
  type StateInspectorAnchor = "left" | "right" | "bottom left" | "bottom right";
36
36
  type StateInspectorOptions = {
@@ -40,7 +40,7 @@ type StateInspectorOptions = {
40
40
  declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string>(props: {
41
41
  noyaManager: NoyaManager<S, M, E, MenuT>;
42
42
  unstyled?: boolean;
43
- } & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement | null;
43
+ } & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement<any> | null;
44
44
 
45
45
  declare function useSyncStateManager<S, M>(stateManager: StateManager<S, M>): S;
46
46
  declare function useSyncStateManager<S, M, P extends string>(stateManager: StateManager<S, M>, path: P): GetAtPath<S, P>;
@@ -65,9 +65,37 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
65
65
  menuItemsManager: _noya_app_state_manager.MenuManager<MenuT>;
66
66
  createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
67
67
  deleteAsset: (id: string) => Promise<void>;
68
- assets: _noya_app_noya_schemas.Asset[];
68
+ assets: {
69
+ contentType?: string | undefined;
70
+ id: string;
71
+ url: string;
72
+ createdAt: string;
73
+ size: number;
74
+ }[];
69
75
  }];
70
76
 
77
+ declare function fetchAssetMap(assets: Asset[]): Promise<Record<string, Uint8Array>>;
78
+ declare function exportAll(noyaManager: NoyaManager<any, any, any, any>): Promise<Uint8Array>;
79
+ declare function encodeAll({ state, schema, assets, assetMap, }: {
80
+ state: unknown;
81
+ schema?: TSchema;
82
+ assets: Asset[];
83
+ assetMap: Record<string, Uint8Array>;
84
+ }): Uint8Array;
85
+ declare function importAll(buffer: Uint8Array | ArrayBuffer, noyaManager: NoyaManager<any, any, any, any>, { shouldAllowSchemaChange, }?: {
86
+ shouldAllowSchemaChange?: ({ oldSchema, newSchema, }: {
87
+ oldSchema: TSchema;
88
+ newSchema: TSchema;
89
+ }) => boolean;
90
+ }): Promise<void>;
91
+ declare function decodeAll(buffer: Uint8Array | ArrayBuffer): {
92
+ state: unknown;
93
+ schema?: TSchema;
94
+ assets: Asset[];
95
+ assetMap: Record<string, Uint8Array>;
96
+ };
97
+ declare function replaceDeep<T>(obj: T, replacementMap: Record<string, string>): T;
98
+
71
99
  declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string>({ noyaManager, disabled, colorScheme, anchor, }: {
72
100
  noyaManager: NoyaManager<S, M, E, MenuT>;
73
101
  disabled: boolean;
@@ -136,8 +164,20 @@ declare function useAnyNoyaStateContext(): AnyNoyaStateContextValue;
136
164
  declare function useAnyNoyaManager(): NoyaManager<any, any, any, any>;
137
165
  declare function useColorScheme(): AppTheme;
138
166
  declare function useViewType(): AppViewType;
139
- declare function useAssets(): _noya_app_noya_schemas.Asset[];
140
- declare function useAsset(id: string | undefined): _noya_app_noya_schemas.Asset | undefined;
167
+ declare function useAssets(): {
168
+ contentType?: string | undefined;
169
+ id: string;
170
+ url: string;
171
+ createdAt: string;
172
+ size: number;
173
+ }[];
174
+ declare function useAsset(id: string | undefined): {
175
+ contentType?: string | undefined;
176
+ id: string;
177
+ url: string;
178
+ createdAt: string;
179
+ size: number;
180
+ } | undefined;
141
181
  declare function useAssetManager(): {
142
182
  create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
143
183
  delete: (id: string) => Promise<void>;
@@ -157,11 +197,6 @@ declare function useInputs(): ({
157
197
  description: string | null;
158
198
  } | {
159
199
  id: string;
160
- kind: "data";
161
- name: string;
162
- required: boolean;
163
- stableId: string;
164
- description: string | null;
165
200
  schema: {
166
201
  default?: string | undefined;
167
202
  type: "string";
@@ -249,6 +284,11 @@ declare function useInputs(): ({
249
284
  };
250
285
  _kind: "Object";
251
286
  } | null;
287
+ kind: "data";
288
+ name: string;
289
+ required: boolean;
290
+ stableId: string;
291
+ description: string | null;
252
292
  } | {
253
293
  authProvider?: "github" | "figma" | null | undefined;
254
294
  authScope?: string | null | undefined;
@@ -264,7 +304,7 @@ declare function useOutputTransforms(): ({
264
304
  id: string;
265
305
  kind: "script";
266
306
  stableId: string;
267
- location: "state" | "url";
307
+ location: "url" | "state";
268
308
  order: number;
269
309
  } | {
270
310
  value: string;
@@ -288,7 +328,7 @@ declare const FallbackUntilInitialized: ({ children, fallback, }: {
288
328
  }) => React.ReactNode;
289
329
  declare function createNoyaContext<Schema extends TSchema, M extends object = object, E extends object = object, MenuT extends string = string>({ schema, mergeHistoryEntries, outputTransforms, inputs, safeEval, }: {
290
330
  schema: Schema;
291
- mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M>["mergeHistoryEntries"];
331
+ mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>["mergeHistoryEntries"];
292
332
  safeEval?: SafeEval;
293
333
  outputTransforms?: CreateParams<OutputTransform>[];
294
334
  inputs?: CreateParams<Input>[];
@@ -301,15 +341,15 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
301
341
  <P extends PathKey[] | string>(path: P): GetAtPath<Static<Schema>, P>;
302
342
  };
303
343
  useSetValue: {
304
- (): (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void;
305
- <P extends PathKey[] | string>(path: P): (...args: [metadata: M, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void;
344
+ (): (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void;
345
+ <P extends PathKey[] | string>(path: P): (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void;
306
346
  };
307
347
  useValueState: {
308
- (): [Static<Schema>, (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
309
- <A>(selector: (value: Static<Schema>) => A, options?: ObservableOptions): [A, (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
310
- <P extends PathKey[] | string>(path?: P): [GetAtPath<Static<Schema>, P>, (...args: [metadata: M, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void];
348
+ (): [Static<Schema>, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
349
+ <A>(selector: (value: Static<Schema>) => A, options?: ObservableOptions): [A, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
350
+ <P extends PathKey[] | string>(path?: P): [GetAtPath<Static<Schema>, P>, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void];
311
351
  };
312
- useStateManager: () => MultiplayerStateManager<Static<Schema>, M>;
352
+ useStateManager: () => MultiplayerStateManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>>;
313
353
  useEphemeralUserDataManager: () => EphemeralUserDataManager<E>;
314
354
  useLeftMenuItems: () => MenuItem<MenuT>[];
315
355
  useSetLeftMenuItems: (leftMenuItems?: MenuItem<MenuT>[]) => void;
@@ -317,7 +357,7 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
317
357
  useSetRightMenuItems: (rightMenuItems?: MenuItem<MenuT>[]) => void;
318
358
  useHandleMenuItem: (callback: (type: MenuT) => void) => void;
319
359
  useOnSelectMenuItemCallback: () => (type: MenuT) => void;
320
- useNoyaManager: () => NoyaManager<Static<Schema>, M, E, MenuT>;
360
+ useNoyaManager: () => NoyaManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, E, MenuT>;
321
361
  useMenu: (options: {
322
362
  leftMenuItems?: MenuItem<MenuT>[];
323
363
  rightMenuItems?: MenuItem<MenuT>[];
@@ -365,4 +405,4 @@ declare class WebSocketConnection<State> {
365
405
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
366
406
  }
367
407
 
368
- export { AnyEphemeralUserDataManagerContext, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type NoyaStateProviderProps, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
408
+ export { AnyEphemeralUserDataManagerContext, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type NoyaStateProviderProps, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, decodeAll, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, importAll, parseAppDataParameter, replaceDeep, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as _noya_app_state_manager from '@noya-app/state-manager';
2
- import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManager, StateManagerOptions, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
2
+ import { AIToolDefinition, ConnectedUsersManager, EphemeralUserDataManager, NoyaManager, StateManager, StateManagerOptions, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, MultiplayerPatchMetadata, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
3
3
  export * from '@noya-app/state-manager';
4
4
  import React, { SetStateAction, ComponentProps } from 'react';
5
5
  import * as _noya_app_noya_schemas from '@noya-app/noya-schemas';
6
- import { OutputTransform, Input } from '@noya-app/noya-schemas';
6
+ import { Asset, OutputTransform, Input } from '@noya-app/noya-schemas';
7
7
  import { GetAtPath, ObservableOptions, PathKey, Observable } from '@noya-app/observable';
8
8
  import { MenuItem } from '@noya-app/noya-designsystem';
9
9
 
@@ -30,7 +30,7 @@ type UserPointersOverlayProps<E extends UserPointerData> = {
30
30
  connectedUsersManager: ConnectedUsersManager;
31
31
  ephemeralUserDataManager: EphemeralUserDataManager<E>;
32
32
  } & RenderUserPointer;
33
- declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement | null;
33
+ declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement<any> | null;
34
34
 
35
35
  type StateInspectorAnchor = "left" | "right" | "bottom left" | "bottom right";
36
36
  type StateInspectorOptions = {
@@ -40,7 +40,7 @@ type StateInspectorOptions = {
40
40
  declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string>(props: {
41
41
  noyaManager: NoyaManager<S, M, E, MenuT>;
42
42
  unstyled?: boolean;
43
- } & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement | null;
43
+ } & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement<any> | null;
44
44
 
45
45
  declare function useSyncStateManager<S, M>(stateManager: StateManager<S, M>): S;
46
46
  declare function useSyncStateManager<S, M, P extends string>(stateManager: StateManager<S, M>, path: P): GetAtPath<S, P>;
@@ -65,9 +65,37 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
65
65
  menuItemsManager: _noya_app_state_manager.MenuManager<MenuT>;
66
66
  createAsset: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
67
67
  deleteAsset: (id: string) => Promise<void>;
68
- assets: _noya_app_noya_schemas.Asset[];
68
+ assets: {
69
+ contentType?: string | undefined;
70
+ id: string;
71
+ url: string;
72
+ createdAt: string;
73
+ size: number;
74
+ }[];
69
75
  }];
70
76
 
77
+ declare function fetchAssetMap(assets: Asset[]): Promise<Record<string, Uint8Array>>;
78
+ declare function exportAll(noyaManager: NoyaManager<any, any, any, any>): Promise<Uint8Array>;
79
+ declare function encodeAll({ state, schema, assets, assetMap, }: {
80
+ state: unknown;
81
+ schema?: TSchema;
82
+ assets: Asset[];
83
+ assetMap: Record<string, Uint8Array>;
84
+ }): Uint8Array;
85
+ declare function importAll(buffer: Uint8Array | ArrayBuffer, noyaManager: NoyaManager<any, any, any, any>, { shouldAllowSchemaChange, }?: {
86
+ shouldAllowSchemaChange?: ({ oldSchema, newSchema, }: {
87
+ oldSchema: TSchema;
88
+ newSchema: TSchema;
89
+ }) => boolean;
90
+ }): Promise<void>;
91
+ declare function decodeAll(buffer: Uint8Array | ArrayBuffer): {
92
+ state: unknown;
93
+ schema?: TSchema;
94
+ assets: Asset[];
95
+ assetMap: Record<string, Uint8Array>;
96
+ };
97
+ declare function replaceDeep<T>(obj: T, replacementMap: Record<string, string>): T;
98
+
71
99
  declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string>({ noyaManager, disabled, colorScheme, anchor, }: {
72
100
  noyaManager: NoyaManager<S, M, E, MenuT>;
73
101
  disabled: boolean;
@@ -136,8 +164,20 @@ declare function useAnyNoyaStateContext(): AnyNoyaStateContextValue;
136
164
  declare function useAnyNoyaManager(): NoyaManager<any, any, any, any>;
137
165
  declare function useColorScheme(): AppTheme;
138
166
  declare function useViewType(): AppViewType;
139
- declare function useAssets(): _noya_app_noya_schemas.Asset[];
140
- declare function useAsset(id: string | undefined): _noya_app_noya_schemas.Asset | undefined;
167
+ declare function useAssets(): {
168
+ contentType?: string | undefined;
169
+ id: string;
170
+ url: string;
171
+ createdAt: string;
172
+ size: number;
173
+ }[];
174
+ declare function useAsset(id: string | undefined): {
175
+ contentType?: string | undefined;
176
+ id: string;
177
+ url: string;
178
+ createdAt: string;
179
+ size: number;
180
+ } | undefined;
141
181
  declare function useAssetManager(): {
142
182
  create: (options: _noya_app_state_manager.CreateAssetOptions | Uint8Array | File | Blob) => Promise<_noya_app_noya_schemas.Asset>;
143
183
  delete: (id: string) => Promise<void>;
@@ -157,11 +197,6 @@ declare function useInputs(): ({
157
197
  description: string | null;
158
198
  } | {
159
199
  id: string;
160
- kind: "data";
161
- name: string;
162
- required: boolean;
163
- stableId: string;
164
- description: string | null;
165
200
  schema: {
166
201
  default?: string | undefined;
167
202
  type: "string";
@@ -249,6 +284,11 @@ declare function useInputs(): ({
249
284
  };
250
285
  _kind: "Object";
251
286
  } | null;
287
+ kind: "data";
288
+ name: string;
289
+ required: boolean;
290
+ stableId: string;
291
+ description: string | null;
252
292
  } | {
253
293
  authProvider?: "github" | "figma" | null | undefined;
254
294
  authScope?: string | null | undefined;
@@ -264,7 +304,7 @@ declare function useOutputTransforms(): ({
264
304
  id: string;
265
305
  kind: "script";
266
306
  stableId: string;
267
- location: "state" | "url";
307
+ location: "url" | "state";
268
308
  order: number;
269
309
  } | {
270
310
  value: string;
@@ -288,7 +328,7 @@ declare const FallbackUntilInitialized: ({ children, fallback, }: {
288
328
  }) => React.ReactNode;
289
329
  declare function createNoyaContext<Schema extends TSchema, M extends object = object, E extends object = object, MenuT extends string = string>({ schema, mergeHistoryEntries, outputTransforms, inputs, safeEval, }: {
290
330
  schema: Schema;
291
- mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M>["mergeHistoryEntries"];
331
+ mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>["mergeHistoryEntries"];
292
332
  safeEval?: SafeEval;
293
333
  outputTransforms?: CreateParams<OutputTransform>[];
294
334
  inputs?: CreateParams<Input>[];
@@ -301,15 +341,15 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
301
341
  <P extends PathKey[] | string>(path: P): GetAtPath<Static<Schema>, P>;
302
342
  };
303
343
  useSetValue: {
304
- (): (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void;
305
- <P extends PathKey[] | string>(path: P): (...args: [metadata: M, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void;
344
+ (): (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void;
345
+ <P extends PathKey[] | string>(path: P): (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void;
306
346
  };
307
347
  useValueState: {
308
- (): [Static<Schema>, (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
309
- <A>(selector: (value: Static<Schema>) => A, options?: ObservableOptions): [A, (...args: [metadata: M, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
310
- <P extends PathKey[] | string>(path?: P): [GetAtPath<Static<Schema>, P>, (...args: [metadata: M, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void];
348
+ (): [Static<Schema>, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
349
+ <A>(selector: (value: Static<Schema>) => A, options?: ObservableOptions): [A, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<Static<Schema>>] | [value: SetStateAction<Static<Schema>>]) => void];
350
+ <P extends PathKey[] | string>(path?: P): [GetAtPath<Static<Schema>, P>, (...args: [metadata: Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, value: SetStateAction<GetAtPath<Static<Schema>, P>>] | [value: SetStateAction<GetAtPath<Static<Schema>, P>>]) => void];
311
351
  };
312
- useStateManager: () => MultiplayerStateManager<Static<Schema>, M>;
352
+ useStateManager: () => MultiplayerStateManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>>;
313
353
  useEphemeralUserDataManager: () => EphemeralUserDataManager<E>;
314
354
  useLeftMenuItems: () => MenuItem<MenuT>[];
315
355
  useSetLeftMenuItems: (leftMenuItems?: MenuItem<MenuT>[]) => void;
@@ -317,7 +357,7 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
317
357
  useSetRightMenuItems: (rightMenuItems?: MenuItem<MenuT>[]) => void;
318
358
  useHandleMenuItem: (callback: (type: MenuT) => void) => void;
319
359
  useOnSelectMenuItemCallback: () => (type: MenuT) => void;
320
- useNoyaManager: () => NoyaManager<Static<Schema>, M, E, MenuT>;
360
+ useNoyaManager: () => NoyaManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, E, MenuT>;
321
361
  useMenu: (options: {
322
362
  leftMenuItems?: MenuItem<MenuT>[];
323
363
  rightMenuItems?: MenuItem<MenuT>[];
@@ -365,4 +405,4 @@ declare class WebSocketConnection<State> {
365
405
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
366
406
  }
367
407
 
368
- export { AnyEphemeralUserDataManagerContext, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type NoyaStateProviderProps, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, enforceSchema, getAppData, parseAppDataParameter, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };
408
+ export { AnyEphemeralUserDataManagerContext, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, ConnectedUsersContext, type ConnectionEvent, type ConnectionOptions, FallbackUntilInitialized, type GetAppDataOptions, type NoyaStateProviderProps, type RenderUserPointer, type RenderUserPointerProps, StateInspector, type StateInspectorAnchor, type StateInspectorOptions, type UseMultiplayerStateOptions, type UseNoyaStateOptions, type UseNoyaStateResult, type UserPointerData, UserPointersOverlay, type UserPointersOverlayProps, WebSocketConnection, createDefaultAppData, createNoyaContext, decodeAll, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, importAll, parseAppDataParameter, replaceDeep, useAIManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useCallableAITools, useColorScheme, useConnectedUsersManager, useCurrentUserId, useIOManager, useInputs, useIsInitialized, useManagedHistory, useManagedState, useMultiplayerState, useNoyaState, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useSecret, useSecretManager, useSecrets, useStateInspector, useSyncStateManager, useViewType };