@casual-simulation/aux-runtime 3.7.0 → 3.7.1-alpha.17809973136

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-runtime",
3
- "version": "3.7.0",
3
+ "version": "3.7.1-alpha.17809973136",
4
4
  "description": "Runtime for AUX projects",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -32,8 +32,8 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@casual-simulation/aux-common": "^3.7.0",
36
- "@casual-simulation/aux-records": "^3.7.0",
35
+ "@casual-simulation/aux-common": "^3.7.1-alpha.17809973136",
36
+ "@casual-simulation/aux-records": "^3.7.1-alpha.17809973136",
37
37
  "@casual-simulation/crypto": "^3.5.0",
38
38
  "@casual-simulation/engine262": "0.0.1-4de2170374e22761996e46eb1362f4496ee57f8f",
39
39
  "@casual-simulation/error-stack-parser": "^2.0.7",
@@ -83,5 +83,5 @@
83
83
  "**/*.d.ts",
84
84
  "**/*.def"
85
85
  ],
86
- "gitHead": "d4436ee3adb292c986779e358d1987405424b3be"
86
+ "gitHead": "354e44de04bd26e9f898a4e893b704f4fe6d02e8"
87
87
  }
@@ -1,8 +1,8 @@
1
1
  import type { AuxGlobalContext } from './AuxGlobalContext';
2
2
  import { DEBUG_STRING } from './AuxGlobalContext';
3
3
  import type { BotTags, Bot, ShowChatOptions, BotAction, BotsState, CameraType, BarcodeFormat, PortalType, ShowInputOptions, LocalFormAnimationAction, ShareOptions, Easing, BotAnchorPoint, RuntimeBot, BotSpace, EaseType, RegisterPrefixOptions, OpenCircleWipeOptions, SuperShoutAction, ShowToastAction, ShowJoinCodeAction, RequestFullscreenAction, ExitFullscreenAction, ShowHtmlAction, HideHtmlAction, SetClipboardAction, FocusOnBotAction, ShowChatBarAction, EnableARAction, EnableVRAction, DownloadAction, ShowUploadAuxFileAction, OpenQRCodeScannerAction, ShowQRCodeAction, OpenBarcodeScannerAction, ShowBarcodeAction, LoadServerAction, UnloadServerAction, ReplaceDragBotAction, ShowInputForTagAction, GoToDimensionAction, GoToURLAction, OpenURLAction, OpenConsoleAction, RejectAction, FocusOnOptions, SnapTarget, AddDropSnapTargetsAction, RecordingOptions, Recording, SyntheticVoice, EnablePOVAction, EnableCustomDraggingAction, SetAppOutputAction, PartialBotsState, ParsedBotLink, ConvertGeolocationToWhat3WordsOptions, BeginAudioRecordingAction, MediaPermssionOptions, ImageClassifierOptions, ClassifyImagesOptions, ClassifyImagesResult, AddDropGridTargetsAction, InstUpdate, StartFormAnimationOptions, StopFormAnimationOptions, FormAnimationData, WakeLockConfiguration, EnableXROptions, ShowConfirmOptions, StoredAux, Geolocation, OpenPhotoCameraOptions, Photo, Point2D, RecordLoomOptions, LoomVideo, LoomVideoEmbedMetadata, InstallAuxFileMode, LoadServerConfigAction, InstConfig, UnloadServerConfigAction, Point3D, MapLayer, DynamicListener } from '@casual-simulation/aux-common/bots';
