@noya-app/noya-multiplayer-react 0.1.71 → 0.1.72

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,8 +1,8 @@
1
1
  import * as _noya_app_state_manager from '@noya-app/state-manager';
2
- import { AIToolDefinition, UserManager, EphemeralUserDataManager, NoyaManager, StateManagerOptions, StateManager, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, ResourceManager, StreamFilter, ActivityEventsManager, MultiplayerPatchMetadata, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
2
+ import { AIToolDefinition, UserManager, SharedConnectionDataManager, NoyaManager, StateManagerOptions, StateManager, NoyaManagerOptions, SyncAdapter, TSchema, AccessType, PolicyAuthContext, LocalStorageSyncOptions, Static, ExtractRequestBody, PublishCallback, ResourceManager, TranscriptionManager, AssetTranscriptionResult, StreamFilter, ActivityEventsManager, 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, Dispatch } from 'react';
5
- import { Asset, ResourceCreate, CreateResourceParametersWithoutAccessibleByFileId, ModifiedResource, ResourceCreateMap, ResourceMap, Resource, MediaItem, OutputTransform, Input } from '@noya-app/noya-schemas';
5
+ import { Asset, ResourceCreate, CreateResourceParametersWithoutAccessibleByFileId, ModifiedResource, Resource, MediaItem, ResourceMap, ResourceCreateMap, OutputTransform, Input } from '@noya-app/noya-schemas';
6
6
  import { Root } from 'react-dom/client';
7
7
  import { MenuItem } from '@noya-app/noya-designsystem';
8
8
  import { ObservableOptions, PathKey, GetAtPath, Observable } from '@noya-app/observable';
@@ -28,7 +28,7 @@ type RenderUserPointer = {
28
28
  };
29
29
  type UserPointersOverlayProps<E extends UserPointerData> = {
30
30
  userManager: UserManager;
31
- ephemeralUserDataManager: EphemeralUserDataManager<E>;
31
+ sharedConnectionDataManager: SharedConnectionDataManager<E>;
32
32
  } & RenderUserPointer;
33
33
  declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement<any> | null;
34
34
 
@@ -38,23 +38,23 @@ type StateInspectorOptions = {
38
38
  anchor?: StateInspectorAnchor;
39
39
  advanced?: boolean;
40
40
  };
41
- declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string>(props: {
42
- noyaManager: NoyaManager<S, M, E, MenuT>;
41
+ declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(props: {
42
+ noyaManager: NoyaManager<S, M, E, MenuT, I>;
43
43
  unstyled?: boolean;
44
44
  } & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement<any> | null;
45
45
 
46
46
  declare function useManagedState<S, M = void>(createInitialState: () => S, options?: StateManagerOptions<S, M>): readonly [S, (...args: M extends {} ? [metadata: M, action: SetStateAction<S>] : [action: SetStateAction<S>]) => void, StateManager<S, M>];
47
47
  declare function useManagedHistory<S, M = void>(stateManager: StateManager<S, M>): _noya_app_state_manager.HistorySnapshot<S, M>;
48
- type UseMultiplayerStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string> = NoyaManagerOptions<S, M> & {
49
- sync?: SyncAdapter<S, M, E, MenuT>;
48
+ type UseMultiplayerStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>> = NoyaManagerOptions<S, M> & {
49
+ sync?: SyncAdapter<S, M, E, MenuT, I>;
50
50
  inspector?: boolean | StateInspectorOptions;
51
51
  };
52
- declare function useBindNoyaManager<S, M extends object = object, E extends object = object, MenuT extends string = string>(noyaManager: NoyaManager<S, M, E, MenuT>, options?: Pick<UseMultiplayerStateOptions<S, M, E, MenuT>, "inspector" | "sync">): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
52
+ declare function useBindNoyaManager<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(noyaManager: NoyaManager<S, M, E, MenuT, I>, options?: Pick<UseMultiplayerStateOptions<S, M, E, MenuT, I>, "inspector" | "sync">): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
53
53
  noyaManager: typeof noyaManager;
54
54
  taskManager: typeof noyaManager.taskManager;
55
55
  connectionEventManager: typeof noyaManager.connectionEventManager;
56
56
  userManager: typeof noyaManager.userManager;
57
- ephemeralUserDataManager: typeof noyaManager.ephemeralUserDataManager;
57
+ sharedConnectionDataManager: typeof noyaManager.sharedConnectionDataManager;
58
58
  multiplayerStateManager: typeof noyaManager.multiplayerStateManager;
59
59
  assetManager: typeof noyaManager.assetManager;
60
60
  aiManager: typeof noyaManager.aiManager;
@@ -76,12 +76,12 @@ declare function useBindNoyaManager<S, M extends object = object, E extends obje
76
76
  userId: string | null;
77
77
  }[];
78
78
  }];
79
- declare function useMultiplayerState<S, M extends object = object, E extends object = object, MenuT extends string = string>(initialState: S | (() => S), options?: UseMultiplayerStateOptions<S, M, E, MenuT>): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
80
- noyaManager: NoyaManager<S, M, E, MenuT>;
79
+ declare function useMultiplayerState<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(initialState: S | (() => S), options?: UseMultiplayerStateOptions<S, M, E, MenuT, I>): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
80
+ noyaManager: NoyaManager<S, M, E, MenuT, I>;
81
81
  taskManager: _noya_app_state_manager.TaskManager;
82
82
  connectionEventManager: _noya_app_state_manager.ConnectionEventManager<S>;
83
83
  userManager: _noya_app_state_manager.UserManager;
84
- ephemeralUserDataManager: _noya_app_state_manager.EphemeralUserDataManager<E>;
84
+ sharedConnectionDataManager: _noya_app_state_manager.SharedConnectionDataManager<E>;
85
85
  multiplayerStateManager: _noya_app_state_manager.MultiplayerStateManager<S, M>;
86
86
  assetManager: _noya_app_state_manager.AssetManager;
87
87
  aiManager: _noya_app_state_manager.AIManager;
@@ -105,14 +105,14 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
105
105
  }];