4
- import type { AIChatOptions, AIGenerateSkyboxOptions, AIGenerateImageOptions, JoinRoomActionOptions, RoomOptions, RoomTrackOptions, SetRoomTrackOptions, RoomRemoteOptions, DataRecordOptions, RecordActionOptions, ListDataOptions, AISloydGenerateModelOptions, ListWebhooksOptions, ListNotificationsOptions, SendNotificationOptions, GrantEntitlementsRequest, GrantEntitlementsResult, InstallPackageResult } from './RecordsEvents';
5
- import type { RemoteAction, AvailablePermissions, Entitlement, VersionNumber } from '@casual-simulation/aux-common';
4
+ import type { AIChatOptions, AIGenerateSkyboxOptions, AIGenerateImageOptions, JoinRoomActionOptions, RoomOptions, RoomTrackOptions, SetRoomTrackOptions, RoomRemoteOptions, DataRecordOptions, RecordActionOptions, ListDataOptions, AISloydGenerateModelOptions, ListWebhooksOptions, ListNotificationsOptions, SendNotificationOptions, GrantEntitlementsRequest, GrantEntitlementsResult, InstallPackageResult, ListPermissionsRequest } from './RecordsEvents';
5
+ import type { RemoteAction, AvailablePermissions, Entitlement, VersionNumber, GenericResult, SimpleError } from '@casual-simulation/aux-common';
6
6
  import '@casual-simulation/aux-common/polyfill/Array.first.polyfill';
7
7
  import '@casual-simulation/aux-common/polyfill/Array.last.polyfill';
8
8
  import { isAsymmetricKeypair, isAsymmetricEncrypted, isEncrypted } from '@casual-simulation/crypto';
@@ -11,7 +11,7 @@ import '@casual-simulation/aux-common/BlobPolyfill';
11
11
  import type { AuxDevice } from './AuxDevice';
12
12
  import type { AuxVersion } from './AuxVersion';
13
13
  import { Vector3, Vector2, Quaternion, Rotation } from '@casual-simulation/aux-common/math';
14
- import type { AIChatMessage, GrantResourcePermissionResult, ListStudiosResult, ListSubscriptionsResult, NotificationRecord, PushNotificationPayload, RevokePermissionResult, SendNotificationResult, SubscribeToNotificationResult, UnsubscribeToNotificationResult, WebhookRecord, CreatePublicRecordKeyResult, GetDataResult, RecordDataResult, RecordFileFailure, EraseDataResult, EraseFileResult, ListDataResult, AddCountResult, GetCountResult, GrantMarkerPermissionResult, GrantRoleResult, RevokeRoleResult, PackageRecord, ListInstalledPackagesResult } from '@casual-simulation/aux-records';
14
+ import type { AIChatMessage, CreateRecordResult, GrantResourcePermissionResult, ListStudiosResult, ListRecordsResult, ListSubscriptionsResult, NotificationRecord, PushNotificationPayload, RevokePermissionResult, ListPermissionsResult, SendNotificationResult, SubscribeToNotificationResult, UnsubscribeToNotificationResult, WebhookRecord, CreatePublicRecordKeyResult, GetDataResult, RecordDataResult, RecordFileFailure, EraseDataResult, EraseFileResult, ListDataResult, AddCountResult, GetCountResult, GrantMarkerPermissionResult, GrantRoleResult, RevokeRoleResult, PackageRecord, ListInstalledPackagesResult, ListInstsResult } from '@casual-simulation/aux-records';
15
15
  import { DateTime } from 'luxon';
16
16
  import * as hooks from 'preact/hooks';
17
17
  import { render, createRef, createContext } from 'preact';
@@ -28,6 +28,7 @@ import type { SharedDocument } from '@casual-simulation/aux-common/documents/Sha
28
28
  import type { CreateRealtimeSessionTokenRequest } from '@casual-simulation/aux-records/AIOpenAIRealtimeInterface';
29
29
  import type { PackageRecordVersion, PackageRecordVersionKey, PackageRecordVersionKeySpecifier, RecordPackageVersionResult } from '@casual-simulation/aux-records/packages/version';
30
30
  import type { EraseDocumentResult, SearchCollectionSchema, SearchDocument, SearchRecord, SearchRecordOutput, StoreDocumentResult } from '@casual-simulation/aux-records/search';
31
+ import type { DatabaseRecordOutput, DatabaseStatement, QueryResult } from '@casual-simulation/aux-records/database';
31
32
  /**
32
33
  * Defines an interface for a function that provides HTML VDOM capabilities to bots.
33
34
  */