106
106
 
107
107
  declare function fetchAssetMap(assets: Asset[]): Promise<Record<string, Uint8Array>>;
108
- declare function exportAll(noyaManager: NoyaManager<any, any, any, any>): Promise<Uint8Array>;
108
+ declare function exportAll(noyaManager: NoyaManager<any, any, any, any, any>): Promise<Uint8Array>;
109
109
  declare function encodeAll({ state, schema, assets, assetMap, }: {
110
110
  state: unknown;
111
111
  schema?: TSchema;
112
112
  assets: Asset[];
113
113
  assetMap: Record<string, Uint8Array>;
114
114
  }): Uint8Array;
115
- declare function importAll(buffer: Uint8Array | ArrayBuffer, noyaManager: NoyaManager<any, any, any, any>, { shouldAllowSchemaChange, }?: {
115
+ declare function importAll(buffer: Uint8Array | ArrayBuffer, noyaManager: NoyaManager<any, any, any, any, any>, { shouldAllowSchemaChange, }?: {
116
116
  shouldAllowSchemaChange?: ({ oldSchema, newSchema, }: {
117
117
  oldSchema: TSchema;
118
118
  newSchema: TSchema;
@@ -130,8 +130,8 @@ declare function createStateInspectorRoot(): {
130
130
  root: Root;
131
131
  unmount: () => void;
132
132
  };
133
- declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string>({ noyaManager, disabled, advanced, colorScheme, anchor, }: {
134
- noyaManager: NoyaManager<S, M, E, MenuT>;
133
+ declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>({ noyaManager, disabled, advanced, colorScheme, anchor, }: {
134
+ noyaManager: NoyaManager<S, M, E, MenuT, I>;
135
135
  disabled?: boolean;
136
136
  advanced?: boolean;
137
137
  colorScheme?: ComponentProps<typeof StateInspector>["colorScheme"];
@@ -148,6 +148,7 @@ type AppData<State> = {
148
148
  inspector: boolean | StateInspectorOptions;
149
149
  userId?: string;
150
150
  isDemo: boolean;
151
+ access?: AccessType;
151
152
  };
152
153
  declare function createDefaultAppData<State>(initialState: State): AppData<State>;
153
154
  type GetAppDataOptions = {
@@ -161,18 +162,20 @@ type GetAppDataOptions = {
161
162
  declare function enforceSchema<State>(initialState: State, schema?: TSchema): State;
162
163
  declare function parseAppDataParameter(options?: GetAppDataOptions): AppData<unknown> | null;
163
164
  declare function getAppData<State>(initialState: State | (() => State), schema?: TSchema, options?: GetAppDataOptions): AppData<State>;
164
- declare function getSyncAdapter<S, M extends object = object, E extends object = object, MenuT extends string = string>(params?: {
165
+ declare function getSyncAdapter<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(params?: {
165
166
  multiplayerUrl?: string;
166
167
  offlineStorageKey?: string;
167
168
  debug?: boolean;
168
- }): SyncAdapter<S, M, E, MenuT>;
169
- type UseNoyaStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string> = UseMultiplayerStateOptions<S, M, E, MenuT> & {
169
+ policyAuthContext?: PolicyAuthContext;
170
+ serverScripts?: LocalStorageSyncOptions["serverScripts"];
171
+ }): SyncAdapter<S, M, E, MenuT, I>;
172
+ type UseNoyaStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>> = UseMultiplayerStateOptions<S, M, E, MenuT, I> & {
170
173
  offlineStorageKey?: string;
171
174
  };
172
- type UseNoyaStateResult<S, M extends object = object, E extends object = object, MenuT extends string = string> = [
173
- ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[0],
174
- ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[1],
175
- ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[2] & {
175
+ type UseNoyaStateResult<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>> = [
176
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT, I>>[0],
177
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT, I>>[1],
178
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT, I>>[2] & {
176
179
  theme: AppTheme;
177
180
  viewType: AppViewType;
178
181
  isDemo: boolean;
@@ -187,38 +190,34 @@ type UseNoyaStateResult<S, M extends object = object, E extends object = object,
187
190
  * 2. Pass an initial state and a schema: `useNoyaState(initialState, { schema })`
188
191
  * 3. Pass only a schema, and a conforming initial state is created automatically: `useNoyaState({ schema })`
189
192
  */
190
- declare function useNoyaStateInternal<S, M extends object = object, E extends object = object, MenuT extends string = string, O extends UseNoyaStateOptions<S, M, E, MenuT> = UseNoyaStateOptions<S, M, E, MenuT>>(...args: [
193
+ declare function useNoyaStateInternal<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>, O extends UseNoyaStateOptions<S, M, E, MenuT, I> = UseNoyaStateOptions<S, M, E, MenuT, I>>(...args: [
191
194
  initialState: O["schema"] extends TSchema ? Static<O["schema"]> | (() => Static<O["schema"]>) : S | (() => S),
192
195
  options?: O
193
196
  ] | [options: O & {
194
197
  schema: TSchema;
195
- }]): UseNoyaStateResult<O["schema"] extends TSchema ? Static<O["schema"]> : S, M, E, MenuT>;
198
+ }]): UseNoyaStateResult<O["schema"] extends TSchema ? Static<O["schema"]> : S, M, E, MenuT, I>;
196
199
 
197
200
  declare function resourceToCreateParameters(resource: ResourceCreate): CreateResourceParametersWithoutAccessibleByFileId;
198
- type BuildCreateResourcePayloadParameters = {
201
+ type ResourcePatchRequestBody = ExtractRequestBody<"PATCH /api/resources">;
202
+ type BuildResourcePatchPayloadParameters = {
199
203
  addedResources: ResourceCreate[];
200
204
  modifiedResources: ModifiedResource[];
201
- newResourceMap: ResourceCreateMap;
202
- resourceMap: ResourceMap;
205
+ removedResources: Resource[];
203
206
  };
204
- type BuildCreateResourcePayloadResult = {
205
- payload: CreateResourceParametersWithoutAccessibleByFileId[];
206
- consumedModifiedResourceIds: string[];
207
- };
208
- declare function buildCreateResourcePayload({ addedResources, modifiedResources, newResourceMap, resourceMap, }: BuildCreateResourcePayloadParameters): BuildCreateResourcePayloadResult;
209
- interface NoyaStateProviderProps<S, M extends object, E extends object, MenuT extends string> extends Omit<UseNoyaStateOptions<S, M, E, MenuT>, "schema" | "mergeHistoryEntries"> {
207
+ declare function buildResourcePatchPayload({ addedResources, modifiedResources, removedResources, }: BuildResourcePatchPayloadParameters): ResourcePatchRequestBody;
208
+ interface NoyaStateProviderProps<S, M extends object, E extends object, MenuT extends string, I extends Record<string, any> = Record<string, unknown>> extends Omit<UseNoyaStateOptions<S, M, E, MenuT, I>, "schema" | "mergeHistoryEntries"> {
210
209
  children: React.ReactNode;
211
210
  initialState?: S;
212
211
  fallback?: React.ReactNode;
213
212
  }
214
213
  type AnyNoyaStateContextValue = {
215
- noyaManager: NoyaManager<any, any, any, any>;
214
+ noyaManager: NoyaManager<any, any, any, any, any>;
216
215
  theme: AppTheme;
217
216
  viewType: AppViewType;
218
217
  };
219
218
  declare const AnyNoyaStateContext: React.Context<AnyNoyaStateContextValue | undefined>;
220
219
  declare function useAnyNoyaStateContext(): AnyNoyaStateContextValue;
221
- declare function useAnyNoyaManager(): NoyaManager<any, any, any, any>;
220
+ declare function useAnyNoyaManager(): NoyaManager<any, any, any, any, any>;
222
221
  declare function useColorScheme(): AppTheme;
223
222
  declare function useViewType(): AppViewType;
224
223
  declare function useAssets(): {
@@ -385,13 +384,33 @@ declare function usePipelineManager(): _noya_app_state_manager.PipelineManager;
385
384
  declare function useUserManager(): _noya_app_state_manager.UserManager;
386
385
  declare function useConnectedUsers(): _noya_app_state_manager.MultiplayerUser[];
387
386
  declare function useConnectedUser(userId?: string | null): _noya_app_state_manager.MultiplayerUser | undefined;
388
- declare function useAnyEphemeralUserData(): EphemeralUserDataManager<any>;
389
- declare function useCurrentUserId(): string | undefined;
387
+ declare function useAnySharedConnectionData(): SharedConnectionDataManager<any>;
388
+ declare function useEnqueueInput<I extends Record<string, any> = Record<string, unknown>>(): NoyaManager<any, any, any, any, I>["enqueueInput"];
389
+ declare function useNoyaUser(): _noya_app_state_manager.MultiplayerUser | undefined;
390
+ declare function useNoyaId(): string | undefined;
391
+ declare function useNoyaUserId(): string | undefined;
392
+ declare function useNoyaConnectionId(): string | undefined;
393
+ declare function useNoyaClientId(): string | undefined;
390
394
  declare function useIsProcessing(): boolean;
391
395
  declare function useFileName(): string | undefined;
392
396
  declare function useFilePropertyManager(): _noya_app_state_manager.FilePropertyManager;
393
397
  declare function useSetFileNameState(): readonly [string | undefined, (name: string) => Promise<string>];
394
398
  declare function useResourceManager(): ResourceManager;
399
+ declare function useNoyaTranscriptionManager(): TranscriptionManager;
400
+ type UseNoyaAssetTranscriptionOptions = {
401
+ endpoint?: string;
402
+ apiKey?: string;
403
+ };
404
+ /**
405
+ * Returns a text transcription for the given assetId.
406
+ *
407
+ * - This API is available when running your app on noya.io, not when running it locally.
408
+ * - An asset must first be uploaded via the `useAssetManager().create()` method before
409
+ * it can be transcribed via this API.
410
+ * - The asset must be a valid audio or video file.
411
+ */
412
+ declare function useNoyaAssetTranscription(assetId: string, options?: UseNoyaAssetTranscriptionOptions): AssetTranscriptionResult;
413
+ declare function useNoyaAssetTranscription(assetId?: string, options?: UseNoyaAssetTranscriptionOptions): AssetTranscriptionResult | undefined;
395
414
  declare function resourceToMediaItem(resource: Resource): MediaItem;
396
415
  declare function useResources({ shouldDeleteAssets, }?: {
397
416
  shouldDeleteAssets?: boolean;
@@ -402,15 +421,15 @@ declare const FallbackUntilInitialized: ({ children, fallback, }: {
402
421
  children: React.ReactNode;
403
422
  fallback?: React.ReactNode;
404
423
  }) => React.ReactNode;
405
- declare function createNoyaContext<Schema extends TSchema, M extends object = object, E extends object = object, MenuT extends string = string>({ schema, mergeHistoryEntries, outputTransforms, inputs, safeEval, }: {
424
+ declare function createNoyaContext<Schema extends TSchema, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>({ schema, mergeHistoryEntries, outputTransforms, inputs, safeEval, }: {
406
425
  schema: Schema;
407
426
  mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>["mergeHistoryEntries"];
408
427
  safeEval?: SafeEval;
409
428
  outputTransforms?: CreateParams<OutputTransform>[];
410
429
  inputs?: CreateParams<Input>[];
411
430
  }): {
412
- Context: React.Context<NoyaManager<Static<Schema>, M, E, string> | undefined>;
413
- Provider: ({ children, initialState, ...options }: NoyaStateProviderProps<Static<Schema>, M, E, MenuT>) => React.JSX.Element;
431
+ Context: React.Context<NoyaManager<Static<Schema>, M, E, MenuT, I> | undefined>;
432
+ Provider: ({ children, initialState, ...options }: NoyaStateProviderProps<Static<Schema>, M, E, MenuT, I>) => React.JSX.Element;
414
433
  NoyaContextProvider: ({ children, contextValue, }: {
415
434
  children: React.ReactNode;
416
435
  contextValue: AnyNoyaStateContextValue;
@@ -430,14 +449,14 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
430
449
  <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];
431
450
  };
432
451
  useStateManager: () => MultiplayerStateManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>>;
433
- useEphemeralUserDataManager: () => EphemeralUserDataManager<E>;
452
+ useSharedConnectionDataManager: () => SharedConnectionDataManager<E>;
434
453
  useLeftMenuItems: () => MenuItem<MenuT>[];
435
454
  useSetLeftMenuItems: (leftMenuItems?: MenuItem<MenuT>[]) => void;
436
455
  useRightMenuItems: () => MenuItem<MenuT>[];
437
456
  useSetRightMenuItems: (rightMenuItems?: MenuItem<MenuT>[]) => void;
438
457
  useHandleMenuItem: (callback: (type: MenuT) => void) => void;
439
458
  useOnSelectMenuItemCallback: () => (type: MenuT) => void;
440
- useNoyaManager: () => NoyaManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, E, MenuT>;
459
+ useNoyaManager: () => NoyaManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, E, MenuT, I>;
441
460
  useMenu: (options: {
442
461
  leftMenuItems?: MenuItem<MenuT>[];
443
462
  rightMenuItems?: MenuItem<MenuT>[];
@@ -446,24 +465,25 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
446
465
  };
447
466
 
448
467
  type AnyNoyaSingletonBindings = {
449
- sync?: SyncAdapter<any, any, any, any>;
468
+ sync?: SyncAdapter<any, any, any, any, any>;
450
469
  inspector?: boolean | StateInspectorOptions;
451
470
  theme: AppTheme;
452
471
  viewType: AppViewType;
453
472
  userId?: string;
454
473
  isDemo: boolean;
455
474
  };
456
- type AnyNoyaSingletonOptions<S, M extends object, E extends object, MenuT extends string> = NoyaManagerOptions<S, M> & {
475
+ type AnyNoyaSingletonOptions<S, M extends object, E extends object, MenuT extends string, I extends Record<string, any> = Record<string, unknown>> = NoyaManagerOptions<S, M> & {
457
476
  initialState?: S | (() => S);
458
- sync?: SyncAdapter<S, M, E, MenuT>;
477
+ sync?: SyncAdapter<S, M, E, MenuT, I>;
459
478
  inspector?: boolean | StateInspectorOptions;
460
479
  theme?: AppTheme;
461
480
  viewType?: AppViewType;
462
481
  offlineStorageKey?: string;
463
482
  multiplayerUrl?: string;
483
+ serverScripts?: LocalStorageSyncOptions["serverScripts"];
464
484
  };
465
- declare function initializeNoyaSingleton<S, M extends object, E extends object, MenuT extends string>(options?: AnyNoyaSingletonOptions<S, M, E, MenuT>): void;
466
- declare function getNoyaManagerSingleton(): NoyaManager<any, any, any, any>;
485
+ declare function initializeNoyaSingleton<S, M extends object, E extends object, MenuT extends string, I extends Record<string, any> = Record<string, unknown>>(options?: AnyNoyaSingletonOptions<S, M, E, MenuT, I>): void;
486
+ declare function getNoyaManagerSingleton(): NoyaManager<any, any, any, any, any>;
467
487
  declare function getNoyaSingletonBindings(): AnyNoyaSingletonBindings | undefined;
468
488
  declare function deleteNoyaSingleton(): void;
469
489
 
@@ -507,4 +527,4 @@ declare class WebSocketConnection<State> {
507
527
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
508
528
  }
509
529
 
510
- export { type AnyNoyaSingletonBindings, type AnyNoyaSingletonOptions, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, 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, buildCreateResourcePayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useConnectedUser, useConnectedUsers, useCurrentUserId, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaStateInternal, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useUserManager, useViewType };
530
+ export { type AnyNoyaSingletonBindings, type AnyNoyaSingletonOptions, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, 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, buildResourcePatchPayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyNoyaManager, useAnyNoyaStateContext, useAnySharedConnectionData, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useConnectedUser, useConnectedUsers, useEnqueueInput, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaAssetTranscription, useNoyaClientId, useNoyaConnectionId, useNoyaId, useNoyaStateInternal, useNoyaTranscriptionManager, useNoyaUser, useNoyaUserId, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useUserManager, useViewType };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as _noya_app_state_manager from '@noya-app/state-manager';
2
- import { AIToolDefinition, UserManager, EphemeralUserDataManager, NoyaManager, StateManagerOptions, StateManager, NoyaManagerOptions, SyncAdapter, TSchema, Static, PublishCallback, ResourceManager, StreamFilter, ActivityEventsManager, MultiplayerPatchMetadata, SafeEval, CreateParams, MultiplayerStateManager, ReconnectingWebSocketState, ClientToServerMessage, ServerToClientMessage, MultiplayerStateManagerError } from '@noya-app/state-manager';
2
+ import { AIToolDefinition, UserManager, SharedConnectionDataManager, NoyaManager, StateManagerOptions, StateManager, NoyaManagerOptions, SyncAdapter, TSchema, AccessType, PolicyAuthContext, LocalStorageSyncOptions, Static, ExtractRequestBody, PublishCallback, ResourceManager, TranscriptionManager, AssetTranscriptionResult, StreamFilter, ActivityEventsManager, 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, Dispatch } from 'react';
5
- import { Asset, ResourceCreate, CreateResourceParametersWithoutAccessibleByFileId, ModifiedResource, ResourceCreateMap, ResourceMap, Resource, MediaItem, OutputTransform, Input } from '@noya-app/noya-schemas';
5
+ import { Asset, ResourceCreate, CreateResourceParametersWithoutAccessibleByFileId, ModifiedResource, Resource, MediaItem, ResourceMap, ResourceCreateMap, OutputTransform, Input } from '@noya-app/noya-schemas';
6
6
  import { Root } from 'react-dom/client';
7
7
  import { MenuItem } from '@noya-app/noya-designsystem';
8
8
  import { ObservableOptions, PathKey, GetAtPath, Observable } from '@noya-app/observable';
@@ -28,7 +28,7 @@ type RenderUserPointer = {
28
28
  };
29
29
  type UserPointersOverlayProps<E extends UserPointerData> = {
30
30
  userManager: UserManager;
31
- ephemeralUserDataManager: EphemeralUserDataManager<E>;
31
+ sharedConnectionDataManager: SharedConnectionDataManager<E>;
32
32
  } & RenderUserPointer;
33
33
  declare const UserPointersOverlay: <E extends UserPointerData>(props: UserPointersOverlayProps<E>) => React.ReactElement<any> | null;
34
34
 
@@ -38,23 +38,23 @@ type StateInspectorOptions = {
38
38
  anchor?: StateInspectorAnchor;
39
39
  advanced?: boolean;
40
40
  };
41
- declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string>(props: {
42
- noyaManager: NoyaManager<S, M, E, MenuT>;
41
+ declare const StateInspector: <S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(props: {
42
+ noyaManager: NoyaManager<S, M, E, MenuT, I>;
43
43
  unstyled?: boolean;
44
44
  } & StateInspectorOptions & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">) => React.ReactElement<any> | null;
45
45
 
46
46
  declare function useManagedState<S, M = void>(createInitialState: () => S, options?: StateManagerOptions<S, M>): readonly [S, (...args: M extends {} ? [metadata: M, action: SetStateAction<S>] : [action: SetStateAction<S>]) => void, StateManager<S, M>];
47
47
  declare function useManagedHistory<S, M = void>(stateManager: StateManager<S, M>): _noya_app_state_manager.HistorySnapshot<S, M>;
48
- type UseMultiplayerStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string> = NoyaManagerOptions<S, M> & {
49
- sync?: SyncAdapter<S, M, E, MenuT>;
48
+ type UseMultiplayerStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>> = NoyaManagerOptions<S, M> & {
49
+ sync?: SyncAdapter<S, M, E, MenuT, I>;
50
50
  inspector?: boolean | StateInspectorOptions;
51
51
  };
52
- declare function useBindNoyaManager<S, M extends object = object, E extends object = object, MenuT extends string = string>(noyaManager: NoyaManager<S, M, E, MenuT>, options?: Pick<UseMultiplayerStateOptions<S, M, E, MenuT>, "inspector" | "sync">): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
52
+ declare function useBindNoyaManager<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(noyaManager: NoyaManager<S, M, E, MenuT, I>, options?: Pick<UseMultiplayerStateOptions<S, M, E, MenuT, I>, "inspector" | "sync">): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
53
53
  noyaManager: typeof noyaManager;
54
54
  taskManager: typeof noyaManager.taskManager;
55
55
  connectionEventManager: typeof noyaManager.connectionEventManager;
56
56
  userManager: typeof noyaManager.userManager;
57
- ephemeralUserDataManager: typeof noyaManager.ephemeralUserDataManager;
57
+ sharedConnectionDataManager: typeof noyaManager.sharedConnectionDataManager;
58
58
  multiplayerStateManager: typeof noyaManager.multiplayerStateManager;
59
59
  assetManager: typeof noyaManager.assetManager;
60
60
  aiManager: typeof noyaManager.aiManager;
@@ -76,12 +76,12 @@ declare function useBindNoyaManager<S, M extends object = object, E extends obje
76
76
  userId: string | null;
77
77
  }[];
78
78
  }];
79
- declare function useMultiplayerState<S, M extends object = object, E extends object = object, MenuT extends string = string>(initialState: S | (() => S), options?: UseMultiplayerStateOptions<S, M, E, MenuT>): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
80
- noyaManager: NoyaManager<S, M, E, MenuT>;
79
+ declare function useMultiplayerState<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(initialState: S | (() => S), options?: UseMultiplayerStateOptions<S, M, E, MenuT, I>): readonly [S, (...args: [metadata: Partial<M>, action: S | ((prevState: S) => S)] | [action: S | ((prevState: S) => S)]) => void, {
80
+ noyaManager: NoyaManager<S, M, E, MenuT, I>;
81
81
  taskManager: _noya_app_state_manager.TaskManager;
82
82
  connectionEventManager: _noya_app_state_manager.ConnectionEventManager<S>;
83
83
  userManager: _noya_app_state_manager.UserManager;
84
- ephemeralUserDataManager: _noya_app_state_manager.EphemeralUserDataManager<E>;
84
+ sharedConnectionDataManager: _noya_app_state_manager.SharedConnectionDataManager<E>;
85
85
  multiplayerStateManager: _noya_app_state_manager.MultiplayerStateManager<S, M>;
86
86
  assetManager: _noya_app_state_manager.AssetManager;
87
87
  aiManager: _noya_app_state_manager.AIManager;
@@ -105,14 +105,14 @@ declare function useMultiplayerState<S, M extends object = object, E extends obj
105
105
  }];
106
106
 
107
107
  declare function fetchAssetMap(assets: Asset[]): Promise<Record<string, Uint8Array>>;
108
- declare function exportAll(noyaManager: NoyaManager<any, any, any, any>): Promise<Uint8Array>;
108
+ declare function exportAll(noyaManager: NoyaManager<any, any, any, any, any>): Promise<Uint8Array>;
109
109
  declare function encodeAll({ state, schema, assets, assetMap, }: {
110
110
  state: unknown;
111
111
  schema?: TSchema;
112
112
  assets: Asset[];
113
113
  assetMap: Record<string, Uint8Array>;
114
114
  }): Uint8Array;
115
- declare function importAll(buffer: Uint8Array | ArrayBuffer, noyaManager: NoyaManager<any, any, any, any>, { shouldAllowSchemaChange, }?: {
115
+ declare function importAll(buffer: Uint8Array | ArrayBuffer, noyaManager: NoyaManager<any, any, any, any, any>, { shouldAllowSchemaChange, }?: {
116
116
  shouldAllowSchemaChange?: ({ oldSchema, newSchema, }: {
117
117
  oldSchema: TSchema;
118
118
  newSchema: TSchema;
@@ -130,8 +130,8 @@ declare function createStateInspectorRoot(): {
130
130
  root: Root;
131
131
  unmount: () => void;
132
132
  };
133
- declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string>({ noyaManager, disabled, advanced, colorScheme, anchor, }: {
134
- noyaManager: NoyaManager<S, M, E, MenuT>;
133
+ declare function useStateInspector<S, M extends object, E extends object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>({ noyaManager, disabled, advanced, colorScheme, anchor, }: {
134
+ noyaManager: NoyaManager<S, M, E, MenuT, I>;
135
135
  disabled?: boolean;
136
136
  advanced?: boolean;
137
137
  colorScheme?: ComponentProps<typeof StateInspector>["colorScheme"];
@@ -148,6 +148,7 @@ type AppData<State> = {
148
148
  inspector: boolean | StateInspectorOptions;
149
149
  userId?: string;
150
150
  isDemo: boolean;
151
+ access?: AccessType;
151
152
  };
152
153
  declare function createDefaultAppData<State>(initialState: State): AppData<State>;
153
154
  type GetAppDataOptions = {
@@ -161,18 +162,20 @@ type GetAppDataOptions = {
161
162
  declare function enforceSchema<State>(initialState: State, schema?: TSchema): State;
162
163
  declare function parseAppDataParameter(options?: GetAppDataOptions): AppData<unknown> | null;
163
164
  declare function getAppData<State>(initialState: State | (() => State), schema?: TSchema, options?: GetAppDataOptions): AppData<State>;
164
- declare function getSyncAdapter<S, M extends object = object, E extends object = object, MenuT extends string = string>(params?: {
165
+ declare function getSyncAdapter<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>(params?: {
165
166
  multiplayerUrl?: string;
166
167
  offlineStorageKey?: string;
167
168
  debug?: boolean;
168
- }): SyncAdapter<S, M, E, MenuT>;
169
- type UseNoyaStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string> = UseMultiplayerStateOptions<S, M, E, MenuT> & {
169
+ policyAuthContext?: PolicyAuthContext;
170
+ serverScripts?: LocalStorageSyncOptions["serverScripts"];
171
+ }): SyncAdapter<S, M, E, MenuT, I>;
172
+ type UseNoyaStateOptions<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>> = UseMultiplayerStateOptions<S, M, E, MenuT, I> & {
170
173
  offlineStorageKey?: string;
171
174
  };
172
- type UseNoyaStateResult<S, M extends object = object, E extends object = object, MenuT extends string = string> = [
173
- ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[0],
174
- ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[1],
175
- ReturnType<typeof useBindNoyaManager<S, M, E, MenuT>>[2] & {
175
+ type UseNoyaStateResult<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>> = [
176
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT, I>>[0],
177
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT, I>>[1],
178
+ ReturnType<typeof useBindNoyaManager<S, M, E, MenuT, I>>[2] & {
176
179
  theme: AppTheme;
177
180
  viewType: AppViewType;
178
181
  isDemo: boolean;
@@ -187,38 +190,34 @@ type UseNoyaStateResult<S, M extends object = object, E extends object = object,
187
190
  * 2. Pass an initial state and a schema: `useNoyaState(initialState, { schema })`
188
191
  * 3. Pass only a schema, and a conforming initial state is created automatically: `useNoyaState({ schema })`
189
192
  */
190
- declare function useNoyaStateInternal<S, M extends object = object, E extends object = object, MenuT extends string = string, O extends UseNoyaStateOptions<S, M, E, MenuT> = UseNoyaStateOptions<S, M, E, MenuT>>(...args: [
193
+ declare function useNoyaStateInternal<S, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>, O extends UseNoyaStateOptions<S, M, E, MenuT, I> = UseNoyaStateOptions<S, M, E, MenuT, I>>(...args: [
191
194
  initialState: O["schema"] extends TSchema ? Static<O["schema"]> | (() => Static<O["schema"]>) : S | (() => S),
192
195
  options?: O
193
196
  ] | [options: O & {
194
197
  schema: TSchema;
195
- }]): UseNoyaStateResult<O["schema"] extends TSchema ? Static<O["schema"]> : S, M, E, MenuT>;
198
+ }]): UseNoyaStateResult<O["schema"] extends TSchema ? Static<O["schema"]> : S, M, E, MenuT, I>;
196
199
 
197
200
  declare function resourceToCreateParameters(resource: ResourceCreate): CreateResourceParametersWithoutAccessibleByFileId;
198
- type BuildCreateResourcePayloadParameters = {
201
+ type ResourcePatchRequestBody = ExtractRequestBody<"PATCH /api/resources">;
202
+ type BuildResourcePatchPayloadParameters = {
199
203
  addedResources: ResourceCreate[];
200
204
  modifiedResources: ModifiedResource[];
201
- newResourceMap: ResourceCreateMap;
202
- resourceMap: ResourceMap;
205
+ removedResources: Resource[];
203
206
  };
204
- type BuildCreateResourcePayloadResult = {
205
- payload: CreateResourceParametersWithoutAccessibleByFileId[];
206
- consumedModifiedResourceIds: string[];
207
- };
208
- declare function buildCreateResourcePayload({ addedResources, modifiedResources, newResourceMap, resourceMap, }: BuildCreateResourcePayloadParameters): BuildCreateResourcePayloadResult;
209
- interface NoyaStateProviderProps<S, M extends object, E extends object, MenuT extends string> extends Omit<UseNoyaStateOptions<S, M, E, MenuT>, "schema" | "mergeHistoryEntries"> {
207
+ declare function buildResourcePatchPayload({ addedResources, modifiedResources, removedResources, }: BuildResourcePatchPayloadParameters): ResourcePatchRequestBody;
208
+ interface NoyaStateProviderProps<S, M extends object, E extends object, MenuT extends string, I extends Record<string, any> = Record<string, unknown>> extends Omit<UseNoyaStateOptions<S, M, E, MenuT, I>, "schema" | "mergeHistoryEntries"> {
210
209
  children: React.ReactNode;
211
210
  initialState?: S;
212
211
  fallback?: React.ReactNode;
213
212
  }
214
213
  type AnyNoyaStateContextValue = {
215
- noyaManager: NoyaManager<any, any, any, any>;
214
+ noyaManager: NoyaManager<any, any, any, any, any>;
216
215
  theme: AppTheme;
217
216
  viewType: AppViewType;
218
217
  };
219
218
  declare const AnyNoyaStateContext: React.Context<AnyNoyaStateContextValue | undefined>;
220
219
  declare function useAnyNoyaStateContext(): AnyNoyaStateContextValue;
221
- declare function useAnyNoyaManager(): NoyaManager<any, any, any, any>;
220
+ declare function useAnyNoyaManager(): NoyaManager<any, any, any, any, any>;
222
221
  declare function useColorScheme(): AppTheme;
223
222
  declare function useViewType(): AppViewType;
224
223
  declare function useAssets(): {
@@ -385,13 +384,33 @@ declare function usePipelineManager(): _noya_app_state_manager.PipelineManager;
385
384
  declare function useUserManager(): _noya_app_state_manager.UserManager;
386
385
  declare function useConnectedUsers(): _noya_app_state_manager.MultiplayerUser[];
387
386
  declare function useConnectedUser(userId?: string | null): _noya_app_state_manager.MultiplayerUser | undefined;
388
- declare function useAnyEphemeralUserData(): EphemeralUserDataManager<any>;
389
- declare function useCurrentUserId(): string | undefined;
387
+ declare function useAnySharedConnectionData(): SharedConnectionDataManager<any>;
388
+ declare function useEnqueueInput<I extends Record<string, any> = Record<string, unknown>>(): NoyaManager<any, any, any, any, I>["enqueueInput"];
389
+ declare function useNoyaUser(): _noya_app_state_manager.MultiplayerUser | undefined;
390
+ declare function useNoyaId(): string | undefined;
391
+ declare function useNoyaUserId(): string | undefined;
392
+ declare function useNoyaConnectionId(): string | undefined;
393
+ declare function useNoyaClientId(): string | undefined;
390
394
  declare function useIsProcessing(): boolean;
391
395
  declare function useFileName(): string | undefined;
392
396
  declare function useFilePropertyManager(): _noya_app_state_manager.FilePropertyManager;
393
397
  declare function useSetFileNameState(): readonly [string | undefined, (name: string) => Promise<string>];
394
398
  declare function useResourceManager(): ResourceManager;
399
+ declare function useNoyaTranscriptionManager(): TranscriptionManager;
400
+ type UseNoyaAssetTranscriptionOptions = {
401
+ endpoint?: string;
402
+ apiKey?: string;
403
+ };
404
+ /**
405
+ * Returns a text transcription for the given assetId.
406
+ *
407
+ * - This API is available when running your app on noya.io, not when running it locally.
408
+ * - An asset must first be uploaded via the `useAssetManager().create()` method before
409
+ * it can be transcribed via this API.
410
+ * - The asset must be a valid audio or video file.
411
+ */
412
+ declare function useNoyaAssetTranscription(assetId: string, options?: UseNoyaAssetTranscriptionOptions): AssetTranscriptionResult;
413
+ declare function useNoyaAssetTranscription(assetId?: string, options?: UseNoyaAssetTranscriptionOptions): AssetTranscriptionResult | undefined;
395
414
  declare function resourceToMediaItem(resource: Resource): MediaItem;
396
415
  declare function useResources({ shouldDeleteAssets, }?: {
397
416
  shouldDeleteAssets?: boolean;
@@ -402,15 +421,15 @@ declare const FallbackUntilInitialized: ({ children, fallback, }: {
402
421
  children: React.ReactNode;
403
422
  fallback?: React.ReactNode;
404
423
  }) => React.ReactNode;
405
- declare function createNoyaContext<Schema extends TSchema, M extends object = object, E extends object = object, MenuT extends string = string>({ schema, mergeHistoryEntries, outputTransforms, inputs, safeEval, }: {
424
+ declare function createNoyaContext<Schema extends TSchema, M extends object = object, E extends object = object, MenuT extends string = string, I extends Record<string, any> = Record<string, unknown>>({ schema, mergeHistoryEntries, outputTransforms, inputs, safeEval, }: {
406
425
  schema: Schema;
407
426
  mergeHistoryEntries?: StateManagerOptions<Static<Schema>, M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>["mergeHistoryEntries"];
408
427
  safeEval?: SafeEval;
409
428
  outputTransforms?: CreateParams<OutputTransform>[];
410
429
  inputs?: CreateParams<Input>[];
411
430
  }): {
412
- Context: React.Context<NoyaManager<Static<Schema>, M, E, string> | undefined>;
413
- Provider: ({ children, initialState, ...options }: NoyaStateProviderProps<Static<Schema>, M, E, MenuT>) => React.JSX.Element;
431
+ Context: React.Context<NoyaManager<Static<Schema>, M, E, MenuT, I> | undefined>;
432
+ Provider: ({ children, initialState, ...options }: NoyaStateProviderProps<Static<Schema>, M, E, MenuT, I>) => React.JSX.Element;
414
433
  NoyaContextProvider: ({ children, contextValue, }: {
415
434
  children: React.ReactNode;
416
435
  contextValue: AnyNoyaStateContextValue;
@@ -430,14 +449,14 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
430
449
  <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];
431
450
  };
432
451
  useStateManager: () => MultiplayerStateManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>>;
433
- useEphemeralUserDataManager: () => EphemeralUserDataManager<E>;
452
+ useSharedConnectionDataManager: () => SharedConnectionDataManager<E>;
434
453
  useLeftMenuItems: () => MenuItem<MenuT>[];
435
454
  useSetLeftMenuItems: (leftMenuItems?: MenuItem<MenuT>[]) => void;
436
455
  useRightMenuItems: () => MenuItem<MenuT>[];
437
456
  useSetRightMenuItems: (rightMenuItems?: MenuItem<MenuT>[]) => void;
438
457
  useHandleMenuItem: (callback: (type: MenuT) => void) => void;
439
458
  useOnSelectMenuItemCallback: () => (type: MenuT) => void;
440
- useNoyaManager: () => NoyaManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, E, MenuT>;
459
+ useNoyaManager: () => NoyaManager<Static<Schema>, Partial<M & Pick<MultiplayerPatchMetadata, "name" | "timestamp">>, E, MenuT, I>;
441
460
  useMenu: (options: {
442
461
  leftMenuItems?: MenuItem<MenuT>[];
443
462
  rightMenuItems?: MenuItem<MenuT>[];
@@ -446,24 +465,25 @@ declare function createNoyaContext<Schema extends TSchema, M extends object = ob
446
465
  };
447
466
 
448
467
  type AnyNoyaSingletonBindings = {
449
- sync?: SyncAdapter<any, any, any, any>;
468
+ sync?: SyncAdapter<any, any, any, any, any>;
450
469
  inspector?: boolean | StateInspectorOptions;
451
470
  theme: AppTheme;
452
471
  viewType: AppViewType;
453
472
  userId?: string;
454
473
  isDemo: boolean;
455
474
  };
456
- type AnyNoyaSingletonOptions<S, M extends object, E extends object, MenuT extends string> = NoyaManagerOptions<S, M> & {
475
+ type AnyNoyaSingletonOptions<S, M extends object, E extends object, MenuT extends string, I extends Record<string, any> = Record<string, unknown>> = NoyaManagerOptions<S, M> & {
457
476
  initialState?: S | (() => S);
458
- sync?: SyncAdapter<S, M, E, MenuT>;
477
+ sync?: SyncAdapter<S, M, E, MenuT, I>;
459
478
  inspector?: boolean | StateInspectorOptions;
460
479
  theme?: AppTheme;
461
480
  viewType?: AppViewType;
462
481
  offlineStorageKey?: string;
463
482
  multiplayerUrl?: string;
483
+ serverScripts?: LocalStorageSyncOptions["serverScripts"];
464
484
  };
465
- declare function initializeNoyaSingleton<S, M extends object, E extends object, MenuT extends string>(options?: AnyNoyaSingletonOptions<S, M, E, MenuT>): void;
466
- declare function getNoyaManagerSingleton(): NoyaManager<any, any, any, any>;
485
+ declare function initializeNoyaSingleton<S, M extends object, E extends object, MenuT extends string, I extends Record<string, any> = Record<string, unknown>>(options?: AnyNoyaSingletonOptions<S, M, E, MenuT, I>): void;
486
+ declare function getNoyaManagerSingleton(): NoyaManager<any, any, any, any, any>;
467
487
  declare function getNoyaSingletonBindings(): AnyNoyaSingletonBindings | undefined;
468
488
  declare function deleteNoyaSingleton(): void;
469
489
 
@@ -507,4 +527,4 @@ declare class WebSocketConnection<State> {
507
527
  removeListener(listener: (state: ReconnectingWebSocketState) => void): void;
508
528
  }
509
529
 
510
- export { type AnyNoyaSingletonBindings, type AnyNoyaSingletonOptions, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, 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, buildCreateResourcePayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyEphemeralUserData, useAnyNoyaManager, useAnyNoyaStateContext, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useConnectedUser, useConnectedUsers, useCurrentUserId, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaStateInternal, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useUserManager, useViewType };
530
+ export { type AnyNoyaSingletonBindings, type AnyNoyaSingletonOptions, AnyNoyaStateContext, type AnyNoyaStateContextValue, type AppData, type AppTheme, type AppViewType, 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, buildResourcePatchPayload, createDefaultAppData, createNoyaContext, createStateInspectorRoot, decodeAll, deleteNoyaSingleton, encodeAll, enforceSchema, exportAll, fetchAssetMap, getAppData, getNoyaManagerSingleton, getNoyaSingletonBindings, getSyncAdapter, importAll, initializeNoyaSingleton, parseAppDataParameter, replaceDeep, resourceToCreateParameters, resourceToMediaItem, useAIManager, useActivityEvents, useActivityEventsForManager, useAnyNoyaManager, useAnyNoyaStateContext, useAnySharedConnectionData, useAsset, useAssetManager, useAssets, useBindNoyaManager, useCallableAITools, useColorScheme, useConnectedUser, useConnectedUsers, useEnqueueInput, useFileName, useFilePropertyManager, useIOManager, useInputs, useIsInitialized, useIsProcessing, useManagedHistory, useManagedState, useMultiplayerState, useNoyaAssetTranscription, useNoyaClientId, useNoyaConnectionId, useNoyaId, useNoyaStateInternal, useNoyaTranscriptionManager, useNoyaUser, useNoyaUserId, useObservable, useOutputTransforms, usePipelineManager, usePublish, useRegisterAITool, useResourceManager, useResources, useSecret, useSecretManager, useSecrets, useSetFileNameState, useStateInspector, useUserManager, useViewType };