@@ -260,11 +261,11 @@ export interface RecordPackageVersionApiRequest {
260
261
  */
261
262
  export interface RecordSearchCollectionApiRequest {
262
263
  /**
263
- * The name of the record that the package version should be recorded to.
264
+ * The name of the record that the collection should be recorded to.
264
265
  */
265
266
  recordName: string;
266
267
  /**
267
- * The address that the package version should be recorded to.
268
+ * The address that the collection should be recorded to.
268
269
  */
269
270
  address: string;
270
271
  /**
@@ -272,7 +273,7 @@ export interface RecordSearchCollectionApiRequest {
272
273
  */
273
274
  schema: SearchCollectionSchema;
274
275
  /**
275
- * The markers that should be applied to the package version.
276
+ * The markers that should be applied to the collection.
276
277
  */
277
278
  markers?: string[];
278
279
  }
@@ -287,6 +288,26 @@ export interface RecordSearchDocumentApiRequest {
287
288
  address: string;
288
289
  document: SearchDocument;
289
290
  }
291
+ /**
292
+ * Defines an interface that represents a request for {@link recordDatabase}.
293
+ *
294
+ * @dochash types/records/database
295
+ * @docname RecordDatabaseRequest
296
+ */
297
+ export interface RecordDatabaseApiRequest {
298
+ /**
299
+ * The name of the record that the database should be recorded to.
300
+ */
301
+ recordName: string;
302
+ /**
303
+ * The address that the database should be recorded to.
304
+ */
305
+ address: string;
306
+ /**
307
+ * The markers that should be applied to the database.
308
+ */
309
+ markers?: string[];
310
+ }
290
311
  /**
291
312
  * Defines a set of options for {@link animateTag-byTag}.
292
313
  *
@@ -1997,6 +2018,158 @@ export interface UploadedFile {
1997
2018
  */
1998
2019
  data: string | ArrayBuffer;
1999
2020
  }
2021
+ /**
2022
+ * Defines the result of an API query.
2023
+ *
2024
+ * @dochash types/records/database
2025
+ * @docname QueryResult
2026
+ */
2027
+ export interface ApiQueryResult {
2028
+ /**
2029
+ * The rows that were returned from the query.
2030
+ */
2031
+ rows: Record<string, any>[];
2032
+ /**
2033
+ * The number of rows that were modified by the query.
2034
+ */
2035
+ affectedRowCount: number;
2036
+ /**
2037
+ * The ID of the last row that was inserted by the query.
2038
+ */
2039
+ lastInsertId?: number | string;
2040
+ }
2041
+ /**
2042
+ * Defines the result of a batch query.
2043
+ *
2044
+ * @dochash types/records/database
2045
+ * @docname BatchResult
2046
+ */
2047
+ export interface BatchResult {
2048
+ /**
2049
+ * The results of the individual statements.
2050
+ */
2051
+ results: ApiQueryResult[];
2052
+ }
2053
+ /**
2054
+ * Represents a connection to a database record.
2055
+ *
2056
+ * @dochash types/records/database
2057
+ * @docname Database
2058
+ *
2059
+ * @example Get a database connection.
2060
+ * const database = os.getDatabase('myRecord', 'myDatabase');
2061
+ */
2062
+ export declare class ApiDatabase {
2063
+ private _recordName;
2064
+ private _address;
2065
+ private _options;
2066
+ private _context;
2067
+ constructor(recordName: string, address: string, options: RecordActionOptions, context: AuxGlobalContext);
2068
+ /**
2069
+ * Constructs a database statement from the given [template string literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals).
2070
+ *
2071
+ * Once constructed, the returned statement can be used with `run()` or `batch()`.
2072
+ *
2073
+ * @param templates The string templates.
2074
+ * @param params The parameters to interpolate into the templates.
2075
+ * @returns A database statement.
2076
+ *
2077
+ * @example Create a database statement from a SQL query
2078
+ * const statement = database.sql`SELECT * FROM items`;
2079
+ *
2080
+ * @example Use a parameter in a database statement
2081
+ * const itemId = 'abc';
2082
+ * const statement = database.sql`SELECT * FROM items WHERE id = ${itemId}`;
2083
+ */
2084
+ sql(templates: TemplateStringsArray, ...params: unknown[]): DatabaseStatement;
2085
+ /**
2086
+ * Creates a new database statement from the given SQL and parameters.
2087
+ * @param sql The SQL query string.
2088
+ * @param params The parameters to include in the query.
2089
+ * @returns A new database statement.
2090
+ */
2091
+ statement(sql: string, ...params: unknown[]): DatabaseStatement;
2092
+ /**
2093
+ * Runs the given readonly query against the database.
2094
+ * This method requires queries to be read-only. This means that queries can only select data, they cannot insert, update, or delete data.
2095
+ *
2096
+ * Supports [template string literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) for parameterized queries.
2097
+ *
2098
+ * **Warning:** To avoid [SQL Injection attacks](https://en.wikipedia.org/wiki/SQL_injection), always use template literals with expressions. Never use the `+` operator to concatenate strings containing SQL code.
2099
+ *
2100
+ * @param templates The string templates.
2101
+ * @param params The parameters that should be used.
2102
+ * @returns A promise that resolves when the query has completed.
2103
+ *
2104
+ * @example Select all items from a table
2105
+ * const result = await database.query`SELECT * FROM items`;
2106
+ *
2107
+ * @example Use a parameter in a query
2108
+ * const itemId = 'abc';
2109
+ * const result = await database.query`SELECT * FROM items WHERE id = ${itemId}`;
2110
+ */
2111
+ query(templates: TemplateStringsArray, ...params: unknown[]): Promise<GenericResult<ApiQueryResult, SimpleError>>;
2112
+ /**
2113
+ * Runs the given SQL on the database and returns the result.
2114
+ * This method supports read-write queries. This means that queries can be used to select, insert, update, and delete data.
2115
+ *
2116
+ * Supports [template string literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) for parameterized queries.
2117
+ *
2118
+ * **Warning:** To avoid [SQL Injection attacks](https://en.wikipedia.org/wiki/SQL_injection), always use template literals with expressions. Never use the `+` operator to concatenate strings containing SQL code.
2119
+ *
2120
+ * @param templates The string templates.
2121
+ * @param params The parameters that should be used.
2122
+ * @returns A promise that resolves when the SQL has completed.
2123
+ *
2124
+ * @example Insert a new item into a table
2125
+ * const name = "New Item";
2126
+ * const value = 100;
2127
+ * const result = await database.execute`INSERT INTO items (name, value) VALUES (${name}, ${value})`;
2128
+ *
2129
+ */
2130
+ execute(templates: TemplateStringsArray, ...params: unknown[]): Promise<GenericResult<ApiQueryResult, SimpleError>>;
2131
+ /**
2132
+ * Runs the given statements in a single transaction. Transactions can be used to group multiple statements together.
2133
+ * If one statement fails, then none of the statements will have any effect.
2134
+ *
2135
+ * @param func The function that should be used to build the statements.
2136
+ * @param readonly Whether the statements are read-only. If true, then the statements cannot modify data.
2137
+ *
2138
+ * @example Run multiple select queries at once
2139
+ * const results = await database.batch([
2140
+ * database.sql`SELECT * FROM items WHERE id = 'abc'`,
2141
+ * database.sql`SELECT * FROM items WHERE id = 'def'`,
2142
+ * database.sql`SELECT * FROM items WHERE id = 'ghi'`,
2143
+ * ]);
2144
+ *
2145
+ * @example Insert multiple items at once
2146
+ * const results = await database.batch([
2147
+ * database.sql`INSERT INTO items (name, value) VALUES ('Item 1', 100)`,
2148
+ * database.sql`INSERT INTO items (name, value) VALUES ('Item 2', 200)`,
2149
+ * database.sql`INSERT INTO items (name, value) VALUES ('Item 3', 300)`,
2150
+ * ], false);
2151
+ */
2152
+ batch(statements: DatabaseStatement[], readonly?: boolean): Promise<GenericResult<BatchResult, SimpleError>>;
2153
+ /**
2154
+ * Runs the given database statement.
2155
+ *
2156
+ * @param statement The statement to run.
2157
+ * @param readonly Whether the statement is read-only. If true, then the statement cannot modify data.
2158
+ */
2159
+ run(statement: DatabaseStatement, readonly?: boolean): Promise<GenericResult<ApiQueryResult, SimpleError>>;
2160
+ /**
2161
+ * Gets an interface to the database that returns unmodified query results.
2162
+ */
2163
+ get raw(): {
2164
+ sql: any;
2165
+ query: (templates: TemplateStringsArray, ...params: unknown[]) => Promise<GenericResult<QueryResult[], SimpleError>>;
2166
+ execute: (templates: TemplateStringsArray, ...params: unknown[]) => Promise<GenericResult<QueryResult[], SimpleError>>;
2167
+ batch: (statements: DatabaseStatement[], readonly?: boolean) => Promise<GenericResult<QueryResult[], SimpleError>>;
2168
+ run: (statement: DatabaseStatement, readonly?: boolean) => Promise<GenericResult<QueryResult[], SimpleError>>;
2169
+ };
2170
+ private _mapResult;
2171
+ private _run;
2172
+ }
2000
2173
  /**
2001
2174
  * Creates a library that includes the default functions and APIs.
2002
2175
  * @param context The global context that should be used.
@@ -2491,10 +2664,12 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
2491
2664
  reportInst: () => Promise<void>;
2492
2665
  requestAuthBot: () => Promise<Bot>;
2493
2666
  requestAuthBotInBackground: () => Promise<Bot>;
2667
+ createRecord: (recordName: string, studioId?: string) => Promise<CreateRecordResult>;
2494
2668
  getPublicRecordKey: (name: string) => Promise<CreatePublicRecordKeyResult>;
2495
2669
  getSubjectlessPublicRecordKey: (name: string) => Promise<CreatePublicRecordKeyResult>;
2496
2670
  grantPermission: (recordName: string, permission: AvailablePermissions, options?: RecordActionOptions) => Promise<GrantMarkerPermissionResult | GrantResourcePermissionResult>;
2497
2671
  revokePermission: (recordName: string, permissionId: string, options?: RecordActionOptions) => Promise<RevokePermissionResult>;
2672
+ listPermissions: (request: ListPermissionsRequest) => Promise<ListPermissionsResult>;
2498
2673
  grantInstAdminPermission: (recordName: string, options?: RecordActionOptions) => Promise<GrantRoleResult>;
2499
2674
  grantUserRole: (recordName: string, role: string, userId: string, expireTimeMs?: number, options?: RecordActionOptions) => Promise<GrantRoleResult>;
2500
2675
  revokeUserRole: (recordName: string, role: string, userId: string, options?: RecordActionOptions) => Promise<RevokeRoleResult>;
@@ -2509,6 +2684,8 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
2509
2684
  listDataByMarker: (recordKeyOrName: string, marker: string, startingAddress?: string, options?: ListDataOptions) => Promise<ListDataResult>;
2510
2685
  eraseData: (recordKeyOrName: string, address: string, endpoint?: string) => Promise<EraseDataResult>;
2511
2686
  eraseManualApprovalData: (recordKeyOrName: string, address: string, endpoint?: string) => Promise<EraseDataResult>;
2687
+ listInsts: (recordName: string, startingInst?: string | null, endpoint?: string | null) => Promise<ListInstsResult>;
2688
+ listInstsByMarker: (recordName: string, marker: string, startingInst?: string | null, options?: RecordActionOptions) => Promise<ListInstsResult>;
2512
2689
  recordWebhook: (recordName: string, webhook: WebhookRecord, options?: RecordActionOptions) => Promise<CrudRecordItemResult>;
2513
2690
  runWebhook: (recordName: string, address: string, input: any, options?: RecordActionOptions) => Promise<HandleWebhookResult>;
2514
2691
  getWebhook: (recordName: string, address: string, options?: RecordActionOptions) => Promise<CrudGetItemResult<WebhookRecord>>;
@@ -2560,12 +2737,18 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
2560
2737
  listInstalledPackages: (options?: RecordActionOptions) => Promise<ListInstalledPackagesResult>;
2561
2738
  recordSearchCollection: (request: RecordSearchCollectionApiRequest, options?: RecordActionOptions) => Promise<CrudRecordItemResult>;
2562
2739
  getSearchCollection: (recordName: string, address: string, options?: RecordActionOptions) => Promise<CrudGetItemResult<SearchRecordOutput>>;
2563
- eraseSearchCollection: (recordName: string, address: string, options?: RecordActionOptions) => Promise<CrudRecordItemResult>;
2564
- listSearchCollections: (recordName: string, startingAddress?: string, options?: ListDataOptions) => Promise<CrudRecordItemResult>;
2740
+ eraseSearchCollection: (recordName: string, address: string, options?: RecordActionOptions) => Promise<CrudEraseItemResult>;
2741
+ listSearchCollections: (recordName: string, startingAddress?: string, options?: ListDataOptions) => Promise<CrudListItemsResult<SearchRecord>>;
2565
2742
  listSearchCollectionsByMarker: (recordName: string, marker: string, startingAddress?: string, options?: ListDataOptions) => Promise<CrudListItemsResult<SearchRecord>>;
2566
2743
  recordSearchDocument: (request: RecordSearchDocumentApiRequest, options?: RecordActionOptions) => Promise<StoreDocumentResult>;
2567
2744
  eraseSearchDocument: (recordName: string, address: string, documentId: string, options?: RecordActionOptions) => Promise<EraseDocumentResult>;
2745
+ recordDatabase: (request: RecordSearchCollectionApiRequest, options?: RecordActionOptions) => Promise<CrudRecordItemResult>;
2746
+ getDatabase: (recordName: string, address: string, options?: RecordActionOptions) => ApiDatabase;
2747
+ eraseDatabase: (recordName: string, address: string, options?: RecordActionOptions) => Promise<CrudRecordItemResult>;
2748
+ listDatabases: (recordName: string, startingAddress?: string, options?: ListDataOptions) => Promise<CrudListItemsResult<DatabaseRecordOutput>>;
2749
+ listDatabasesByMarker: (recordName: string, marker: string, startingAddress?: string, options?: ListDataOptions) => Promise<CrudListItemsResult<DatabaseRecordOutput>>;
2568
2750
  listUserStudios: (endpoint?: string) => Promise<ListStudiosResult>;
2751
+ listStudioRecords: (studioId: string, endpoint?: string) => Promise<ListRecordsResult>;
2569
2752
  getRecordsEndpoint: () => Promise<string>;
2570
2753
  convertGeolocationToWhat3Words: (location: ConvertGeolocationToWhat3WordsOptions) => Promise<string>;
2571
2754
  raycastFromCamera: (portal: "grid" | "miniGrid" | "map" | "miniMap", viewportCoordinates: Vector2) => Promise<RaycastResult>;
@@ -2588,6 +2771,13 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
2588
2771
  detachDebugger: (debug: DebuggerInterface) => Promise<void>;
2589
2772
  addMapLayer: (portal: "map" | "miniMap", layer: MapLayer) => Promise<string>;
2590
2773
  removeMapLayer: (layerId: string) => Promise<void>;
2774
+ addBotMapLayer: (bot: Bot | string, overlay: {
2775
+ overlayType?: "geojson";
2776
+ type?: "geojson";
2777
+ data: any;
2778
+ overlayId?: string;
2779
+ }) => Promise<string>;
2780
+ removeBotMapLayer: (bot: Bot | string, overlayId: string) => Promise<void>;
2591
2781
  remotes: () => Promise<string[]>;
2592
2782
  listInstUpdates: () => Promise<InstUpdate[]>;
2593
2783
  getInstStateFromUpdates: (updates: InstUpdate[]) => Promise<BotsState>;
@@ -2600,6 +2790,12 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
2600
2790
  getSharedDocument: {
2601
2791
  (name: string): Promise<SharedDocument>;
2602
2792
  (recordName: string | null, inst: string, name: string): Promise<SharedDocument>;
2793
+ (name: string, options: {
2794
+ markers?: string[];
2795
+ }): Promise<SharedDocument>;
2796
+ (recordName: string | null, inst: string, name: string, options: {
2797
+ markers?: string[];
2798
+ }): Promise<SharedDocument>;
2603
2799
  };
2604
2800
  getLocalDocument: (name: string) => Promise<SharedDocument>;
2605
2801
  getMemoryDocument: () => Promise<SharedDocument>;