{
	"id": 0,
	"name": "Convergence JavaScript Client API Documentation",
	"kind": 0,
	"flags": {},
	"children": [
		{
			"id": 9161,
			"name": "Activities",
			"kind": 1,
			"kindString": "Module",
			"flags": {
				"isExported": true
			},
			"originalName": "/Users/michael/development/convergence/client/convergence-client-javascript/src/main/activity/index.ts",
			"comment": {
				"shortText": "For any real-time collaboration application, connected users must have some\ncontext about their current collaboration state.  This goes beyond just\ndata synchronization, typically involving communicating user intentions\n(such as highlighting a sentence before deleting it) and availability\n(who can I collaborate with?).",
				"text": "Great real-time apps go the extra mile to prevent conflicts. That's what\nthis API is all about.\n"
			},
			"children": [
				{
					"id": 8872,
					"name": "Activity",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[Activity]] class represents a activity that the users of a\ncollaboration are participating in together. The activity allows\ndeveloper to indicate what user are doing within a collaborative\napplication. The activity has a set of participants that indicate\nwhich users are part of that activity. Each [[ActivityParticipant]]\ncan share state which indicates what they are doing within the\n[[Activity]]."
					},
					"children": [
						{
							"id": 9021,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9022,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9023,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9024,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 8934,
							"name": "clearState",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8935,
									"name": "clearState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Clears all local state from this [[Activity]]. This will fire a single\n\"state_cleared\" event for other joined participants to listen for."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 564,
									"character": 19
								}
							]
						},
						{
							"id": 8911,
							"name": "createdTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8912,
									"name": "createdTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the time this [[Activity]] was created.",
										"returns": "\n  The [[Activity]] created time.\n"
									},
									"type": {
										"type": "reference",
										"name": "Date"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 329,
									"character": 20
								}
							]
						},
						{
							"id": 9046,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9047,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 8909,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8910,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the id of this [[Activity]], which is unique within\nits user defined type.",
										"returns": "\n  The [[Activity]] id.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 319,
									"character": 11
								}
							]
						},
						{
							"id": 8913,
							"name": "isEphemeral",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8914,
									"name": "isEphemeral",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if this [[Activity]] is ephemeral.  If so,\nit will be deleted when the last participant leaves.",
										"returns": "\n  True if the [[Activity]] is ephemeral, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 340,
									"character": 20
								}
							]
						},
						{
							"id": 8919,
							"name": "isJoined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8920,
									"name": "isJoined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the [[Activity]] is still joined.",
										"returns": "\n  True if the [[Activity]] is joined, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 382,
									"character": 17
								}
							]
						},
						{
							"id": 8917,
							"name": "leave",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8918,
									"name": "leave",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Causes the local session to leave the [[Activity]]. All other participants\nof this activity will be notified that this session has left. The state\nassociated with this session will be removed from eh [[Activity]]. After\ncalling leave, the [[Activity]] object becomes non-functional. The local\nuser can rejoin the activity from the [[ActivityService]] but will\nreceive a new [[Activity]] object."
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 356,
									"character": 14
								}
							]
						},
						{
							"id": 9042,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9043,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9044,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9045,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 9025,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9026,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9027,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9028,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 9029,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9030,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9031,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9032,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 8936,
							"name": "participant",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8937,
									"name": "participant",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets an [[ActivityParticipant]] by their sessionId.",
										"returns": "\n  The [[ActivityParticipant]] corresponding to the supplied id, or\n  undefined if no such participant exists.\n"
									},
									"parameters": [
										{
											"id": 8938,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The sessionId of the participant to get."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 9057,
										"name": "ActivityParticipant"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 602,
									"character": 20
								}
							]
						},
						{
							"id": 8939,
							"name": "participants",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8940,
									"name": "participants",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets all participants presently joined to this [[Activity]].",
										"returns": "\n  An array of [[ActivityParticipant]] objects, one for each joined\n  participant.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 9057,
											"name": "ActivityParticipant"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 613,
									"character": 21
								}
							]
						},
						{
							"id": 8941,
							"name": "participantsAsObservable",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8942,
									"name": "participantsAsObservable",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the participants as an Observable stream.",
										"text": "```typescript\nactivity\n  .participantsAsObservable()\n  .subscribe(p => console.log(p));\n```\n",
										"returns": "\n  An Observable array of participants.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 9057,
													"name": "ActivityParticipant"
												}
											}
										],
										"name": "Observable"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 629,
									"character": 33
								}
							]
						},
						{
							"id": 8915,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8916,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 8783,
										"name": "ActivityPermissionManager"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 344,
									"character": 20
								}
							]
						},
						{
							"id": 9033,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9034,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 9038,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9039,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9040,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9041,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 9035,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9036,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9037,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 8929,
							"name": "removeState",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8930,
									"name": "removeState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single local state entry from the [[Activity]]. This will fire\na single \"state_removed\" event for other joined participants to listen\nfor.",
										"text": "```typescript\nactivity.removeState(\"pointer\");\n```\n"
									},
									"parameters": [
										{
											"id": 8931,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The key of the local state to remove.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								},
								{
									"id": 8932,
									"name": "removeState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes one or more local state entries from the [[Activity]]. This will\nfire a multiple \"state_removed\" event for other joined participants to\nlisten for; one for each key removed.",
										"text": "```typescript\nactivity.removeState([\"pointer\", \"viewport\"]);\n```\n"
									},
									"parameters": [
										{
											"id": 8933,
											"name": "keys",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The keys of the local state to remove.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 501,
									"character": 20
								},
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 515,
									"character": 20
								},
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 517,
									"character": 20
								}
							]
						},
						{
							"id": 8905,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8906,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the session that this activity is a part of.",
										"returns": "\n  The session that this [[Activity]] is a part of.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 298,
									"character": 16
								}
							]
						},
						{
							"id": 8923,
							"name": "setState",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8924,
									"name": "setState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets a single key-value pair within this Activity's local state. This will\nresult in a single \"state_set\" event being emitted for other joined\nparticipants to listen for.",
										"text": "```typescript\nactivity.setState(\"key1\", \"delta\");\n```\n"
									},
									"parameters": [
										{
											"id": 8925,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The key of the delta to set."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 8926,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The delta to set for the supplied key.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								},
								{
									"id": 8927,
									"name": "setState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets multiple key-value pairs within this Activity's local state. This\nmethod does not replace all state; that is, keys not supplied in the map\nwill not be altered. This method will result in multiple \"state_set\"\nevents being fired for other joined participants to list for; one for\neach key set.",
										"text": "```typescript\nconst state = {\n  key1: \"v1\",\n  key2: false\n};\nactivity.setState(state);\n```\nor\n\n```typescript\nconst state = new Map();\nstate.set(\"key1\", \"v1\");\nstate.set(\"key2\", false);\nactivity.setState(state);\n```"
									},
									"parameters": [
										{
											"id": 8928,
											"name": "state",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  A mapping containing the key-value pairs to set.\n"
											},
											"type": {
												"type": "reference",
												"id": 965,
												"name": "StringMapLike"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 414,
									"character": 17
								},
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 441,
									"character": 17
								},
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 443,
									"character": 17
								}
							]
						},
						{
							"id": 8921,
							"name": "state",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8922,
									"name": "state",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the local session's state within this [[Activity]].",
										"returns": "\n  The local sessions state.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "Map"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 392,
									"character": 14
								}
							]
						},
						{
							"id": 8907,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8908,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the user defined type of this [[Activity]].",
										"returns": "\n  The [[Activity]] type.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 308,
									"character": 13
								}
							]
						},
						{
							"id": 8873,
							"name": "Events",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Holds the constants for the event names that are fired by the Activity\nclass."
							},
							"children": [
								{
									"id": 8881,
									"name": "DELETED",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when a the activity was deleted while joined."
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 150,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivityLeftEvent.EVENT_NAME"
								},
								{
									"id": 8882,
									"name": "FORCE_LEAVE",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when the server forces the local session to leave the activity."
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 157,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivityForceLeaveEvent.EVENT_NAME"
								},
								{
									"id": 8880,
									"name": "LEFT",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when a the activity is left by the local session. The resulting event\nwill be an [[ActivityLeftEvent]]."
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 143,
											"character": 8
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivityLeftEvent.EVENT_NAME"
								},
								{
									"id": 8874,
									"name": "SESSION_JOINED",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when a remote session joins the activity. The resulting event will\nbe an [[ActivitySessionJoinedEvent]]."
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 92,
											"character": 18
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivitySessionJoinedEvent.EVENT_NAME"
								},
								{
									"id": 8875,
									"name": "SESSION_LEFT",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when a remote session leaves the activity. The resulting event will\nbe an [[ActivitySessionLeftEvent]]."
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 100,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivitySessionLeftEvent.EVENT_NAME"
								},
								{
									"id": 8877,
									"name": "STATE_CLEARED",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when a remote session clears state within the Activity. The resulting\nevent will be an [[ActivityStateClearedEvent]]."
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 116,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivityStateClearedEvent.EVENT_NAME"
								},
								{
									"id": 8879,
									"name": "STATE_DELTA",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when a remote session makes any changes to state within Activity. The\nresulting event will be a [[ActivityStateDeltaEvent]].",
										"text": "This is a batch event whereas [[ActivityStateClearedEvent]] and\n[[ActivityStateSetEvent]] are fired for individual properties.\n"
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 135,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivityStateDeltaEvent.EVENT_NAME"
								},
								{
									"id": 8878,
									"name": "STATE_REMOVED",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when a remote session clears state within the Activity. The resulting\nevent will be an [[ActivityStateRemovedEvent]]."
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 124,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivityStateRemovedEvent.EVENT_NAME"
								},
								{
									"id": 8876,
									"name": "STATE_SET",
									"kind": 8388608,
									"kindString": "Event",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Fired when a remote session sets state within the Activity. The resulting\nevent will be an [[ActivityStateSetEvent]]."
									},
									"sources": [
										{
											"fileName": "src/main/activity/Activity.ts",
											"line": 108,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ActivityStateSetEvent.EVENT_NAME"
								}
							],
							"groups": [
								{
									"title": "Events",
									"kind": 8388608,
									"children": [
										8881,
										8882,
										8880,
										8874,
										8875,
										8877,
										8879,
										8878,
										8876
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/Activity.ts",
									"line": 85,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								9021,
								8934,
								8911,
								9046,
								8909,
								8913,
								8919,
								8917,
								9042,
								9025,
								9029,
								8936,
								8939,
								8941,
								8915,
								9033,
								9038,
								9035,
								8929,
								8905,
								8923,
								8921,
								8907
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								8873
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/Activity.ts",
							"line": 79,
							"character": 21
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 8540,
									"name": "IActivityEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					]
				},
				{
					"id": 8858,
					"name": "ActivityDeletedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivityDeletedEvent is fired when an activity was deleted while the\nlocal session was joined to an [[Activity]]."
					},
					"children": [
						{
							"id": 8862,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityDeletedEvent.ts",
									"line": 45,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8865,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityDeletedEvent.ts",
									"line": 57,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8860,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityDeletedEvent.ts",
									"line": 35,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivityDeletedEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8864,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityDeletedEvent.ts",
									"line": 53,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8863,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityDeletedEvent.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8859,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityDeletedEvent.ts",
									"line": 30,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"deleted\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8862,
								8865,
								8860,
								8864,
								8863,
								8859
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivityDeletedEvent.ts",
							"line": 25,
							"character": 33
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 8842,
					"name": "ActivityForceLeaveEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivityForceLeaveEvent is fired when an the local session is forced to\nleave an [[Activity]] by the server."
					},
					"children": [
						{
							"id": 8846,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityForceLeaveEvent.ts",
									"line": 45,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8849,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityForceLeaveEvent.ts",
									"line": 57,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8844,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityForceLeaveEvent.ts",
									"line": 35,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivityForceLeaveEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8850,
							"name": "reason",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The reason the session was forced to leave."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityForceLeaveEvent.ts",
									"line": 61,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 8848,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityForceLeaveEvent.ts",
									"line": 53,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8847,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityForceLeaveEvent.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8843,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityForceLeaveEvent.ts",
									"line": 30,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"force_leave\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8846,
								8849,
								8844,
								8850,
								8848,
								8847,
								8843
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivityForceLeaveEvent.ts",
							"line": 25,
							"character": 36
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 8661,
					"name": "ActivityLeftEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivityLeftEvent is fired when a local session leaves the\n[[Activity]]."
					},
					"children": [
						{
							"id": 8665,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityLeftEvent.ts",
									"line": 45,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8668,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityLeftEvent.ts",
									"line": 57,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8663,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityLeftEvent.ts",
									"line": 35,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivityLeftEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8667,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityLeftEvent.ts",
									"line": 53,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8666,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityLeftEvent.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8662,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityLeftEvent.ts",
									"line": 30,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"left\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8665,
								8668,
								8663,
								8667,
								8666,
								8662
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivityLeftEvent.ts",
							"line": 25,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 9057,
					"name": "ActivityParticipant",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivityParticipant represents an individual user session that has\njoined a particular [[Activity]]."
					},
					"children": [
						{
							"id": 9060,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n  The [[Activity]] this participant belongs too."
							},
							"sources": [
								{
									"fileName": "src/main/activity/ActivityParticipant.ts",
									"line": 48,
									"character": 38
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							}
						},
						{
							"id": 9063,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n  A flag indicating if the participant represents the local user /\n  session."
							},
							"sources": [
								{
									"fileName": "src/main/activity/ActivityParticipant.ts",
									"line": 51,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 9062,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n  The session id of the participant."
							},
							"sources": [
								{
									"fileName": "src/main/activity/ActivityParticipant.ts",
									"line": 50,
									"character": 39
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9061,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n  The username of the participant."
							},
							"sources": [
								{
									"fileName": "src/main/activity/ActivityParticipant.ts",
									"line": 49,
									"character": 34
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 9070,
							"name": "state",
							"kind": 262144,
							"kindString": "Accessor",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"comment": {
								"returns": "\n  The current state of this participant within this activity.\n"
							},
							"getSignature": [
								{
									"id": 9071,
									"name": "__get",
									"kind": 524288,
									"kindString": "Get signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The current state of this participant within this activity.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "Map"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityParticipant.ts",
									"line": 61,
									"character": 18
								}
							]
						},
						{
							"id": 9072,
							"name": "clone",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9073,
									"name": "clone",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Clones this ActivityParticipant, optionally making changes while cloning."
									},
									"parameters": [
										{
											"id": 9074,
											"name": "modifications",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  Optional overrides to the properties of the ActivityParticipant.\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 9075,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"children": [
														{
															"id": 9076,
															"name": "activity",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"sources": [
																{
																	"fileName": "src/main/activity/ActivityParticipant.ts",
																	"line": 72,
																	"character": 12
																}
															],
															"type": {
																"type": "reference",
																"id": 8872,
																"name": "Activity"
															}
														},
														{
															"id": 9079,
															"name": "local",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"sources": [
																{
																	"fileName": "src/main/activity/ActivityParticipant.ts",
																	"line": 75,
																	"character": 9
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														},
														{
															"id": 9078,
															"name": "sessionId",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"sources": [
																{
																	"fileName": "src/main/activity/ActivityParticipant.ts",
																	"line": 74,
																	"character": 13
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "string"
															}
														},
														{
															"id": 9080,
															"name": "state",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"sources": [
																{
																	"fileName": "src/main/activity/ActivityParticipant.ts",
																	"line": 76,
																	"character": 9
																}
															],
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "intrinsic",
																		"name": "string"
																	},
																	{
																		"type": "intrinsic",
																		"name": "any"
																	}
																],
																"name": "Map"
															}
														},
														{
															"id": 9077,
															"name": "user",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"sources": [
																{
																	"fileName": "src/main/activity/ActivityParticipant.ts",
																	"line": 73,
																	"character": 8
																}
															],
															"type": {
																"type": "reference",
																"id": 812,
																"name": "DomainUser"
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																9076,
																9079,
																9078,
																9080,
																9077
															]
														}
													],
													"sources": [
														{
															"fileName": "src/main/activity/ActivityParticipant.ts",
															"line": 71,
															"character": 29
														}
													]
												}
											},
											"defaultValue": "{}"
										}
									],
									"type": {
										"type": "reference",
										"id": 9057,
										"name": "ActivityParticipant"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityParticipant.ts",
									"line": 71,
									"character": 14
								}
							]
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9060,
								9063,
								9062,
								9061
							]
						},
						{
							"title": "Accessors",
							"kind": 262144,
							"children": [
								9070
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								9072
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/ActivityParticipant.ts",
							"line": 25,
							"character": 32
						}
					]
				},
				{
					"id": 8783,
					"name": "ActivityPermissionManager",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ActivityPermissionManager]] manages the permissions for a particular\nActivity within the domain."
					},
					"children": [
						{
							"id": 8826,
							"name": "addGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8827,
									"name": "addGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds the given permissions to any existing permissions for all\ngiven groups.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8828,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  an object, mapping group Ids to an set of desired permission strings to be added\n"
											},
											"type": {
												"type": "reference",
												"id": 965,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 8675,
																		"name": "ActivityPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 8675,
																	"name": "ActivityPermission"
																}
															}
														]
													}
												],
												"name": "StringMapLike"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8753,
										"name": "AbstractPermissionManager.addGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 306,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8753,
								"name": "AbstractPermissionManager.addGroupPermissions"
							}
						},
						{
							"id": 8811,
							"name": "addUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8812,
									"name": "addUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds the given permissions to any existing permissions for all\ngiven users.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8813,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  an object, mapping usernames to an set of desired permission strings to be added\n"
											},
											"type": {
												"type": "reference",
												"id": 971,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 8675,
																		"name": "ActivityPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 8675,
																	"name": "ActivityPermission"
																}
															}
														]
													}
												],
												"name": "DomainUserMapping"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8738,
										"name": "AbstractPermissionManager.addUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 192,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8738,
								"name": "AbstractPermissionManager.addUserPermissions"
							}
						},
						{
							"id": 8800,
							"name": "addWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8801,
									"name": "addWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds the given permissions to any existing WORLD permissions.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8802,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an set of permission strings\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 8675,
																"name": "ActivityPermission"
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "reference",
															"id": 8675,
															"name": "ActivityPermission"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8727,
										"name": "AbstractPermissionManager.addWorldPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 109,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8727,
								"name": "AbstractPermissionManager.addWorldPermissions"
							}
						},
						{
							"id": 8836,
							"name": "getAllGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8837,
									"name": "getAllGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for all groups.",
										"returns": "\n  A promise, which resolves with a map of permission strings per group ID.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 8675,
																"name": "ActivityPermission"
															}
														],
														"name": "Set"
													}
												],
												"name": "Map"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8763,
										"name": "AbstractPermissionManager.getAllGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 385,
									"character": 31
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8763,
								"name": "AbstractPermissionManager.getAllGroupPermissions"
							}
						},
						{
							"id": 8821,
							"name": "getAllUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8822,
									"name": "getAllUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for all users.",
										"returns": "\n  A promise, which resolves with a map of permission strings per username.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 974,
												"typeArguments": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 8675,
																"name": "ActivityPermission"
															}
														],
														"name": "Set"
													}
												],
												"name": "DomainUserIdMap"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8748,
										"name": "AbstractPermissionManager.getAllUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 273,
									"character": 30
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8748,
								"name": "AbstractPermissionManager.getAllUserPermissions"
							}
						},
						{
							"id": 8838,
							"name": "getGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8839,
									"name": "getGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for the given group.",
										"returns": "\n  A promise, which resolves with an set of permission strings\n"
									},
									"parameters": [
										{
											"id": 8840,
											"name": "groupId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an existing group ID\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "reference",
														"id": 8675,
														"name": "ActivityPermission"
													}
												],
												"name": "Set"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8765,
										"name": "AbstractPermissionManager.getGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 398,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8765,
								"name": "AbstractPermissionManager.getGroupPermissions"
							}
						},
						{
							"id": 8798,
							"name": "getPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8799,
									"name": "getPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 8711,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8675,
														"name": "ActivityPermission"
													}
												],
												"name": "IAllPermissions"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8725,
										"name": "AbstractPermissionManager.getPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 69,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8725,
								"name": "AbstractPermissionManager.getPermissions"
							}
						},
						{
							"id": 8823,
							"name": "getUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8824,
									"name": "getUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for the given user.",
										"returns": "\n  A promise, which resolves with an set of permission strings\n"
									},
									"parameters": [
										{
											"id": 8825,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an existing user's username\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "reference",
														"id": 8675,
														"name": "ActivityPermission"
													}
												],
												"name": "Set"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8750,
										"name": "AbstractPermissionManager.getUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 286,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8750,
								"name": "AbstractPermissionManager.getUserPermissions"
							}
						},
						{
							"id": 8809,
							"name": "getWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8810,
									"name": "getWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for WORLD.",
										"returns": "\n  A promise, which resolves with an set of permission strings\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "reference",
														"id": 8675,
														"name": "ActivityPermission"
													}
												],
												"name": "Set"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8736,
										"name": "AbstractPermissionManager.getWorldPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 173,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8736,
								"name": "AbstractPermissionManager.getWorldPermissions"
							}
						},
						{
							"id": 8792,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8793,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "The unique id within the type of the activity that the\npermissions manager is managing the permissions for.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityPermissionManager.ts",
									"line": 40,
									"character": 11
								}
							]
						},
						{
							"id": 8829,
							"name": "removeGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8830,
									"name": "removeGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the given permissions from any of the provided groups' permissions for this\n[[chatId]].",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8831,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  An object, mapping group IDs to an set of desired permission strings to be removed\n"
											},
											"type": {
												"type": "reference",
												"id": 965,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 8675,
																		"name": "ActivityPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 8675,
																	"name": "ActivityPermission"
																}
															}
														]
													}
												],
												"name": "StringMapLike"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8756,
										"name": "AbstractPermissionManager.removeGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 331,
									"character": 31
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8756,
								"name": "AbstractPermissionManager.removeGroupPermissions"
							}
						},
						{
							"id": 8814,
							"name": "removeUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8815,
									"name": "removeUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the given permissions from any of the provided users' permissions for this\n[[chatId]].",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8816,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  An object, mapping usernames to an set of desired permission strings to be removed\n"
											},
											"type": {
												"type": "reference",
												"id": 971,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 8675,
																		"name": "ActivityPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 8675,
																	"name": "ActivityPermission"
																}
															}
														]
													}
												],
												"name": "DomainUserMapping"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8741,
										"name": "AbstractPermissionManager.removeUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 219,
									"character": 30
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8741,
								"name": "AbstractPermissionManager.removeUserPermissions"
							}
						},
						{
							"id": 8803,
							"name": "removeWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8804,
									"name": "removeWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the given permissions from any existing WORLD permissions.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8805,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an set of permission strings\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 8675,
																"name": "ActivityPermission"
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "reference",
															"id": 8675,
															"name": "ActivityPermission"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8730,
										"name": "AbstractPermissionManager.removeWorldPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 131,
									"character": 31
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8730,
								"name": "AbstractPermissionManager.removeWorldPermissions"
							}
						},
						{
							"id": 8796,
							"name": "resolveSessionPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8797,
									"name": "resolveSessionPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the *resolved* permissions for the current user for this target.\nResolved means computed from the set of any relevant `world`, `group` or `user`\npermissions."
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "reference",
														"id": 8675,
														"name": "ActivityPermission"
													}
												],
												"name": "Set"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8723,
										"name": "AbstractPermissionManager.resolveSessionPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 55,
									"character": 34
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8723,
								"name": "AbstractPermissionManager.resolveSessionPermissions"
							}
						},
						{
							"id": 8832,
							"name": "setGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8833,
									"name": "setGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given permissions for the given groups.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8834,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  an object which maps one or more group IDs to their new set of permissions"
											},
											"type": {
												"type": "reference",
												"id": 965,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 8675,
																		"name": "ActivityPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 8675,
																	"name": "ActivityPermission"
																}
															}
														]
													}
												],
												"name": "StringMapLike"
											}
										},
										{
											"id": 8835,
											"name": "replaceAll",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  Determines if the map passed in represents the entire set of group\n  permissions to set.  All permissions for other groups will be removed.\n  The default is false.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											},
											"defaultValue": "false"
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8759,
										"name": "AbstractPermissionManager.setGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 359,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8759,
								"name": "AbstractPermissionManager.setGroupPermissions"
							}
						},
						{
							"id": 8817,
							"name": "setUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8818,
									"name": "setUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given permissions for the given users",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8819,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  an object which maps one or more usernames to their new set of permissions"
											},
											"type": {
												"type": "reference",
												"id": 971,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 8675,
																		"name": "ActivityPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 8675,
																	"name": "ActivityPermission"
																}
															}
														]
													}
												],
												"name": "DomainUserMapping"
											}
										},
										{
											"id": 8820,
											"name": "replaceAll",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  Determines if the map passed in represents the entire set of user\n  permissions to set.  All permissions for other user will be removed.\n  The default is false.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											},
											"defaultValue": "false"
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8744,
										"name": "AbstractPermissionManager.setUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 248,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8744,
								"name": "AbstractPermissionManager.setUserPermissions"
							}
						},
						{
							"id": 8806,
							"name": "setWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8807,
									"name": "setWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given permissions for WORLD.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 8808,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an set of permission strings\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 8675,
																"name": "ActivityPermission"
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "reference",
															"id": 8675,
															"name": "ActivityPermission"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8733,
										"name": "AbstractPermissionManager.setWorldPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 153,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8733,
								"name": "AbstractPermissionManager.setWorldPermissions"
							}
						},
						{
							"id": 8790,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8791,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "The user defined activity type of the activity that the\npermissions manager is managing the permissions for.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityPermissionManager.ts",
									"line": 32,
									"character": 13
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								8826,
								8811,
								8800,
								8836,
								8821,
								8838,
								8798,
								8823,
								8809,
								8792,
								8829,
								8814,
								8803,
								8796,
								8832,
								8817,
								8806,
								8790
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/ActivityPermissionManager.ts",
							"line": 13,
							"character": 38
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 8717,
							"typeArguments": [
								{
									"type": "reference",
									"id": 8675,
									"name": "ActivityPermission"
								}
							],
							"name": "AbstractPermissionManager"
						}
					]
				},
				{
					"id": 9089,
					"name": "ActivityService",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ActivityService]] provides the main entry point into working with\nActivities in Convergence. Activities provide a mechanism to communicate\n`where` users are operating within a system and `what` they are doing.",
						"text": "See the [developer guide](https://docs.convergence.io/guide/activities/overview.html)\nfor an introduction to Activities.\n"
					},
					"children": [
						{
							"id": 9126,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9127,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9128,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9129,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 9100,
							"name": "create",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9101,
									"name": "create",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 9102,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 9082,
												"name": "IActivityCreateOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityService.ts",
									"line": 87,
									"character": 15
								}
							]
						},
						{
							"id": 9151,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9152,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 9114,
							"name": "isJoined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9115,
									"name": "isJoined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if an Activity with the specified id is already joined.",
										"returns": "\n  True if the Activity with the specified id is joined; false otherwise.\n"
									},
									"parameters": [
										{
											"id": 9116,
											"name": "type",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The user defined type of activity."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9117,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id (unique within the type) of the Activity to check."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityService.ts",
									"line": 194,
									"character": 17
								}
							]
						},
						{
							"id": 9107,
							"name": "join",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9108,
									"name": "join",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Allows the connected user to join the specified activity.",
										"text": "```typescript\nconst activityId = \"myActivityId\";\nactivityService\n  .join(activityId)\n  .then(activity => {\n    console.log(\"Joined!\");\n    console.log(activity.participants());\n  });\n  .catch(e => console.error(e));\n```",
										"returns": "\n  A Promise that will be resolved with the successfully joined\n  [[Activity]].\n"
									},
									"parameters": [
										{
											"id": 9109,
											"name": "type",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The user defined type of the Activity to join."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9110,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The unique id (within the type) of the Activity to join."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9111,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "\n  Options for connecting to the specified Activity.\n"
											},
											"type": {
												"type": "reference",
												"id": 8688,
												"name": "IActivityJoinOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 8872,
												"name": "Activity"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityService.ts",
									"line": 142,
									"character": 13
								}
							]
						},
						{
							"id": 9112,
							"name": "joined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9113,
									"name": "joined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides a map of all currently joined Activities.",
										"returns": "\n  A Map of Activity Id => Activity.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "reference",
												"id": 8872,
												"name": "Activity"
											}
										],
										"name": "Map"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityService.ts",
									"line": 180,
									"character": 15
								}
							]
						},
						{
							"id": 9147,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9148,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9149,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9150,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 9130,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9131,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9132,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9133,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 9134,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9135,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9136,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9137,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 9103,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9104,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 9105,
											"name": "activityId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9106,
											"name": "activityType",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityService.ts",
									"line": 106,
									"character": 15
								}
							]
						},
						{
							"id": 9138,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9139,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 9143,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9144,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9145,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9146,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 8540,
														"name": "IActivityEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 9140,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9141,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9142,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 8540,
												"name": "IActivityEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 9098,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9099,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The current Convergence ConvergenceSession object that represents the connection\n  to the Convergence Domain.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/activity/ActivityService.ts",
									"line": 83,
									"character": 16
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								9126,
								9100,
								9151,
								9114,
								9107,
								9112,
								9147,
								9130,
								9134,
								9103,
								9138,
								9143,
								9140,
								9098
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/ActivityService.ts",
							"line": 44,
							"character": 28
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 8540,
									"name": "IActivityEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					]
				},
				{
					"id": 8547,
					"name": "ActivitySessionJoinedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivitySessionJoinedEvent is fired when a remote session joins an\n[[Activity]]."
					},
					"children": [
						{
							"id": 8551,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionJoinedEvent.ts",
									"line": 46,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8554,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionJoinedEvent.ts",
									"line": 58,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8549,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionJoinedEvent.ts",
									"line": 35,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivitySessionJoinedEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8555,
							"name": "participant",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The participant that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionJoinedEvent.ts",
									"line": 62,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 9057,
								"name": "ActivityParticipant"
							}
						},
						{
							"id": 8553,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionJoinedEvent.ts",
									"line": 54,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8552,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionJoinedEvent.ts",
									"line": 50,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8548,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionJoinedEvent.ts",
									"line": 30,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"session_joined\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8551,
								8554,
								8549,
								8555,
								8553,
								8552,
								8548
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivitySessionJoinedEvent.ts",
							"line": 26,
							"character": 39
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 8563,
					"name": "ActivitySessionLeftEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivitySessionLeftEvent is fired when a remote session leaves an\n[[Activity]]."
					},
					"children": [
						{
							"id": 8567,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionLeftEvent.ts",
									"line": 45,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8570,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionLeftEvent.ts",
									"line": 57,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8565,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionLeftEvent.ts",
									"line": 35,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivitySessionLeftEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8569,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionLeftEvent.ts",
									"line": 53,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8568,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionLeftEvent.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8564,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivitySessionLeftEvent.ts",
									"line": 30,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"session_left\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8567,
								8570,
								8565,
								8569,
								8568,
								8564
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivitySessionLeftEvent.ts",
							"line": 25,
							"character": 37
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 8615,
					"name": "ActivityStateClearedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivityStateClearedEvent is fired when a remote session clears all an\nof its state within the [[Activity]]."
					},
					"children": [
						{
							"id": 8619,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateClearedEvent.ts",
									"line": 45,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8622,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateClearedEvent.ts",
									"line": 57,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8617,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateClearedEvent.ts",
									"line": 35,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivityStateClearedEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8623,
							"name": "oldValues",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The old state values prior to being cleared."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateClearedEvent.ts",
									"line": 61,
									"character": 29
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "string"
									},
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "Map"
							}
						},
						{
							"id": 8621,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateClearedEvent.ts",
									"line": 53,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8620,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateClearedEvent.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8616,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateClearedEvent.ts",
									"line": 30,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"state_cleared\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8619,
								8622,
								8617,
								8623,
								8621,
								8620,
								8616
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivityStateClearedEvent.ts",
							"line": 25,
							"character": 38
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 8631,
					"name": "ActivityStateDeltaEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivityStateSetEvent is fired when a remote session sets one or\nelements from its state within the [[Activity]]. This is a batch\nevent that summarizes all the changes made to a participants\nstate in a single action."
					},
					"children": [
						{
							"id": 8635,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 47,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8640,
							"name": "complete",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Indicates if the full state map was set."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 67,
									"character": 28
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 8638,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 59,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8633,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 37,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivityStateDeltaEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8642,
							"name": "oldValues",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The previous values of any state that was removed or set."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 75,
									"character": 29
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "string"
									},
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "Map"
							}
						},
						{
							"id": 8641,
							"name": "removed",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The keys of state that was removed."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 71,
									"character": 27
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						},
						{
							"id": 8637,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 55,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8636,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 51,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8639,
							"name": "values",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The state that was modified."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 63,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "string"
									},
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "Map"
							}
						},
						{
							"id": 8632,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
									"line": 32,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"state_delta\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8635,
								8640,
								8638,
								8633,
								8642,
								8641,
								8637,
								8636,
								8639,
								8632
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivityStateDeltaEvent.ts",
							"line": 27,
							"character": 36
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 8597,
					"name": "ActivityStateRemovedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivityStateRemovedEvent is fired when a remote session removes one or\nelements from its state within the [[Activity]]. An event will be fired\nfor each key that was removed."
					},
					"children": [
						{
							"id": 8601,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
									"line": 46,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8605,
							"name": "key",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The key of the state that was removed."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
									"line": 62,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 8604,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
									"line": 58,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8599,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
									"line": 36,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivityStateRemovedEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8606,
							"name": "oldValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The state that was modified."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
									"line": 66,
									"character": 28
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "any"
							}
						},
						{
							"id": 8603,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
									"line": 54,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8602,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
									"line": 50,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8598,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
									"line": 31,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"state_removed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8601,
								8605,
								8604,
								8599,
								8606,
								8603,
								8602,
								8598
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivityStateRemovedEvent.ts",
							"line": 26,
							"character": 38
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 8577,
					"name": "ActivityStateSetEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The ActivityStateSetEvent is fired when a remote session sets one or\nelements from its state within the [[Activity]]. An event is fired\nfor each key that was set."
					},
					"children": [
						{
							"id": 8581,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 46,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8541,
								"name": "IActivityEvent.activity"
							}
						},
						{
							"id": 8585,
							"name": "key",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The key of the state was set."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 62,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 8584,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 58,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8544,
								"name": "IActivityEvent.local"
							}
						},
						{
							"id": 8579,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 36,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ActivityStateSetEvent.EVENT_NAME",
							"implementationOf": {
								"type": "reference",
								"id": 8545,
								"name": "IActivityEvent.name"
							}
						},
						{
							"id": 8587,
							"name": "oldValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The state that was modified."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 70,
									"character": 28
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "any"
							}
						},
						{
							"id": 8583,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 54,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8543,
								"name": "IActivityEvent.sessionId"
							}
						},
						{
							"id": 8582,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 50,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 8542,
								"name": "IActivityEvent.user"
							}
						},
						{
							"id": 8586,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The state that was modified."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 66,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "any"
							}
						},
						{
							"id": 8578,
							"name": "EVENT_NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The event name that all instances of this class will use."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
									"line": 31,
									"character": 35
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"state_set\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8581,
								8585,
								8584,
								8579,
								8587,
								8583,
								8582,
								8586,
								8578
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/ActivityStateSetEvent.ts",
							"line": 26,
							"character": 34
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 8540,
							"name": "IActivityEvent"
						}
					]
				},
				{
					"id": 8682,
					"name": "IActivityAutoCreateOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents the options that can be set to automatically\ncreate an activity when joining."
					},
					"children": [
						{
							"id": 8683,
							"name": "ephemeral",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityAutoCreateOptions.ts",
									"line": 24,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 8686,
							"name": "groupPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 31,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 965,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 8675,
											"name": "ActivityPermission"
										}
									}
								],
								"name": "StringMapLike"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 8680,
								"name": "IActivityCommonOptions.groupPermissions"
							}
						},
						{
							"id": 8685,
							"name": "userPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 29,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"id": 971,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 8675,
											"name": "ActivityPermission"
										}
									}
								],
								"name": "DomainUserMapping"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 8679,
								"name": "IActivityCommonOptions.userPermissions"
							}
						},
						{
							"id": 8684,
							"name": "worldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 27,
									"character": 18
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 8675,
									"name": "ActivityPermission"
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 8678,
								"name": "IActivityCommonOptions.worldPermissions"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8683,
								8686,
								8685,
								8684
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/IActivityAutoCreateOptions.ts",
							"line": 23,
							"character": 43
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 8677,
							"name": "IActivityCommonOptions"
						}
					]
				},
				{
					"id": 8677,
					"name": "IActivityCommonOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents the common options that can be set when creating or auto\ncreating (when joining) and Activity."
					},
					"children": [
						{
							"id": 8680,
							"name": "groupPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 31,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 965,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 8675,
											"name": "ActivityPermission"
										}
									}
								],
								"name": "StringMapLike"
							}
						},
						{
							"id": 8679,
							"name": "userPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 29,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"id": 971,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 8675,
											"name": "ActivityPermission"
										}
									}
								],
								"name": "DomainUserMapping"
							}
						},
						{
							"id": 8678,
							"name": "worldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 27,
									"character": 18
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 8675,
									"name": "ActivityPermission"
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8680,
								8679,
								8678
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/IActivityCommonOptions.ts",
							"line": 25,
							"character": 39
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 8682,
							"name": "IActivityAutoCreateOptions"
						},
						{
							"type": "reference",
							"id": 9082,
							"name": "IActivityCreateOptions"
						}
					]
				},
				{
					"id": 9082,
					"name": "IActivityCreateOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents the options that can be set when creating an activity."
					},
					"children": [
						{
							"id": 9084,
							"name": "activityId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCreateOptions.ts",
									"line": 24,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9083,
							"name": "activityType",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCreateOptions.ts",
									"line": 23,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9087,
							"name": "groupPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 31,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 965,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 8675,
											"name": "ActivityPermission"
										}
									}
								],
								"name": "StringMapLike"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 8680,
								"name": "IActivityCommonOptions.groupPermissions"
							}
						},
						{
							"id": 9086,
							"name": "userPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 29,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"id": 971,
								"typeArguments": [
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 8675,
											"name": "ActivityPermission"
										}
									}
								],
								"name": "DomainUserMapping"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 8679,
								"name": "IActivityCommonOptions.userPermissions"
							}
						},
						{
							"id": 9085,
							"name": "worldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityCommonOptions.ts",
									"line": 27,
									"character": 18
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 8675,
									"name": "ActivityPermission"
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 8678,
								"name": "IActivityCommonOptions.worldPermissions"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9084,
								9083,
								9087,
								9086,
								9085
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/IActivityCreateOptions.ts",
							"line": 22,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 8677,
							"name": "IActivityCommonOptions"
						}
					]
				},
				{
					"id": 8540,
					"name": "IActivityEvent",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "IActivityEvent is the base interface for all events fired by the Activity\nsubsystem. All Activity events will implement this interface."
					},
					"children": [
						{
							"id": 8541,
							"name": "activity",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Activity that this event relates to."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/IActivityEvent.ts",
									"line": 29,
									"character": 19
								}
							],
							"type": {
								"type": "reference",
								"id": 8872,
								"name": "Activity"
							}
						},
						{
							"id": 8544,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Will be true if this event is from the local user / session;\nfalse otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/IActivityEvent.ts",
									"line": 45,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 8545,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/util/IConvergenceEvent.ts",
									"line": 30,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 8543,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the session that originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/IActivityEvent.ts",
									"line": 39,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 8542,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The username of the user originated this event."
							},
							"sources": [
								{
									"fileName": "src/main/activity/events/IActivityEvent.ts",
									"line": 34,
									"character": 15
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8541,
								8544,
								8545,
								8543,
								8542
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/events/IActivityEvent.ts",
							"line": 25,
							"character": 31
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 8858,
							"name": "ActivityDeletedEvent"
						},
						{
							"type": "reference",
							"id": 8842,
							"name": "ActivityForceLeaveEvent"
						},
						{
							"type": "reference",
							"id": 8661,
							"name": "ActivityLeftEvent"
						},
						{
							"type": "reference",
							"id": 8547,
							"name": "ActivitySessionJoinedEvent"
						},
						{
							"type": "reference",
							"id": 8563,
							"name": "ActivitySessionLeftEvent"
						},
						{
							"type": "reference",
							"id": 8615,
							"name": "ActivityStateClearedEvent"
						},
						{
							"type": "reference",
							"id": 8631,
							"name": "ActivityStateDeltaEvent"
						},
						{
							"type": "reference",
							"id": 8597,
							"name": "ActivityStateRemovedEvent"
						},
						{
							"type": "reference",
							"id": 8577,
							"name": "ActivityStateSetEvent"
						}
					]
				},
				{
					"id": 8688,
					"name": "IActivityJoinOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents the options that can be set when Joining an activity."
					},
					"children": [
						{
							"id": 8691,
							"name": "autoCreate",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityJoinOptions.ts",
									"line": 31,
									"character": 12
								}
							],
							"type": {
								"type": "reference",
								"id": 8682,
								"name": "IActivityAutoCreateOptions"
							}
						},
						{
							"id": 8690,
							"name": "lurk",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityJoinOptions.ts",
									"line": 29,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 8689,
							"name": "state",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Initial state to set when joining an activity."
							},
							"sources": [
								{
									"fileName": "src/main/activity/IActivityJoinOptions.ts",
									"line": 27,
									"character": 7
								}
							],
							"type": {
								"type": "reference",
								"id": 965,
								"name": "StringMapLike"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8691,
								8690,
								8689
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/activity/IActivityJoinOptions.ts",
							"line": 23,
							"character": 37
						}
					]
				},
				{
					"id": 8675,
					"name": "ActivityPermission",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The possible permissions a activities can have."
					},
					"sources": [
						{
							"fileName": "src/main/activity/ActivityPermission.ts",
							"line": 6,
							"character": 30
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "join"
							},
							{
								"type": "stringLiteral",
								"value": "lurk"
							},
							{
								"type": "stringLiteral",
								"value": "view_state"
							},
							{
								"type": "stringLiteral",
								"value": "set_state"
							},
							{
								"type": "stringLiteral",
								"value": "remove"
							},
							{
								"type": "stringLiteral",
								"value": "manage"
							}
						]
					}
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						8682,
						8677,
						9082,
						8540,
						8688
					]
				},
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						8872,
						8858,
						8842,
						8661,
						9057,
						8783,
						9089,
						8547,
						8563,
						8615,
						8631,
						8597,
						8577
					]
				},
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						8675
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/activity/index.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 10607,
			"name": "Chat",
			"kind": 1,
			"kindString": "Module",
			"flags": {
				"isExported": true
			},
			"originalName": "/Users/michael/development/convergence/client/convergence-client-javascript/src/main/chat/index.ts",
			"comment": {
				"shortText": "The Chat API allows users to communicate via text embedded directly within\nthe application.",
				"text": "See the [developer guide](https://docs.convergence.io/guide/chat/overview.html)\nfor a few chat examples.\n"
			},
			"children": [
				{
					"id": 10064,
					"name": "ChatTypes",
					"kind": 4,
					"kindString": "Enumeration",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Use these rather than hardcoded strings to refer to a particular type of Chat."
					},
					"children": [
						{
							"id": 10066,
							"name": "CHANNEL",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 101,
									"character": 9
								}
							],
							"defaultValue": "\"channel\""
						},
						{
							"id": 10065,
							"name": "DIRECT",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 100,
									"character": 8
								}
							],
							"defaultValue": "\"direct\""
						},
						{
							"id": 10067,
							"name": "ROOM",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 102,
									"character": 6
								}
							],
							"defaultValue": "\"room\""
						}
					],
					"groups": [
						{
							"title": "Enumeration members",
							"kind": 16,
							"children": [
								10066,
								10065,
								10067
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/IChatInfo.ts",
							"line": 99,
							"character": 21
						}
					]
				},
				{
					"id": 10149,
					"name": "Chat",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true,
						"isAbstract": true
					},
					"comment": {
						"shortText": "The [[Chat]] class is the base class of all Chat types in Convergence. It\nprovides several methods and behaviors that are common to all Chat\nsubclasses, such as the ability to send messages, set a name and topic, etc."
					},
					"children": [
						{
							"id": 10150,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 76,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 10143,
								"name": "ChatEvents"
							},
							"defaultValue": "Events"
						},
						{
							"id": 10193,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10194,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10195,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10196,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 10218,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10219,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 10178,
							"name": "getHistory",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10179,
									"name": "getHistory",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Get the history of events for this [[Chat]]. Events consist of messages,\nusers joining / leaving, and a variety of other events depending on the chat\ntype.",
										"returns": "\n  A promise that will be resolved with an array of Chat events that match\n  the specified search options.\n"
									},
									"parameters": [
										{
											"id": 10180,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "\n  Options that define the events the user would like to fetch.\n"
											},
											"type": {
												"type": "reference",
												"id": 10075,
												"name": "IChatHistorySearchOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 553,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9714,
														"name": "ChatHistoryEntry"
													}
												],
												"name": "PagedData"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 240,
									"character": 19
								}
							]
						},
						{
							"id": 10162,
							"name": "info",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10163,
									"name": "info",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  Information which describes the Chat. Subclasses may provide a more\n  specific subclass of ChatInfo.\n"
									},
									"type": {
										"type": "reference",
										"id": 10052,
										"name": "IChatInfo"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 124,
									"character": 13
								}
							]
						},
						{
							"id": 10164,
							"name": "isJoined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10165,
									"name": "isJoined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the Chat is Joined. Chat's must be joined to perform many\nfunctions, such as sending messages.",
										"returns": "\n  True if the chat is joined, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 135,
									"character": 17
								}
							]
						},
						{
							"id": 10175,
							"name": "markSeen",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10176,
									"name": "markSeen",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Marks the specified event number as having been seen by the local user.\nIt is assumed that all events prior or equal to this event have been\nseen by the user.",
										"returns": "\n  A promise acknowledging that seen events have been marked successfully.\n"
									},
									"parameters": [
										{
											"id": 10177,
											"name": "eventNumber",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The event number to mark as set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 215,
									"character": 17
								}
							]
						},
						{
							"id": 10214,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10215,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10216,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10217,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 10197,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10198,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10199,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10200,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 10201,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10202,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10203,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10204,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 10181,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10182,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions manager for this chat.",
										"returns": "the permissions manager for this chat.\n"
									},
									"type": {
										"type": "reference",
										"id": 10087,
										"name": "ChatPermissionManager"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 263,
									"character": 20
								}
							]
						},
						{
							"id": 10205,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10206,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 10210,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10211,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10212,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10213,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 10207,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10208,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10209,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 10166,
							"name": "send",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10167,
									"name": "send",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes a chat message to this Chat.",
										"returns": "\n  A promise acknowledging that the message has been received by the\n  server.\n"
									},
									"parameters": [
										{
											"id": 10168,
											"name": "message",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The message to send."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10081,
												"name": "IChatMessageResponse"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 148,
									"character": 13
								}
							]
						},
						{
							"id": 10160,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10161,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The [[ConvergenceSession]] this [[Chat]] is associated with.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 115,
									"character": 16
								}
							]
						},
						{
							"id": 10169,
							"name": "setName",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10170,
									"name": "setName",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the short descriptive name for this chat.",
										"returns": "\n  A promise acknowledging that the name has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 10171,
											"name": "name",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 173,
									"character": 16
								}
							]
						},
						{
							"id": 10172,
							"name": "setTopic",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10173,
									"name": "setTopic",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the the current topic being discussed in the chat.",
										"returns": "\n  A promise acknowledging that the topic has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 10174,
											"name": "topic",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The topic to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 193,
									"character": 17
								}
							]
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10150
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								10193,
								10218,
								10178,
								10162,
								10164,
								10175,
								10214,
								10197,
								10201,
								10181,
								10205,
								10210,
								10207,
								10166,
								10160,
								10169,
								10172
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/Chat.ts",
							"line": 75,
							"character": 26
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 9522,
									"name": "IChatEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 9954,
							"name": "MembershipChat"
						},
						{
							"type": "reference",
							"id": 10229,
							"name": "DirectChat"
						}
					]
				},
				{
					"id": 10318,
					"name": "ChatChannel",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A [[ChatChannel]] is a Chat construct that has persistent membership of\nusers whether they are currently connected or not."
					},
					"children": [
						{
							"id": 10335,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 76,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 10143,
								"name": "ChatEvents"
							},
							"defaultValue": "Events",
							"inheritedFrom": {
								"type": "reference",
								"id": 9968,
								"name": "Chat.Events"
							}
						},
						{
							"id": 10325,
							"name": "add",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10326,
									"name": "add",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new user to this ChatChannel.",
										"returns": "\n  A promise that is resolved when the user has successfully be added.\n"
									},
									"parameters": [
										{
											"id": 10327,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The user to add to this ChatChannel.\n"
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatChannel.ts",
									"line": 51,
									"character": 12
								}
							]
						},
						{
							"id": 10366,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10367,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10368,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10369,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 10391,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10392,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 10354,
							"name": "getHistory",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10355,
									"name": "getHistory",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Get the history of events for this [[Chat]]. Events consist of messages,\nusers joining / leaving, and a variety of other events depending on the chat\ntype.",
										"returns": "\n  A promise that will be resolved with an array of Chat events that match\n  the specified search options.\n"
									},
									"parameters": [
										{
											"id": 10356,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "\n  Options that define the events the user would like to fetch.\n"
											},
											"type": {
												"type": "reference",
												"id": 10075,
												"name": "IChatHistorySearchOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 553,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9714,
														"name": "ChatHistoryEntry"
													}
												],
												"name": "PagedData"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9987,
										"name": "Chat.getHistory"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 240,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9987,
								"name": "Chat.getHistory"
							}
						},
						{
							"id": 10328,
							"name": "info",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10329,
									"name": "info",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 10034,
										"name": "MembershipChatInfo"
									},
									"overwrites": {
										"type": "reference",
										"id": 10162,
										"name": "Chat.info"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9961,
										"name": "MembershipChat.info"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 44,
									"character": 13
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 10162,
								"name": "Chat.info"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9961,
								"name": "MembershipChat.info"
							}
						},
						{
							"id": 10340,
							"name": "isJoined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10341,
									"name": "isJoined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the Chat is Joined. Chat's must be joined to perform many\nfunctions, such as sending messages.",
										"returns": "\n  True if the chat is joined, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9973,
										"name": "Chat.isJoined"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 135,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9973,
								"name": "Chat.isJoined"
							}
						},
						{
							"id": 10330,
							"name": "leave",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10331,
									"name": "leave",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Leaves the chat, such that messages will no longer be received. The\nsemantics of this depend on the specific subclass.",
										"returns": "\n  A promise that will be resolved when the Chat is left successfully.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9963,
										"name": "MembershipChat.leave"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 55,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9963,
								"name": "MembershipChat.leave"
							}
						},
						{
							"id": 10351,
							"name": "markSeen",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10352,
									"name": "markSeen",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Marks the specified event number as having been seen by the local user.\nIt is assumed that all events prior or equal to this event have been\nseen by the user.",
										"returns": "\n  A promise acknowledging that seen events have been marked successfully.\n"
									},
									"parameters": [
										{
											"id": 10353,
											"name": "eventNumber",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The event number to mark as set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9984,
										"name": "Chat.markSeen"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 215,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9984,
								"name": "Chat.markSeen"
							}
						},
						{
							"id": 10387,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10388,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10389,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10390,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 10370,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10371,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10372,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10373,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 10374,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10375,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10376,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10377,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 10357,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10358,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions manager for this chat.",
										"returns": "the permissions manager for this chat.\n"
									},
									"type": {
										"type": "reference",
										"id": 10087,
										"name": "ChatPermissionManager"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9990,
										"name": "Chat.permissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 263,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9990,
								"name": "Chat.permissions"
							}
						},
						{
							"id": 10332,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10333,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the specified user from the Chat.",
										"returns": "\n  A promise that is resolved when the specified user is successfully\n  removed from the chat.\n"
									},
									"parameters": [
										{
											"id": 10334,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The user to remove from the Chat."
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9965,
										"name": "MembershipChat.remove"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 74,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9965,
								"name": "MembershipChat.remove"
							}
						},
						{
							"id": 10378,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10379,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 10383,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10384,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10385,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10386,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 10380,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10381,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10382,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 10342,
							"name": "send",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10343,
									"name": "send",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes a chat message to this Chat.",
										"returns": "\n  A promise acknowledging that the message has been received by the\n  server.\n"
									},
									"parameters": [
										{
											"id": 10344,
											"name": "message",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The message to send."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10081,
												"name": "IChatMessageResponse"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9975,
										"name": "Chat.send"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 148,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9975,
								"name": "Chat.send"
							}
						},
						{
							"id": 10338,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10339,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The [[ConvergenceSession]] this [[Chat]] is associated with.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9971,
										"name": "Chat.session"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 115,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9971,
								"name": "Chat.session"
							}
						},
						{
							"id": 10345,
							"name": "setName",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10346,
									"name": "setName",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the short descriptive name for this chat.",
										"returns": "\n  A promise acknowledging that the name has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 10347,
											"name": "name",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9978,
										"name": "Chat.setName"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 173,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9978,
								"name": "Chat.setName"
							}
						},
						{
							"id": 10348,
							"name": "setTopic",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10349,
									"name": "setTopic",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the the current topic being discussed in the chat.",
										"returns": "\n  A promise acknowledging that the topic has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 10350,
											"name": "topic",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The topic to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9981,
										"name": "Chat.setTopic"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 193,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9981,
								"name": "Chat.setTopic"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10335
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								10325,
								10366,
								10391,
								10354,
								10328,
								10340,
								10330,
								10351,
								10387,
								10370,
								10374,
								10357,
								10332,
								10378,
								10383,
								10380,
								10342,
								10338,
								10345,
								10348
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/ChatChannel.ts",
							"line": 29,
							"character": 24
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9954,
							"name": "MembershipChat"
						}
					]
				},
				{
					"id": 9526,
					"name": "ChatEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true,
						"isAbstract": true
					},
					"comment": {
						"shortText": "A superclass for any events occurring on a particular existing [[Chat]]."
					},
					"children": [
						{
							"id": 9528,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the [[Chat]] on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 29,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9529,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This event's unique sequential number.  This can be useful when e.g. querying for\nevents on a particular chat ([[Chat.getHistory]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 9527,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isAbstract": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 24,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9530,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when the event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 9531,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated wth the event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 45,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9528,
								9529,
								9527,
								9530,
								9531
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/ChatEvent.ts",
							"line": 23,
							"character": 31
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 9555,
							"name": "ChatMessageEvent"
						},
						{
							"type": "reference",
							"id": 9571,
							"name": "ChatNameChangedEvent"
						},
						{
							"type": "reference",
							"id": 9595,
							"name": "ChatTopicChangedEvent"
						},
						{
							"type": "reference",
							"id": 9611,
							"name": "UserAddedEvent"
						},
						{
							"type": "reference",
							"id": 9627,
							"name": "UserJoinedEvent"
						},
						{
							"type": "reference",
							"id": 9641,
							"name": "UserLeftEvent"
						},
						{
							"type": "reference",
							"id": 9655,
							"name": "UserRemovedEvent"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9671,
					"name": "ChatEventsMarkedSeenEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[DomainUser]] marks chat events as being seen in a [[Chat]]."
					},
					"children": [
						{
							"id": 9675,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEventsMarkedSeenEvent.ts",
									"line": 35,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9676,
							"name": "maxSeenEventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEventsMarkedSeenEvent.ts",
									"line": 36,
									"character": 39
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 9673,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEventsMarkedSeenEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatEventsMarkedSeenEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9677,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEventsMarkedSeenEvent.ts",
									"line": 37,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 9672,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEventsMarkedSeenEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "events_seen"
							},
							"defaultValue": "\"events_seen\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9675,
								9676,
								9673,
								9677,
								9672
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/ChatEventsMarkedSeenEvent.ts",
							"line": 23,
							"character": 38
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9714,
					"name": "ChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true,
						"isAbstract": true
					},
					"comment": {
						"shortText": "The base class for all chat history entries.  All events that occur in a chat\nend up in their history, which can be queried with [[Chat.getHistory]] and optionally\nfiltered."
					},
					"children": [
						{
							"id": 9725,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9726,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 9727,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 9724,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9728,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 9715,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9716,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9717,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9722,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9723,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9720,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9718,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9719,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9721,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9716,
										9717,
										9722,
										9723,
										9720,
										9718,
										9719,
										9721
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9725,
								9726,
								9727,
								9724,
								9728
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9715
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
							"line": 41,
							"character": 38
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 9737,
							"name": "CreatedChatHistoryEntry"
						},
						{
							"type": "reference",
							"id": 9766,
							"name": "MessageChatHistoryEntry"
						},
						{
							"type": "reference",
							"id": 9791,
							"name": "NameChangedChatHistoryEntry"
						},
						{
							"type": "reference",
							"id": 9816,
							"name": "TopicChangedChatHistoryEntry"
						},
						{
							"type": "reference",
							"id": 9841,
							"name": "UserAddedChatHistoryEntry"
						},
						{
							"type": "reference",
							"id": 9866,
							"name": "UserJoinedChatHistoryEntry"
						},
						{
							"type": "reference",
							"id": 9889,
							"name": "UserLeftChatHistoryEntry"
						},
						{
							"type": "reference",
							"id": 9912,
							"name": "UserRemovedChatHistoryEntry"
						}
					]
				},
				{
					"id": 9539,
					"name": "ChatJoinedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the current user joins a [[Chat]]. The primary reason for this event\nis situations in which a user has multiple active sessions (e.g. using the app on\ntwo different devices) and one of the sessions joins a [[ChatChannel]].  Since the\nother session doesn't yet have access to the [[ChatChannel]], applications can\nlisten for this event to update their membership status.",
						"text": "Note that this is emitted from the [[ChatService]] as opposed to a [[Chat]].\n"
					},
					"children": [
						{
							"id": 9543,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the chat that was just joined."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatJoinedEvent.ts",
									"line": 44,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9541,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatJoinedEvent.ts",
									"line": 34,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatJoinedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9540,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatJoinedEvent.ts",
									"line": 29,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "joined"
							},
							"defaultValue": "\"joined\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9543,
								9541,
								9540
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/ChatJoinedEvent.ts",
							"line": 28,
							"character": 28
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9547,
					"name": "ChatLeftEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the current user leaves a [[Chat]]. The primary reason for this event\nis situations in which a user has multiple active sessions (e.g. using the app on\ntwo different devices) and one of the sessions leaves a [[ChatChannel]].  Since the\nother session may not have an instance of the [[ChatChannel]], applications can\nlisten for this event *outside* of the actual `ChatChannel`.",
						"text": "Note that this is emitted from the [[ChatService]] as opposed to a [[Chat]].\n"
					},
					"children": [
						{
							"id": 9551,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat that was just left."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatLeftEvent.ts",
									"line": 44,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9549,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatLeftEvent.ts",
									"line": 34,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatLeftEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9548,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatLeftEvent.ts",
									"line": 29,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "left"
							},
							"defaultValue": "\"left\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9551,
								9549,
								9548
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/ChatLeftEvent.ts",
							"line": 28,
							"character": 26
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9555,
					"name": "ChatMessageEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when another user sends a message to a particular [[Chat]]."
					},
					"children": [
						{
							"id": 9566,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the [[Chat]] on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 29,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9528,
								"name": "ChatEvent.chatId"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9567,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This event's unique sequential number.  This can be useful when e.g. querying for\nevents on a particular chat ([[Chat.getHistory]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9529,
								"name": "ChatEvent.eventNumber"
							}
						},
						{
							"id": 9559,
							"name": "message",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The text of the message"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatMessageEvent.ts",
									"line": 44,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9557,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatMessageEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatMessageEvent.NAME",
							"overwrites": {
								"type": "reference",
								"id": 9527,
								"name": "ChatEvent.name"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9568,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when the event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9530,
								"name": "ChatEvent.timestamp"
							}
						},
						{
							"id": 9569,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated wth the event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 45,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9531,
								"name": "ChatEvent.user"
							}
						},
						{
							"id": 9556,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatMessageEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "message"
							},
							"defaultValue": "\"message\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9566,
								9567,
								9559,
								9557,
								9568,
								9569,
								9556
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/ChatMessageEvent.ts",
							"line": 23,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9526,
							"name": "ChatEvent"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9571,
					"name": "ChatNameChangedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[Chat]]'s name changes."
					},
					"children": [
						{
							"id": 9582,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the [[Chat]] on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 29,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9528,
								"name": "ChatEvent.chatId"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9575,
							"name": "chatName",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The new name of the chat"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatNameChangedEvent.ts",
									"line": 44,
									"character": 28
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9583,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This event's unique sequential number.  This can be useful when e.g. querying for\nevents on a particular chat ([[Chat.getHistory]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9529,
								"name": "ChatEvent.eventNumber"
							}
						},
						{
							"id": 9573,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatNameChangedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatNameChangedEvent.NAME",
							"overwrites": {
								"type": "reference",
								"id": 9527,
								"name": "ChatEvent.name"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9584,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when the event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9530,
								"name": "ChatEvent.timestamp"
							}
						},
						{
							"id": 9585,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated wth the event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 45,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9531,
								"name": "ChatEvent.user"
							}
						},
						{
							"id": 9572,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatNameChangedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "name_changed"
							},
							"defaultValue": "\"name_changed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9582,
								9575,
								9583,
								9573,
								9584,
								9585,
								9572
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/ChatNameChangedEvent.ts",
							"line": 23,
							"character": 33
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9526,
							"name": "ChatEvent"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 10087,
					"name": "ChatPermissionManager",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Allows getting and setting permissions for the various capabilities of [[Chat]]s.\nThe specific permissions are defined in [[ChatPermission]].  Permissions can be\nassigned per-[[DomainUser]], per-[[UserGroup]], or for everybody\n([[setWorldPermissions]]).",
						"text": "Generally speaking, more specific permissions override less-specific ones.  So a\nuser's explicit permission would override the group's permission which the user\nis in, which would itself override any world permission for this `Chat`.\n"
					},
					"children": [
						{
							"id": 10127,
							"name": "addGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10128,
									"name": "addGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds the given permissions to any existing permissions for all\ngiven groups.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10129,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  an object, mapping group Ids to an set of desired permission strings to be added\n"
											},
											"type": {
												"type": "reference",
												"id": 965,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 10085,
																		"name": "ChatPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 10085,
																	"name": "ChatPermission"
																}
															}
														]
													}
												],
												"name": "StringMapLike"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8753,
										"name": "AbstractPermissionManager.addGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 306,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8753,
								"name": "AbstractPermissionManager.addGroupPermissions"
							}
						},
						{
							"id": 10112,
							"name": "addUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10113,
									"name": "addUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds the given permissions to any existing permissions for all\ngiven users.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10114,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  an object, mapping usernames to an set of desired permission strings to be added\n"
											},
											"type": {
												"type": "reference",
												"id": 971,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 10085,
																		"name": "ChatPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 10085,
																	"name": "ChatPermission"
																}
															}
														]
													}
												],
												"name": "DomainUserMapping"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8738,
										"name": "AbstractPermissionManager.addUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 192,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8738,
								"name": "AbstractPermissionManager.addUserPermissions"
							}
						},
						{
							"id": 10101,
							"name": "addWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10102,
									"name": "addWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds the given permissions to any existing WORLD permissions.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10103,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an set of permission strings\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 10085,
																"name": "ChatPermission"
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "reference",
															"id": 10085,
															"name": "ChatPermission"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8727,
										"name": "AbstractPermissionManager.addWorldPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 109,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8727,
								"name": "AbstractPermissionManager.addWorldPermissions"
							}
						},
						{
							"id": 10137,
							"name": "getAllGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10138,
									"name": "getAllGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for all groups.",
										"returns": "\n  A promise, which resolves with a map of permission strings per group ID.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 10085,
																"name": "ChatPermission"
															}
														],
														"name": "Set"
													}
												],
												"name": "Map"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8763,
										"name": "AbstractPermissionManager.getAllGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 385,
									"character": 31
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8763,
								"name": "AbstractPermissionManager.getAllGroupPermissions"
							}
						},
						{
							"id": 10122,
							"name": "getAllUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10123,
									"name": "getAllUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for all users.",
										"returns": "\n  A promise, which resolves with a map of permission strings per username.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 974,
												"typeArguments": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 10085,
																"name": "ChatPermission"
															}
														],
														"name": "Set"
													}
												],
												"name": "DomainUserIdMap"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8748,
										"name": "AbstractPermissionManager.getAllUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 273,
									"character": 30
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8748,
								"name": "AbstractPermissionManager.getAllUserPermissions"
							}
						},
						{
							"id": 10139,
							"name": "getGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10140,
									"name": "getGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for the given group.",
										"returns": "\n  A promise, which resolves with an set of permission strings\n"
									},
									"parameters": [
										{
											"id": 10141,
											"name": "groupId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an existing group ID\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "reference",
														"id": 10085,
														"name": "ChatPermission"
													}
												],
												"name": "Set"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8765,
										"name": "AbstractPermissionManager.getGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 398,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8765,
								"name": "AbstractPermissionManager.getGroupPermissions"
							}
						},
						{
							"id": 10099,
							"name": "getPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10100,
									"name": "getPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 8711,
												"typeArguments": [
													{
														"type": "reference",
														"id": 10085,
														"name": "ChatPermission"
													}
												],
												"name": "IAllPermissions"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8725,
										"name": "AbstractPermissionManager.getPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 69,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8725,
								"name": "AbstractPermissionManager.getPermissions"
							}
						},
						{
							"id": 10124,
							"name": "getUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10125,
									"name": "getUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for the given user.",
										"returns": "\n  A promise, which resolves with an set of permission strings\n"
									},
									"parameters": [
										{
											"id": 10126,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an existing user's username\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "reference",
														"id": 10085,
														"name": "ChatPermission"
													}
												],
												"name": "Set"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8750,
										"name": "AbstractPermissionManager.getUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 286,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8750,
								"name": "AbstractPermissionManager.getUserPermissions"
							}
						},
						{
							"id": 10110,
							"name": "getWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10111,
									"name": "getWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions for WORLD.",
										"returns": "\n  A promise, which resolves with an set of permission strings\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "reference",
														"id": 10085,
														"name": "ChatPermission"
													}
												],
												"name": "Set"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8736,
										"name": "AbstractPermissionManager.getWorldPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 173,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8736,
								"name": "AbstractPermissionManager.getWorldPermissions"
							}
						},
						{
							"id": 10093,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10094,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "The id of the chat this permissions manager manages\npermissions for.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatPermissionManager.ts",
									"line": 54,
									"character": 11
								}
							]
						},
						{
							"id": 10130,
							"name": "removeGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10131,
									"name": "removeGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the given permissions from any of the provided groups' permissions for this\n[[chatId]].",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10132,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  An object, mapping group IDs to an set of desired permission strings to be removed\n"
											},
											"type": {
												"type": "reference",
												"id": 965,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 10085,
																		"name": "ChatPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 10085,
																	"name": "ChatPermission"
																}
															}
														]
													}
												],
												"name": "StringMapLike"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8756,
										"name": "AbstractPermissionManager.removeGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 331,
									"character": 31
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8756,
								"name": "AbstractPermissionManager.removeGroupPermissions"
							}
						},
						{
							"id": 10115,
							"name": "removeUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10116,
									"name": "removeUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the given permissions from any of the provided users' permissions for this\n[[chatId]].",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10117,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  An object, mapping usernames to an set of desired permission strings to be removed\n"
											},
											"type": {
												"type": "reference",
												"id": 971,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 10085,
																		"name": "ChatPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 10085,
																	"name": "ChatPermission"
																}
															}
														]
													}
												],
												"name": "DomainUserMapping"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8741,
										"name": "AbstractPermissionManager.removeUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 219,
									"character": 30
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8741,
								"name": "AbstractPermissionManager.removeUserPermissions"
							}
						},
						{
							"id": 10104,
							"name": "removeWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10105,
									"name": "removeWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the given permissions from any existing WORLD permissions.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10106,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an set of permission strings\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 10085,
																"name": "ChatPermission"
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "reference",
															"id": 10085,
															"name": "ChatPermission"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8730,
										"name": "AbstractPermissionManager.removeWorldPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 131,
									"character": 31
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8730,
								"name": "AbstractPermissionManager.removeWorldPermissions"
							}
						},
						{
							"id": 10097,
							"name": "resolveSessionPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10098,
									"name": "resolveSessionPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the *resolved* permissions for the current user for this target.\nResolved means computed from the set of any relevant `world`, `group` or `user`\npermissions."
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "reference",
														"id": 10085,
														"name": "ChatPermission"
													}
												],
												"name": "Set"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8723,
										"name": "AbstractPermissionManager.resolveSessionPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 55,
									"character": 34
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8723,
								"name": "AbstractPermissionManager.resolveSessionPermissions"
							}
						},
						{
							"id": 10133,
							"name": "setGroupPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10134,
									"name": "setGroupPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given permissions for the given groups.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10135,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  an object which maps one or more group IDs to their new set of permissions"
											},
											"type": {
												"type": "reference",
												"id": 965,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 10085,
																		"name": "ChatPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 10085,
																	"name": "ChatPermission"
																}
															}
														]
													}
												],
												"name": "StringMapLike"
											}
										},
										{
											"id": 10136,
											"name": "replaceAll",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  Determines if the map passed in represents the entire set of group\n  permissions to set.  All permissions for other groups will be removed.\n  The default is false.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											},
											"defaultValue": "false"
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8759,
										"name": "AbstractPermissionManager.setGroupPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 359,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8759,
								"name": "AbstractPermissionManager.setGroupPermissions"
							}
						},
						{
							"id": 10118,
							"name": "setUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10119,
									"name": "setUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given permissions for the given users",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10120,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  an object which maps one or more usernames to their new set of permissions"
											},
											"type": {
												"type": "reference",
												"id": 971,
												"typeArguments": [
													{
														"type": "union",
														"types": [
															{
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 10085,
																		"name": "ChatPermission"
																	}
																],
																"name": "Set"
															},
															{
																"type": "array",
																"elementType": {
																	"type": "reference",
																	"id": 10085,
																	"name": "ChatPermission"
																}
															}
														]
													}
												],
												"name": "DomainUserMapping"
											}
										},
										{
											"id": 10121,
											"name": "replaceAll",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  Determines if the map passed in represents the entire set of user\n  permissions to set.  All permissions for other user will be removed.\n  The default is false.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											},
											"defaultValue": "false"
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8744,
										"name": "AbstractPermissionManager.setUserPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 248,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8744,
								"name": "AbstractPermissionManager.setUserPermissions"
							}
						},
						{
							"id": 10107,
							"name": "setWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10108,
									"name": "setWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given permissions for WORLD.",
										"returns": "\n  A resolved promise if successful\n"
									},
									"parameters": [
										{
											"id": 10109,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an set of permission strings\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "reference",
																"id": 10085,
																"name": "ChatPermission"
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "reference",
															"id": 10085,
															"name": "ChatPermission"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 8733,
										"name": "AbstractPermissionManager.setWorldPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
									"line": 153,
									"character": 28
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 8733,
								"name": "AbstractPermissionManager.setWorldPermissions"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								10127,
								10112,
								10101,
								10137,
								10122,
								10139,
								10099,
								10124,
								10110,
								10093,
								10130,
								10115,
								10104,
								10097,
								10133,
								10118,
								10107
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/ChatPermissionManager.ts",
							"line": 35,
							"character": 34
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 8717,
							"typeArguments": [
								{
									"type": "reference",
									"id": 10085,
									"name": "ChatPermission"
								}
							],
							"name": "AbstractPermissionManager"
						}
					]
				},
				{
					"id": 9587,
					"name": "ChatRemovedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[Chat]] is deleted.  See [[ChatService.delete]]"
					},
					"children": [
						{
							"id": 9591,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat that was deleted."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatRemovedEvent.ts",
									"line": 38,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9589,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatRemovedEvent.ts",
									"line": 28,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatRemovedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9588,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatRemovedEvent.ts",
									"line": 23,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "removed"
							},
							"defaultValue": "\"removed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9591,
								9589,
								9588
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/ChatRemovedEvent.ts",
							"line": 22,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 10402,
					"name": "ChatRoom",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A [[ChatRoom]] is a chat construct where users must be connected and present\nto receive messages. A chat room does not have members beyond who is in the\nchat room at any given time. Presence in a chat room is determined by\nsession. If a particular session is not connected and currently in a given\nroom, then messages published to that room will not be delivered to that\nsession.",
						"text": "If your session is disconnected while joined to a `ChatRoom`, you will automatically\nrejoin when connectivity is restored.\n"
					},
					"children": [
						{
							"id": 10420,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 76,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 10143,
								"name": "ChatEvents"
							},
							"defaultValue": "Events",
							"inheritedFrom": {
								"type": "reference",
								"id": 9968,
								"name": "Chat.Events"
							}
						},
						{
							"id": 10451,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10452,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10453,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10454,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 10476,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10477,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 10439,
							"name": "getHistory",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10440,
									"name": "getHistory",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Get the history of events for this [[Chat]]. Events consist of messages,\nusers joining / leaving, and a variety of other events depending on the chat\ntype.",
										"returns": "\n  A promise that will be resolved with an array of Chat events that match\n  the specified search options.\n"
									},
									"parameters": [
										{
											"id": 10441,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "\n  Options that define the events the user would like to fetch.\n"
											},
											"type": {
												"type": "reference",
												"id": 10075,
												"name": "IChatHistorySearchOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 553,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9714,
														"name": "ChatHistoryEntry"
													}
												],
												"name": "PagedData"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9987,
										"name": "Chat.getHistory"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 240,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9987,
								"name": "Chat.getHistory"
							}
						},
						{
							"id": 10413,
							"name": "info",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10414,
									"name": "info",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 10034,
										"name": "MembershipChatInfo"
									},
									"overwrites": {
										"type": "reference",
										"id": 10162,
										"name": "Chat.info"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9961,
										"name": "MembershipChat.info"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 44,
									"character": 13
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 10162,
								"name": "Chat.info"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9961,
								"name": "MembershipChat.info"
							}
						},
						{
							"id": 10425,
							"name": "isJoined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10426,
									"name": "isJoined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the Chat is Joined. Chat's must be joined to perform many\nfunctions, such as sending messages.",
										"returns": "\n  True if the chat is joined, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9973,
										"name": "Chat.isJoined"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 135,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9973,
								"name": "Chat.isJoined"
							}
						},
						{
							"id": 10415,
							"name": "leave",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10416,
									"name": "leave",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Leaves the chat, such that messages will no longer be received. The\nsemantics of this depend on the specific subclass.",
										"returns": "\n  A promise that will be resolved when the Chat is left successfully.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9963,
										"name": "MembershipChat.leave"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 55,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9963,
								"name": "MembershipChat.leave"
							}
						},
						{
							"id": 10436,
							"name": "markSeen",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10437,
									"name": "markSeen",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Marks the specified event number as having been seen by the local user.\nIt is assumed that all events prior or equal to this event have been\nseen by the user.",
										"returns": "\n  A promise acknowledging that seen events have been marked successfully.\n"
									},
									"parameters": [
										{
											"id": 10438,
											"name": "eventNumber",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The event number to mark as set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9984,
										"name": "Chat.markSeen"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 215,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9984,
								"name": "Chat.markSeen"
							}
						},
						{
							"id": 10472,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10473,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10474,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10475,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 10455,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10456,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10457,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10458,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 10459,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10460,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10461,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10462,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 10442,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10443,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions manager for this chat.",
										"returns": "the permissions manager for this chat.\n"
									},
									"type": {
										"type": "reference",
										"id": 10087,
										"name": "ChatPermissionManager"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9990,
										"name": "Chat.permissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 263,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9990,
								"name": "Chat.permissions"
							}
						},
						{
							"id": 10417,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10418,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the specified user from the Chat.",
										"returns": "\n  A promise that is resolved when the specified user is successfully\n  removed from the chat.\n"
									},
									"parameters": [
										{
											"id": 10419,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The user to remove from the Chat."
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9965,
										"name": "MembershipChat.remove"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 74,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9965,
								"name": "MembershipChat.remove"
							}
						},
						{
							"id": 10463,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10464,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 10468,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10469,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10470,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10471,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 10465,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10466,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10467,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 10427,
							"name": "send",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10428,
									"name": "send",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes a chat message to this Chat.",
										"returns": "\n  A promise acknowledging that the message has been received by the\n  server.\n"
									},
									"parameters": [
										{
											"id": 10429,
											"name": "message",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The message to send."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10081,
												"name": "IChatMessageResponse"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9975,
										"name": "Chat.send"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 148,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9975,
								"name": "Chat.send"
							}
						},
						{
							"id": 10423,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10424,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The [[ConvergenceSession]] this [[Chat]] is associated with.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9971,
										"name": "Chat.session"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 115,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9971,
								"name": "Chat.session"
							}
						},
						{
							"id": 10430,
							"name": "setName",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10431,
									"name": "setName",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the short descriptive name for this chat.",
										"returns": "\n  A promise acknowledging that the name has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 10432,
											"name": "name",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9978,
										"name": "Chat.setName"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 173,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9978,
								"name": "Chat.setName"
							}
						},
						{
							"id": 10433,
							"name": "setTopic",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10434,
									"name": "setTopic",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the the current topic being discussed in the chat.",
										"returns": "\n  A promise acknowledging that the topic has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 10435,
											"name": "topic",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The topic to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9981,
										"name": "Chat.setTopic"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 193,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9981,
								"name": "Chat.setTopic"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10420
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								10451,
								10476,
								10439,
								10413,
								10425,
								10415,
								10436,
								10472,
								10455,
								10459,
								10442,
								10417,
								10463,
								10468,
								10465,
								10427,
								10423,
								10430,
								10433
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/ChatRoom.ts",
							"line": 34,
							"character": 21
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9954,
							"name": "MembershipChat"
						}
					]
				},
				{
					"id": 10512,
					"name": "ChatService",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The `ChatService` is the entry point for chat functionality.  Chat is defined\nas textual communication limited to either a fixed set of participants, or a\n[[ChatRoom]] in which any members can send and receive messages.",
						"text": "See the [developer guide](https://docs.convergence.io/guide/chat/overview.html)\nfor a few chat examples.\n"
					},
					"children": [
						{
							"id": 10513,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 95,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 10504,
								"name": "IChatServiceEvents"
							},
							"defaultValue": "Events"
						},
						{
							"id": 10572,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10573,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10574,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10575,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 10541,
							"name": "create",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10542,
									"name": "create",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates a new [[Chat]]. The specific type of [[Chat]] created will depend\non the options provided.",
										"returns": "\n  A promise that will be resolved with the id of the successfully created\n  [[Chat]].\n"
									},
									"parameters": [
										{
											"id": 10543,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The options that define how to create the Chat.\n"
											},
											"type": {
												"type": "reference",
												"id": 10495,
												"name": "ICreateChatChannelOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 321,
									"character": 15
								}
							]
						},
						{
							"id": 10553,
							"name": "direct",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10554,
									"name": "direct",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets a [[DirectChat]] for the communication between the local user and\nanother specified user.",
										"returns": "\n  A Promise resolved with the specified DirectChat.\n"
									},
									"parameters": [
										{
											"id": 10555,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The other user to get the DirectChat for.\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "reference",
														"id": 773,
														"name": "DomainUserId"
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10229,
												"name": "DirectChat"
											}
										],
										"name": "Promise"
									}
								},
								{
									"id": 10556,
									"name": "direct",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets a [[DirectChat]] for the communication between the local user and\na set of users.",
										"returns": "\n  A Promise resolved with the specified DirectChat.\n"
									},
									"parameters": [
										{
											"id": 10557,
											"name": "users",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The other users to get the DirectChat for.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "union",
													"types": [
														{
															"type": "intrinsic",
															"name": "string"
														},
														{
															"type": "reference",
															"id": 773,
															"name": "DomainUserId"
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10229,
												"name": "DirectChat"
											}
										],
										"name": "Promise"
									}
								},
								{
									"id": 10558,
									"name": "direct",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Get multiple [[DirectChat]]s for the communication between the local user and\na sets of users.",
										"returns": "\n  A Promise resolved with the specified DirectChat.\n"
									},
									"parameters": [
										{
											"id": 10559,
											"name": "userLists",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The lists of users that specify the direct chats to get.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "array",
													"elementType": {
														"type": "union",
														"types": [
															{
																"type": "intrinsic",
																"name": "string"
															},
															{
																"type": "reference",
																"id": 773,
																"name": "DomainUserId"
															}
														]
													}
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 10229,
													"name": "DirectChat"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 461,
									"character": 15
								},
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 473,
									"character": 15
								},
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 485,
									"character": 15
								},
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 487,
									"character": 15
								}
							]
						},
						{
							"id": 10597,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10598,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 10529,
							"name": "exists",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10530,
									"name": "exists",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if a Chat with the specified id exists.",
										"returns": "\n  A promise resolved with true if the specified chat exists, or false otherwise.\n"
									},
									"parameters": [
										{
											"id": 10531,
											"name": "chatId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The chat id to check."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "boolean"
											}
										],
										"name": "Promise"
									}
								},
								{
									"id": 10532,
									"name": "exists",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if a set of Chats with the specified ids exist.",
										"returns": "\n  A promise resolved with a map of chat id's to booleans that indicate of\n  the chat exists.\n"
									},
									"parameters": [
										{
											"id": 10533,
											"name": "chatIds",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The chat id to check."
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "intrinsic",
														"name": "boolean"
													}
												],
												"name": "Map"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 203,
									"character": 15
								},
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 214,
									"character": 15
								},
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 216,
									"character": 15
								}
							]
						},
						{
							"id": 10534,
							"name": "get",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10535,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets a [[Chat]] object for the specified id. The exact subclass returned\nwill depend on the type of [[Chat]] the id refers to.",
										"returns": "\n  A Promise that will be resolved with the specified Chat, if it exists.\n"
									},
									"parameters": [
										{
											"id": 10536,
											"name": "chatIds",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The and array of the [[Chat]] ids to get.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "reference",
														"id": 10149,
														"name": "Chat"
													}
												],
												"name": "Map"
											}
										],
										"name": "Promise"
									}
								},
								{
									"id": 10537,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets a [[Chat]] object for the specified id. The exact subclass returned\nwill depend on the type of [[Chat]] the id refers to.",
										"returns": "\n  A Promise that will be resolved with the specified Chats, if they exists.\n"
									},
									"parameters": [
										{
											"id": 10538,
											"name": "chatId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the [[Chat]] to get.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10149,
												"name": "Chat"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 244,
									"character": 12
								},
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 256,
									"character": 12
								},
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 258,
									"character": 12
								}
							]
						},
						{
							"id": 10547,
							"name": "join",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10548,
									"name": "join",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Joins a [[Chat]] with the specified id.  The [[Chat]] must already exist.\nThe type of Chat returned will vary depending on what type of Chat the\nid refers to.",
										"returns": "\n  A Promise resolved with the successfully joined [[Chat]].\n"
									},
									"parameters": [
										{
											"id": 10549,
											"name": "chatId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of an existing [[Chat]] to join."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10149,
												"name": "Chat"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 411,
									"character": 13
								}
							]
						},
						{
							"id": 10539,
							"name": "joined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10540,
									"name": "joined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the [[ChatInfo]] for currently joined [[Chat]]s.",
										"returns": "\n  A promise that is resolved with the joined chats.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 10052,
													"name": "IChatInfo"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 294,
									"character": 15
								}
							]
						},
						{
							"id": 10550,
							"name": "leave",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10551,
									"name": "leave",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Leaves the specified [[Chat]]. The id must refer to an existing chat\nthat the user is presently joined to.",
										"returns": "\n  A Promise that will be resolved when the Chat is successfully left.\n"
									},
									"parameters": [
										{
											"id": 10552,
											"name": "chatId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the Chat to leave."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 437,
									"character": 14
								}
							]
						},
						{
							"id": 10593,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10594,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10595,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10596,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 10576,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10577,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10578,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10579,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 10580,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10581,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10582,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10583,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 10560,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10561,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets a [[ChatPermissionManager]] which allows for querying and modifying\npermissions for the specified chat."
									},
									"parameters": [
										{
											"id": 10562,
											"name": "chatId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 10087,
										"name": "ChatPermissionManager"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 530,
									"character": 20
								}
							]
						},
						{
							"id": 10544,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10545,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the [[Chat]] with the specified id.",
										"returns": "\n  A promise that will be resolved when the Chat is successfully removed.\n"
									},
									"parameters": [
										{
											"id": 10546,
											"name": "chatId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the Chat to remove."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 391,
									"character": 15
								}
							]
						},
						{
							"id": 10584,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10585,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 10589,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10590,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10591,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10592,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 10586,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10587,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10588,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 10526,
							"name": "search",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10527,
									"name": "search",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Searches for existing chats.",
										"returns": "\n  Chat info objects for matching results.\n"
									},
									"parameters": [
										{
											"id": 10528,
											"name": "criteria",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The criteria to search for chats with.\n"
											},
											"type": {
												"type": "reference",
												"id": 10487,
												"name": "IChatSearchCriteria"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 553,
												"typeArguments": [
													{
														"type": "reference",
														"id": 10052,
														"name": "IChatInfo"
													}
												],
												"name": "PagedData"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 171,
									"character": 15
								}
							]
						},
						{
							"id": 10524,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10525,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The current [[ConvergenceSession]].\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 158,
									"character": 16
								}
							]
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10513
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								10572,
								10541,
								10553,
								10597,
								10529,
								10534,
								10547,
								10539,
								10550,
								10593,
								10576,
								10580,
								10560,
								10544,
								10584,
								10589,
								10586,
								10526,
								10524
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/ChatService.ts",
							"line": 93,
							"character": 24
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 9522,
									"name": "IChatEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					]
				},
				{
					"id": 9595,
					"name": "ChatTopicChangedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[Chat]]'s topic changes."
					},
					"children": [
						{
							"id": 9606,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the [[Chat]] on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 29,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9528,
								"name": "ChatEvent.chatId"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9607,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This event's unique sequential number.  This can be useful when e.g. querying for\nevents on a particular chat ([[Chat.getHistory]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9529,
								"name": "ChatEvent.eventNumber"
							}
						},
						{
							"id": 9597,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatTopicChangedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatTopicChangedEvent.NAME",
							"overwrites": {
								"type": "reference",
								"id": 9527,
								"name": "ChatEvent.name"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9608,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when the event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9530,
								"name": "ChatEvent.timestamp"
							}
						},
						{
							"id": 9599,
							"name": "topic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The Chat's new topic"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatTopicChangedEvent.ts",
									"line": 44,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9609,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated wth the event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 45,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9531,
								"name": "ChatEvent.user"
							}
						},
						{
							"id": 9596,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatTopicChangedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "topic_changed"
							},
							"defaultValue": "\"topic_changed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9606,
								9607,
								9597,
								9608,
								9599,
								9609,
								9596
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/ChatTopicChangedEvent.ts",
							"line": 23,
							"character": 34
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9526,
							"name": "ChatEvent"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9737,
					"name": "CreatedChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents the creation of this chat, regardless of type."
					},
					"children": [
						{
							"id": 9761,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9725,
								"name": "ChatHistoryEntry.chatId"
							}
						},
						{
							"id": 9762,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9726,
								"name": "ChatHistoryEntry.eventNumber"
							}
						},
						{
							"id": 9742,
							"name": "members",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The members of the chat at the time of creation"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/CreatedChatHistoryEntry.ts",
									"line": 50,
									"character": 27
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 812,
									"name": "DomainUser"
								}
							}
						},
						{
							"id": 9740,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the created chat, if specified"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/CreatedChatHistoryEntry.ts",
									"line": 40,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9763,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9727,
								"name": "ChatHistoryEntry.timestamp"
							}
						},
						{
							"id": 9741,
							"name": "topic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The topic of the created chat, if specified"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/CreatedChatHistoryEntry.ts",
									"line": 45,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9760,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9724,
								"name": "ChatHistoryEntry.type"
							}
						},
						{
							"id": 9764,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9728,
								"name": "ChatHistoryEntry.user"
							}
						},
						{
							"id": 9738,
							"name": "TYPE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/CreatedChatHistoryEntry.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatHistoryEntry.TYPES.CREATED"
						},
						{
							"id": 9751,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9752,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9753,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9758,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9759,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9756,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9754,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9755,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9757,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9752,
										9753,
										9758,
										9759,
										9756,
										9754,
										9755,
										9757
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9715,
								"name": "ChatHistoryEntry.TYPES"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9761,
								9762,
								9742,
								9740,
								9763,
								9741,
								9760,
								9764,
								9738
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9751
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/CreatedChatHistoryEntry.ts",
							"line": 24,
							"character": 36
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9714,
							"name": "ChatHistoryEntry"
						}
					]
				},
				{
					"id": 10229,
					"name": "DirectChat",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A [[DirectChat]] represents a Chat construct that is defined by a specific\nset of users. The communication for a given DirectChat will always be\nbetween the specified set of users.  This can not change for the life of\nthe DirectChat."
					},
					"children": [
						{
							"id": 10238,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 76,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 10143,
								"name": "ChatEvents"
							},
							"defaultValue": "Events",
							"inheritedFrom": {
								"type": "reference",
								"id": 9968,
								"name": "Chat.Events"
							}
						},
						{
							"id": 10269,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10270,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10271,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10272,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 10294,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10295,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 10257,
							"name": "getHistory",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10258,
									"name": "getHistory",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Get the history of events for this [[Chat]]. Events consist of messages,\nusers joining / leaving, and a variety of other events depending on the chat\ntype.",
										"returns": "\n  A promise that will be resolved with an array of Chat events that match\n  the specified search options.\n"
									},
									"parameters": [
										{
											"id": 10259,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "\n  Options that define the events the user would like to fetch.\n"
											},
											"type": {
												"type": "reference",
												"id": 10075,
												"name": "IChatHistorySearchOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 553,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9714,
														"name": "ChatHistoryEntry"
													}
												],
												"name": "PagedData"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9987,
										"name": "Chat.getHistory"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 240,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9987,
								"name": "Chat.getHistory"
							}
						},
						{
							"id": 10236,
							"name": "info",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10237,
									"name": "info",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 10304,
										"name": "DirectChatInfo"
									},
									"overwrites": {
										"type": "reference",
										"id": 10162,
										"name": "Chat.info"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/DirectChat.ts",
									"line": 44,
									"character": 13
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 10162,
								"name": "Chat.info"
							}
						},
						{
							"id": 10243,
							"name": "isJoined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10244,
									"name": "isJoined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the Chat is Joined. Chat's must be joined to perform many\nfunctions, such as sending messages.",
										"returns": "\n  True if the chat is joined, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9973,
										"name": "Chat.isJoined"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 135,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9973,
								"name": "Chat.isJoined"
							}
						},
						{
							"id": 10254,
							"name": "markSeen",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10255,
									"name": "markSeen",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Marks the specified event number as having been seen by the local user.\nIt is assumed that all events prior or equal to this event have been\nseen by the user.",
										"returns": "\n  A promise acknowledging that seen events have been marked successfully.\n"
									},
									"parameters": [
										{
											"id": 10256,
											"name": "eventNumber",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The event number to mark as set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9984,
										"name": "Chat.markSeen"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 215,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9984,
								"name": "Chat.markSeen"
							}
						},
						{
							"id": 10290,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10291,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10292,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10293,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 10273,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10274,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10275,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10276,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 10277,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10278,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10279,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10280,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 10260,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10261,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions manager for this chat.",
										"returns": "the permissions manager for this chat.\n"
									},
									"type": {
										"type": "reference",
										"id": 10087,
										"name": "ChatPermissionManager"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9990,
										"name": "Chat.permissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 263,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9990,
								"name": "Chat.permissions"
							}
						},
						{
							"id": 10281,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10282,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 10286,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10287,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10288,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10289,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 10283,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10284,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10285,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 10245,
							"name": "send",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10246,
									"name": "send",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes a chat message to this Chat.",
										"returns": "\n  A promise acknowledging that the message has been received by the\n  server.\n"
									},
									"parameters": [
										{
											"id": 10247,
											"name": "message",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The message to send."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10081,
												"name": "IChatMessageResponse"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9975,
										"name": "Chat.send"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 148,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9975,
								"name": "Chat.send"
							}
						},
						{
							"id": 10241,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10242,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The [[ConvergenceSession]] this [[Chat]] is associated with.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9971,
										"name": "Chat.session"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 115,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9971,
								"name": "Chat.session"
							}
						},
						{
							"id": 10248,
							"name": "setName",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10249,
									"name": "setName",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the short descriptive name for this chat.",
										"returns": "\n  A promise acknowledging that the name has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 10250,
											"name": "name",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9978,
										"name": "Chat.setName"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 173,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9978,
								"name": "Chat.setName"
							}
						},
						{
							"id": 10251,
							"name": "setTopic",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10252,
									"name": "setTopic",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the the current topic being discussed in the chat.",
										"returns": "\n  A promise acknowledging that the topic has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 10253,
											"name": "topic",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The topic to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9981,
										"name": "Chat.setTopic"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 193,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9981,
								"name": "Chat.setTopic"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10238
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								10269,
								10294,
								10257,
								10236,
								10243,
								10254,
								10290,
								10273,
								10277,
								10260,
								10281,
								10286,
								10283,
								10245,
								10241,
								10248,
								10251
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/DirectChat.ts",
							"line": 31,
							"character": 23
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 10149,
							"name": "Chat"
						}
					]
				},
				{
					"id": 9954,
					"name": "MembershipChat",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true,
						"isAbstract": true
					},
					"comment": {
						"shortText": "A [[MembershipChat]] chat is a chat construct that has a specific set of\nusers who belong to that chat. A [[MembershipChat]] keeps track of which\nusers are part of the chat."
					},
					"children": [
						{
							"id": 9968,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 76,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 10143,
								"name": "ChatEvents"
							},
							"defaultValue": "Events",
							"inheritedFrom": {
								"type": "reference",
								"id": 9968,
								"name": "Chat.Events"
							}
						},
						{
							"id": 9999,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10000,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10001,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10002,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 10024,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10025,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 9987,
							"name": "getHistory",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9988,
									"name": "getHistory",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Get the history of events for this [[Chat]]. Events consist of messages,\nusers joining / leaving, and a variety of other events depending on the chat\ntype.",
										"returns": "\n  A promise that will be resolved with an array of Chat events that match\n  the specified search options.\n"
									},
									"parameters": [
										{
											"id": 9989,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "\n  Options that define the events the user would like to fetch.\n"
											},
											"type": {
												"type": "reference",
												"id": 10075,
												"name": "IChatHistorySearchOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 553,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9714,
														"name": "ChatHistoryEntry"
													}
												],
												"name": "PagedData"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9987,
										"name": "Chat.getHistory"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 240,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9987,
								"name": "Chat.getHistory"
							}
						},
						{
							"id": 9961,
							"name": "info",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9962,
									"name": "info",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 10034,
										"name": "MembershipChatInfo"
									},
									"overwrites": {
										"type": "reference",
										"id": 10162,
										"name": "Chat.info"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 44,
									"character": 13
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 10162,
								"name": "Chat.info"
							}
						},
						{
							"id": 9973,
							"name": "isJoined",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9974,
									"name": "isJoined",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the Chat is Joined. Chat's must be joined to perform many\nfunctions, such as sending messages.",
										"returns": "\n  True if the chat is joined, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9973,
										"name": "Chat.isJoined"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 135,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9973,
								"name": "Chat.isJoined"
							}
						},
						{
							"id": 9963,
							"name": "leave",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9964,
									"name": "leave",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Leaves the chat, such that messages will no longer be received. The\nsemantics of this depend on the specific subclass.",
										"returns": "\n  A promise that will be resolved when the Chat is left successfully.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 55,
									"character": 14
								}
							]
						},
						{
							"id": 9984,
							"name": "markSeen",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9985,
									"name": "markSeen",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Marks the specified event number as having been seen by the local user.\nIt is assumed that all events prior or equal to this event have been\nseen by the user.",
										"returns": "\n  A promise acknowledging that seen events have been marked successfully.\n"
									},
									"parameters": [
										{
											"id": 9986,
											"name": "eventNumber",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The event number to mark as set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9984,
										"name": "Chat.markSeen"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 215,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9984,
								"name": "Chat.markSeen"
							}
						},
						{
							"id": 10020,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10021,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10022,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10023,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 10003,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10004,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10005,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10006,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 10007,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10008,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10009,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10010,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 9990,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9991,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions manager for this chat.",
										"returns": "the permissions manager for this chat.\n"
									},
									"type": {
										"type": "reference",
										"id": 10087,
										"name": "ChatPermissionManager"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9990,
										"name": "Chat.permissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 263,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9990,
								"name": "Chat.permissions"
							}
						},
						{
							"id": 9965,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9966,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the specified user from the Chat.",
										"returns": "\n  A promise that is resolved when the specified user is successfully\n  removed from the chat.\n"
									},
									"parameters": [
										{
											"id": 9967,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The user to remove from the Chat."
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 74,
									"character": 15
								}
							]
						},
						{
							"id": 10011,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10012,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 10016,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10017,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10018,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 10019,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9522,
														"name": "IChatEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 10013,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 10014,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 10015,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9522,
												"name": "IChatEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 9975,
							"name": "send",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9976,
									"name": "send",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes a chat message to this Chat.",
										"returns": "\n  A promise acknowledging that the message has been received by the\n  server.\n"
									},
									"parameters": [
										{
											"id": 9977,
											"name": "message",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The message to send."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 10081,
												"name": "IChatMessageResponse"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9975,
										"name": "Chat.send"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 148,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9975,
								"name": "Chat.send"
							}
						},
						{
							"id": 9971,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9972,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The [[ConvergenceSession]] this [[Chat]] is associated with.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9971,
										"name": "Chat.session"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 115,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9971,
								"name": "Chat.session"
							}
						},
						{
							"id": 9978,
							"name": "setName",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9979,
									"name": "setName",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the short descriptive name for this chat.",
										"returns": "\n  A promise acknowledging that the name has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 9980,
											"name": "name",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9978,
										"name": "Chat.setName"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 173,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9978,
								"name": "Chat.setName"
							}
						},
						{
							"id": 9981,
							"name": "setTopic",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9982,
									"name": "setTopic",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the the current topic being discussed in the chat.",
										"returns": "\n  A promise acknowledging that the topic has been successfully set.\n"
									},
									"parameters": [
										{
											"id": 9983,
											"name": "topic",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The topic to set.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 9981,
										"name": "Chat.setTopic"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 193,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 9981,
								"name": "Chat.setTopic"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9968
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								9999,
								10024,
								9987,
								9961,
								9973,
								9963,
								9984,
								10020,
								10003,
								10007,
								9990,
								9965,
								10011,
								10016,
								10013,
								9975,
								9971,
								9978,
								9981
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/MembershipChat.ts",
							"line": 31,
							"character": 36
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 10149,
							"name": "Chat"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 10318,
							"name": "ChatChannel"
						},
						{
							"type": "reference",
							"id": 10402,
							"name": "ChatRoom"
						}
					]
				},
				{
					"id": 9766,
					"name": "MessageChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a message that was sent to this chat.  Analogous to a [[ChatMessageEvent]]."
					},
					"children": [
						{
							"id": 9786,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9725,
								"name": "ChatHistoryEntry.chatId"
							}
						},
						{
							"id": 9787,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9726,
								"name": "ChatHistoryEntry.eventNumber"
							}
						},
						{
							"id": 9769,
							"name": "message",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The text of the message."
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/MessageChatHistoryEntry.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9788,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9727,
								"name": "ChatHistoryEntry.timestamp"
							}
						},
						{
							"id": 9785,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9724,
								"name": "ChatHistoryEntry.type"
							}
						},
						{
							"id": 9789,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9728,
								"name": "ChatHistoryEntry.user"
							}
						},
						{
							"id": 9767,
							"name": "TYPE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/MessageChatHistoryEntry.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatHistoryEntry.TYPES.MESSAGE"
						},
						{
							"id": 9776,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9777,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9778,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9783,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9784,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9781,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9779,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9780,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9782,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9777,
										9778,
										9783,
										9784,
										9781,
										9779,
										9780,
										9782
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9715,
								"name": "ChatHistoryEntry.TYPES"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9786,
								9787,
								9769,
								9788,
								9785,
								9789,
								9767
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9776
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/MessageChatHistoryEntry.ts",
							"line": 24,
							"character": 36
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9714,
							"name": "ChatHistoryEntry"
						}
					]
				},
				{
					"id": 9791,
					"name": "NameChangedChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a chat's name being changed.  Analogous to a [[ChatNameChangedEvent]]."
					},
					"children": [
						{
							"id": 9811,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9725,
								"name": "ChatHistoryEntry.chatId"
							}
						},
						{
							"id": 9812,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9726,
								"name": "ChatHistoryEntry.eventNumber"
							}
						},
						{
							"id": 9794,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The new name for the chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/NameChangedChatHistoryEntry.ts",
									"line": 40,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9813,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9727,
								"name": "ChatHistoryEntry.timestamp"
							}
						},
						{
							"id": 9810,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9724,
								"name": "ChatHistoryEntry.type"
							}
						},
						{
							"id": 9814,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9728,
								"name": "ChatHistoryEntry.user"
							}
						},
						{
							"id": 9792,
							"name": "TYPE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/NameChangedChatHistoryEntry.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatHistoryEntry.TYPES.NAME_CHANGED"
						},
						{
							"id": 9801,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9802,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9803,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9808,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9809,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9806,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9804,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9805,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9807,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9802,
										9803,
										9808,
										9809,
										9806,
										9804,
										9805,
										9807
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9715,
								"name": "ChatHistoryEntry.TYPES"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9811,
								9812,
								9794,
								9813,
								9810,
								9814,
								9792
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9801
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/NameChangedChatHistoryEntry.ts",
							"line": 24,
							"character": 40
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9714,
							"name": "ChatHistoryEntry"
						}
					]
				},
				{
					"id": 9816,
					"name": "TopicChangedChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a chat's topic being changed.  Analogous to a [[ChatTopicChangedEvent]]."
					},
					"children": [
						{
							"id": 9836,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9725,
								"name": "ChatHistoryEntry.chatId"
							}
						},
						{
							"id": 9837,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9726,
								"name": "ChatHistoryEntry.eventNumber"
							}
						},
						{
							"id": 9838,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9727,
								"name": "ChatHistoryEntry.timestamp"
							}
						},
						{
							"id": 9819,
							"name": "topic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The new topic for the chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/TopicChangedChatHistoryEntry.ts",
									"line": 40,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9835,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9724,
								"name": "ChatHistoryEntry.type"
							}
						},
						{
							"id": 9839,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9728,
								"name": "ChatHistoryEntry.user"
							}
						},
						{
							"id": 9817,
							"name": "TYPE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/TopicChangedChatHistoryEntry.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatHistoryEntry.TYPES.TOPIC_CHANGED"
						},
						{
							"id": 9826,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9827,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9828,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9833,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9834,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9831,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9829,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9830,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9832,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9827,
										9828,
										9833,
										9834,
										9831,
										9829,
										9830,
										9832
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9715,
								"name": "ChatHistoryEntry.TYPES"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9836,
								9837,
								9838,
								9819,
								9835,
								9839,
								9817
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9826
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/TopicChangedChatHistoryEntry.ts",
							"line": 24,
							"character": 41
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9714,
							"name": "ChatHistoryEntry"
						}
					]
				},
				{
					"id": 9841,
					"name": "UserAddedChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a user being added this chat.  Analogous to a [[UserAddedEvent]]."
					},
					"children": [
						{
							"id": 9844,
							"name": "addedUser",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that was added."
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/UserAddedChatHistoryEntry.ts",
									"line": 40,
									"character": 29
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 9861,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9725,
								"name": "ChatHistoryEntry.chatId"
							}
						},
						{
							"id": 9862,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9726,
								"name": "ChatHistoryEntry.eventNumber"
							}
						},
						{
							"id": 9863,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9727,
								"name": "ChatHistoryEntry.timestamp"
							}
						},
						{
							"id": 9860,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9724,
								"name": "ChatHistoryEntry.type"
							}
						},
						{
							"id": 9864,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9728,
								"name": "ChatHistoryEntry.user"
							}
						},
						{
							"id": 9842,
							"name": "TYPE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/UserAddedChatHistoryEntry.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatHistoryEntry.TYPES.USER_ADDED"
						},
						{
							"id": 9851,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9852,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9853,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9858,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9859,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9856,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9854,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9855,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9857,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9852,
										9853,
										9858,
										9859,
										9856,
										9854,
										9855,
										9857
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9715,
								"name": "ChatHistoryEntry.TYPES"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9844,
								9861,
								9862,
								9863,
								9860,
								9864,
								9842
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9851
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/UserAddedChatHistoryEntry.ts",
							"line": 24,
							"character": 38
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9714,
							"name": "ChatHistoryEntry"
						}
					]
				},
				{
					"id": 9611,
					"name": "UserAddedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a new user is added to a particular [[Chat]]."
					},
					"children": [
						{
							"id": 9615,
							"name": "addedUser",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that was added"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserAddedEvent.ts",
									"line": 44,
									"character": 29
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 9622,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the [[Chat]] on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 29,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9528,
								"name": "ChatEvent.chatId"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9623,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This event's unique sequential number.  This can be useful when e.g. querying for\nevents on a particular chat ([[Chat.getHistory]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9529,
								"name": "ChatEvent.eventNumber"
							}
						},
						{
							"id": 9613,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserAddedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "UserAddedEvent.NAME",
							"overwrites": {
								"type": "reference",
								"id": 9527,
								"name": "ChatEvent.name"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9624,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when the event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9530,
								"name": "ChatEvent.timestamp"
							}
						},
						{
							"id": 9625,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated wth the event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 45,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9531,
								"name": "ChatEvent.user"
							}
						},
						{
							"id": 9612,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserAddedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "user_added"
							},
							"defaultValue": "\"user_added\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9615,
								9622,
								9623,
								9613,
								9624,
								9625,
								9612
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/UserAddedEvent.ts",
							"line": 23,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9526,
							"name": "ChatEvent"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9866,
					"name": "UserJoinedChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a user joining this chat.  Analogous to a [[UserJoinedEvent]]."
					},
					"children": [
						{
							"id": 9884,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9725,
								"name": "ChatHistoryEntry.chatId"
							}
						},
						{
							"id": 9885,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9726,
								"name": "ChatHistoryEntry.eventNumber"
							}
						},
						{
							"id": 9886,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9727,
								"name": "ChatHistoryEntry.timestamp"
							}
						},
						{
							"id": 9883,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9724,
								"name": "ChatHistoryEntry.type"
							}
						},
						{
							"id": 9887,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9728,
								"name": "ChatHistoryEntry.user"
							}
						},
						{
							"id": 9867,
							"name": "TYPE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/UserJoinedChatHistoryEntry.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatHistoryEntry.TYPES.USER_JOINED"
						},
						{
							"id": 9874,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9875,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9876,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9881,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9882,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9879,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9877,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9878,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9880,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9875,
										9876,
										9881,
										9882,
										9879,
										9877,
										9878,
										9880
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9715,
								"name": "ChatHistoryEntry.TYPES"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9884,
								9885,
								9886,
								9883,
								9887,
								9867
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9874
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/UserJoinedChatHistoryEntry.ts",
							"line": 24,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9714,
							"name": "ChatHistoryEntry"
						}
					]
				},
				{
					"id": 9627,
					"name": "UserJoinedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[DomainUser]] joins a [[Chat]]."
					},
					"children": [
						{
							"id": 9636,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the [[Chat]] on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 29,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9528,
								"name": "ChatEvent.chatId"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9637,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This event's unique sequential number.  This can be useful when e.g. querying for\nevents on a particular chat ([[Chat.getHistory]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9529,
								"name": "ChatEvent.eventNumber"
							}
						},
						{
							"id": 9629,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserJoinedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "UserJoinedEvent.NAME",
							"overwrites": {
								"type": "reference",
								"id": 9527,
								"name": "ChatEvent.name"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9638,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when the event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9530,
								"name": "ChatEvent.timestamp"
							}
						},
						{
							"id": 9639,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated wth the event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 45,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9531,
								"name": "ChatEvent.user"
							}
						},
						{
							"id": 9628,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserJoinedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "user_joined"
							},
							"defaultValue": "\"user_joined\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9636,
								9637,
								9629,
								9638,
								9639,
								9628
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/UserJoinedEvent.ts",
							"line": 23,
							"character": 28
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9526,
							"name": "ChatEvent"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9889,
					"name": "UserLeftChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a user leaving this chat.  Analogous to a [[UserLeftEvent]]."
					},
					"children": [
						{
							"id": 9907,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9725,
								"name": "ChatHistoryEntry.chatId"
							}
						},
						{
							"id": 9908,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9726,
								"name": "ChatHistoryEntry.eventNumber"
							}
						},
						{
							"id": 9909,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9727,
								"name": "ChatHistoryEntry.timestamp"
							}
						},
						{
							"id": 9906,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9724,
								"name": "ChatHistoryEntry.type"
							}
						},
						{
							"id": 9910,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9728,
								"name": "ChatHistoryEntry.user"
							}
						},
						{
							"id": 9890,
							"name": "TYPE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/UserLeftChatHistoryEntry.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatHistoryEntry.TYPES.USER_LEFT"
						},
						{
							"id": 9897,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9898,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9899,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9904,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9905,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9902,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9900,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9901,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9903,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9898,
										9899,
										9904,
										9905,
										9902,
										9900,
										9901,
										9903
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9715,
								"name": "ChatHistoryEntry.TYPES"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9907,
								9908,
								9909,
								9906,
								9910,
								9890
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9897
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/UserLeftChatHistoryEntry.ts",
							"line": 24,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9714,
							"name": "ChatHistoryEntry"
						}
					]
				},
				{
					"id": 9641,
					"name": "UserLeftEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[DomainUser]] leaves a [[Chat]]."
					},
					"children": [
						{
							"id": 9650,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the [[Chat]] on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 29,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9528,
								"name": "ChatEvent.chatId"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9651,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This event's unique sequential number.  This can be useful when e.g. querying for\nevents on a particular chat ([[Chat.getHistory]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9529,
								"name": "ChatEvent.eventNumber"
							}
						},
						{
							"id": 9643,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserLeftEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "UserLeftEvent.NAME",
							"overwrites": {
								"type": "reference",
								"id": 9527,
								"name": "ChatEvent.name"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9652,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when the event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9530,
								"name": "ChatEvent.timestamp"
							}
						},
						{
							"id": 9653,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated wth the event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 45,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9531,
								"name": "ChatEvent.user"
							}
						},
						{
							"id": 9642,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserLeftEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "user_left"
							},
							"defaultValue": "\"user_left\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9650,
								9651,
								9643,
								9652,
								9653,
								9642
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/UserLeftEvent.ts",
							"line": 23,
							"character": 26
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9526,
							"name": "ChatEvent"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 9912,
					"name": "UserRemovedChatHistoryEntry",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a user being removed from this chat.  Analogous to a [[UserRemovedEvent]]."
					},
					"children": [
						{
							"id": 9932,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the chat on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 62,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9725,
								"name": "ChatHistoryEntry.chatId"
							}
						},
						{
							"id": 9933,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique sequential ID of this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 67,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9726,
								"name": "ChatHistoryEntry.eventNumber"
							}
						},
						{
							"id": 9915,
							"name": "removedUser",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that was removed."
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/UserRemovedChatHistoryEntry.ts",
									"line": 40,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 9934,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 72,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9727,
								"name": "ChatHistoryEntry.timestamp"
							}
						},
						{
							"id": 9931,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of event. One of [[Types]]"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 57,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9724,
								"name": "ChatHistoryEntry.type"
							}
						},
						{
							"id": 9935,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that initiated this event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 77,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9728,
								"name": "ChatHistoryEntry.user"
							}
						},
						{
							"id": 9913,
							"name": "TYPE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/UserRemovedChatHistoryEntry.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ChatHistoryEntry.TYPES.USER_REMOVED"
						},
						{
							"id": 9922,
							"name": "TYPES",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"children": [
								{
									"id": 9923,
									"name": "CREATED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 44,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"created\""
								},
								{
									"id": 9924,
									"name": "MESSAGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 45,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"message\""
								},
								{
									"id": 9929,
									"name": "NAME_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 50,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"name_changed\""
								},
								{
									"id": 9930,
									"name": "TOPIC_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 51,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"topic_changed\""
								},
								{
									"id": 9927,
									"name": "USER_ADDED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 48,
											"character": 14
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_added\""
								},
								{
									"id": 9925,
									"name": "USER_JOINED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 46,
											"character": 15
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_joined\""
								},
								{
									"id": 9926,
									"name": "USER_LEFT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 47,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_left\""
								},
								{
									"id": 9928,
									"name": "USER_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
											"line": 49,
											"character": 16
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "\"user_removed\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9923,
										9924,
										9929,
										9930,
										9927,
										9925,
										9926,
										9928
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 43,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9715,
								"name": "ChatHistoryEntry.TYPES"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9932,
								9933,
								9915,
								9934,
								9931,
								9935,
								9913
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9922
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/UserRemovedChatHistoryEntry.ts",
							"line": 24,
							"character": 40
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9714,
							"name": "ChatHistoryEntry"
						}
					]
				},
				{
					"id": 9655,
					"name": "UserRemovedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a particular [[DomainUser]] is removed from a [[Chat]]."
					},
					"children": [
						{
							"id": 9666,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the [[Chat]] on which this event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 29,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9528,
								"name": "ChatEvent.chatId"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9523,
								"name": "IChatEvent.chatId"
							}
						},
						{
							"id": 9667,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This event's unique sequential number.  This can be useful when e.g. querying for\nevents on a particular chat ([[Chat.getHistory]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9529,
								"name": "ChatEvent.eventNumber"
							}
						},
						{
							"id": 9657,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserRemovedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "UserRemovedEvent.NAME",
							"overwrites": {
								"type": "reference",
								"id": 9527,
								"name": "ChatEvent.name"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9524,
								"name": "IChatEvent.name"
							}
						},
						{
							"id": 9659,
							"name": "removedUser",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user that was removed"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserRemovedEvent.ts",
									"line": 44,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 9668,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when the event occurred"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 40,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9530,
								"name": "ChatEvent.timestamp"
							}
						},
						{
							"id": 9669,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated wth the event"
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/ChatEvent.ts",
									"line": 45,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 9531,
								"name": "ChatEvent.user"
							}
						},
						{
							"id": 9656,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/UserRemovedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "user_removed"
							},
							"defaultValue": "\"user_removed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9666,
								9667,
								9657,
								9659,
								9668,
								9669,
								9656
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/UserRemovedEvent.ts",
							"line": 23,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 9526,
							"name": "ChatEvent"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9522,
							"name": "IChatEvent"
						}
					]
				},
				{
					"id": 10143,
					"name": "ChatEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The events that could be emitted from a particular [[Chat]]."
					},
					"children": [
						{
							"id": 10144,
							"name": "MESSAGE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 52,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10147,
							"name": "USER_ADDED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 55,
									"character": 21
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10145,
							"name": "USER_JOINED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 53,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10146,
							"name": "USER_LEFT",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 54,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10148,
							"name": "USER_REMOVED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/Chat.ts",
									"line": 56,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10144,
								10147,
								10145,
								10146,
								10148
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/Chat.ts",
							"line": 51,
							"character": 27
						}
					]
				},
				{
					"id": 9705,
					"name": "ChatHistoryEntryTypes",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "All the possible chat history entries."
					},
					"children": [
						{
							"id": 9706,
							"name": "CREATED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 24,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9707,
							"name": "MESSAGE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 25,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9712,
							"name": "NAME_CHANGED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 30,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9713,
							"name": "TOPIC_CHANGED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 31,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9710,
							"name": "USER_ADDED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 28,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9708,
							"name": "USER_JOINED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 26,
									"character": 13
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9709,
							"name": "USER_LEFT",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 27,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9711,
							"name": "USER_REMOVED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
									"line": 29,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9706,
								9707,
								9712,
								9713,
								9710,
								9708,
								9709,
								9711
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/history/ChatHistoryEntry.ts",
							"line": 23,
							"character": 38
						}
					]
				},
				{
					"id": 10304,
					"name": "DirectChatInfo",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ChatInfo]] relevant to a [[DirectChat]]."
					},
					"children": [
						{
							"id": 10307,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique ID for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 44,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10037,
								"name": "IChatInfo.chatId"
							}
						},
						{
							"id": 10306,
							"name": "chatType",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of chat: [[ChatRoom]], [[ChatChannel]] or [[DirectChat]]."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 39,
									"character": 19
								}
							],
							"type": {
								"type": "reference",
								"id": 10068,
								"name": "ChatType"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10036,
								"name": "IChatInfo.chatType"
							}
						},
						{
							"id": 10311,
							"name": "createdTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when this chat was created."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 66,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10040,
								"name": "IChatInfo.createdTime"
							}
						},
						{
							"id": 10316,
							"name": "joined",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if the local user is joined to this Chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 91,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10045,
								"name": "IChatInfo.joined"
							}
						},
						{
							"id": 10313,
							"name": "lastEventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sequential number of the most recent event for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 76,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10042,
								"name": "IChatInfo.lastEventNumber"
							}
						},
						{
							"id": 10312,
							"name": "lastEventTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp of the most recent event for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 71,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10041,
								"name": "IChatInfo.lastEventTime"
							}
						},
						{
							"id": 10314,
							"name": "maxSeenEventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of the most recent event which *any* member has received."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 81,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10043,
								"name": "IChatInfo.maxSeenEventNumber"
							}
						},
						{
							"id": 10315,
							"name": "members",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An array of the current members of this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 86,
									"character": 18
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 10048,
									"name": "IChatMember"
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10044,
								"name": "IChatInfo.members"
							}
						},
						{
							"id": 10308,
							"name": "membership",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Whether this chat is public or private.  In a private chat, members must be\nexplicitly added by another member with the appropriate permissions\n(see [[ChatPermission]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 51,
									"character": 21
								}
							],
							"type": {
								"type": "reference",
								"id": 10046,
								"name": "ChatMembership"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10055,
								"name": "IChatInfo.membership"
							}
						},
						{
							"id": 10309,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An optional name for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 56,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10038,
								"name": "IChatInfo.name"
							}
						},
						{
							"id": 10305,
							"name": "otherUsers",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/DirectChat.ts",
									"line": 58,
									"character": 21
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 10048,
									"name": "IChatMember"
								}
							}
						},
						{
							"id": 10310,
							"name": "topic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An optional topic for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 61,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10039,
								"name": "IChatInfo.topic"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10307,
								10306,
								10311,
								10316,
								10313,
								10312,
								10314,
								10315,
								10308,
								10309,
								10305,
								10310
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/DirectChat.ts",
							"line": 57,
							"character": 31
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 10052,
							"name": "IChatInfo"
						}
					]
				},
				{
					"id": 9522,
					"name": "IChatEvent",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The superclass for all chat-related events."
					},
					"children": [
						{
							"id": 9523,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/events/IChatEvent.ts",
									"line": 23,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9524,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/util/IConvergenceEvent.ts",
									"line": 30,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9523,
								9524
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/events/IChatEvent.ts",
							"line": 22,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 9526,
							"name": "ChatEvent"
						},
						{
							"type": "reference",
							"id": 9671,
							"name": "ChatEventsMarkedSeenEvent"
						},
						{
							"type": "reference",
							"id": 9539,
							"name": "ChatJoinedEvent"
						},
						{
							"type": "reference",
							"id": 9547,
							"name": "ChatLeftEvent"
						},
						{
							"type": "reference",
							"id": 9555,
							"name": "ChatMessageEvent"
						},
						{
							"type": "reference",
							"id": 9571,
							"name": "ChatNameChangedEvent"
						},
						{
							"type": "reference",
							"id": 9587,
							"name": "ChatRemovedEvent"
						},
						{
							"type": "reference",
							"id": 9595,
							"name": "ChatTopicChangedEvent"
						},
						{
							"type": "reference",
							"id": 9611,
							"name": "UserAddedEvent"
						},
						{
							"type": "reference",
							"id": 9627,
							"name": "UserJoinedEvent"
						},
						{
							"type": "reference",
							"id": 9641,
							"name": "UserLeftEvent"
						},
						{
							"type": "reference",
							"id": 9655,
							"name": "UserRemovedEvent"
						}
					]
				},
				{
					"id": 10075,
					"name": "IChatHistorySearchOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An object containing some options for fetching chat history. By default, all\nevents in this chat are returned, not just the actual messages.  Also, by default\nevents are returned in descending order, starting from the end.",
						"text": "To return the last 25 messages:\n```\nchat.getHistory({\n  limit: 25,\n  eventFilter: [ChatMessageEvent.NAME]\n})\n```\n\nTo return the first 10 events:\n```\nchat.getHistory({\n  startEvent: 0,\n  limit: 10,\n  forward: true\n})\n```\n"
					},
					"children": [
						{
							"id": 10079,
							"name": "eventFilter",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "An array of [[ChatHistoryEntry]] types to which the results will be limited"
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatHistorySearchOptions.ts",
									"line": 60,
									"character": 13
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						},
						{
							"id": 10078,
							"name": "forward",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Set to true to return events in ascending order"
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatHistorySearchOptions.ts",
									"line": 55,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 10077,
							"name": "limit",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "The maximum number of query results"
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatHistorySearchOptions.ts",
									"line": 50,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 10076,
							"name": "startEvent",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "The sequential event number at which to start the query.",
								"text": "[[ChatInfo.lastEventNumber]] could be a useful piece of information here.\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatHistorySearchOptions.ts",
									"line": 45,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10079,
								10078,
								10077,
								10076
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/IChatHistorySearchOptions.ts",
							"line": 39,
							"character": 42
						}
					]
				},
				{
					"id": 10052,
					"name": "IChatInfo",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The relevant metadata for a [[Chat]]."
					},
					"children": [
						{
							"id": 10054,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique ID for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 44,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10053,
							"name": "chatType",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of chat: [[ChatRoom]], [[ChatChannel]] or [[DirectChat]]."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 39,
									"character": 19
								}
							],
							"type": {
								"type": "reference",
								"id": 10068,
								"name": "ChatType"
							}
						},
						{
							"id": 10058,
							"name": "createdTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when this chat was created."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 66,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 10063,
							"name": "joined",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if the local user is joined to this Chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 91,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 10060,
							"name": "lastEventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sequential number of the most recent event for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 76,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 10059,
							"name": "lastEventTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp of the most recent event for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 71,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 10061,
							"name": "maxSeenEventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of the most recent event which *any* member has received."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 81,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 10062,
							"name": "members",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An array of the current members of this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 86,
									"character": 18
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 10048,
									"name": "IChatMember"
								}
							}
						},
						{
							"id": 10055,
							"name": "membership",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Whether this chat is public or private.  In a private chat, members must be\nexplicitly added by another member with the appropriate permissions\n(see [[ChatPermission]])."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 51,
									"character": 21
								}
							],
							"type": {
								"type": "reference",
								"id": 10046,
								"name": "ChatMembership"
							}
						},
						{
							"id": 10056,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An optional name for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 56,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10057,
							"name": "topic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An optional topic for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 61,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10054,
								10053,
								10058,
								10063,
								10060,
								10059,
								10061,
								10062,
								10055,
								10056,
								10057
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/IChatInfo.ts",
							"line": 34,
							"character": 26
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 10034,
							"name": "MembershipChatInfo"
						},
						{
							"type": "reference",
							"id": 10304,
							"name": "DirectChatInfo"
						}
					]
				},
				{
					"id": 10048,
					"name": "IChatMember",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A member, or participant, of a Chat.  Has slightly different semantics depending on the\ntype of [[Chat]]."
					},
					"children": [
						{
							"id": 10050,
							"name": "maxSeenEventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of the most recent event which this member has received.  This is useful\nfor e.g. querying ([[Chat.getHistory]]) for events that a member hasn't yet seen."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatMember.ts",
									"line": 33,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 10049,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The chat member's underlying user."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatMember.ts",
									"line": 27,
									"character": 15
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10050,
								10049
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/IChatMember.ts",
							"line": 23,
							"character": 28
						}
					]
				},
				{
					"id": 10081,
					"name": "IChatMessageResponse",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The data in this interface is returned when a chat message\nhas been confirmed to have been sent."
					},
					"children": [
						{
							"id": 10082,
							"name": "eventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The event number that the sent message event was assigned\nby the server."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatMessageResponse.ts",
									"line": 27,
									"character": 13
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 10083,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The timestamp the server assigned to the message."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatMessageResponse.ts",
									"line": 32,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10082,
								10083
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/IChatMessageResponse.ts",
							"line": 21,
							"character": 37
						}
					]
				},
				{
					"id": 10487,
					"name": "IChatSearchCriteria",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This interface represents the search criteria that can be used\nwhen searching for chat messages."
					},
					"children": [
						{
							"id": 10493,
							"name": "limit",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatSearchCriteria.ts",
									"line": 30,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 10491,
							"name": "membership",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatSearchCriteria.ts",
									"line": 28,
									"character": 12
								}
							],
							"type": {
								"type": "reference",
								"id": 10046,
								"name": "ChatMembership"
							}
						},
						{
							"id": 10492,
							"name": "offset",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatSearchCriteria.ts",
									"line": 29,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 10489,
							"name": "searchFields",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatSearchCriteria.ts",
									"line": 26,
									"character": 14
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "union",
									"types": [
										{
											"type": "stringLiteral",
											"value": "id"
										},
										{
											"type": "stringLiteral",
											"value": "topic"
										},
										{
											"type": "stringLiteral",
											"value": "name"
										}
									]
								}
							}
						},
						{
							"id": 10488,
							"name": "searchTerm",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatSearchCriteria.ts",
									"line": 25,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10490,
							"name": "types",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatSearchCriteria.ts",
									"line": 27,
									"character": 7
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 10068,
									"name": "ChatType"
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10493,
								10491,
								10492,
								10489,
								10488,
								10490
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/ChatSearchCriteria.ts",
							"line": 24,
							"character": 36
						}
					]
				},
				{
					"id": 10504,
					"name": "IChatServiceEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "All the possible events that could be emitted from the [[ChatService]]."
					},
					"children": [
						{
							"id": 10510,
							"name": "CHANNEL_JOINED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 67,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10511,
							"name": "CHANNEL_LEFT",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 68,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10505,
							"name": "MESSAGE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 62,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10508,
							"name": "USER_ADDED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 65,
									"character": 21
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10506,
							"name": "USER_JOINED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 63,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10507,
							"name": "USER_LEFT",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 64,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10509,
							"name": "USER_REMOVED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/ChatService.ts",
									"line": 66,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10510,
								10511,
								10505,
								10508,
								10506,
								10507,
								10509
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/ChatService.ts",
							"line": 61,
							"character": 43
						}
					]
				},
				{
					"id": 10495,
					"name": "ICreateChatChannelOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A set of options when creating a [[ChatChannel]] or [[ChatRoom]]."
					},
					"children": [
						{
							"id": 10498,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "The ID which the new chat should have.  Returns an error if a chat with this\nID already exists AND `ignoreExistsError` is not true."
							},
							"sources": [
								{
									"fileName": "src/main/chat/ICreateChatChannelOptions.ts",
									"line": 40,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10502,
							"name": "ignoreExistsError",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Set to true to ignore an error in the case of an existing desired Chat ID"
							},
							"sources": [
								{
									"fileName": "src/main/chat/ICreateChatChannelOptions.ts",
									"line": 60,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 10501,
							"name": "members",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "An array of [[DomainUser]]s to which this chat is available."
							},
							"sources": [
								{
									"fileName": "src/main/chat/ICreateChatChannelOptions.ts",
									"line": 55,
									"character": 9
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 767,
									"name": "DomainUserIdentifier"
								}
							}
						},
						{
							"id": 10497,
							"name": "membership",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The visibility of the chat room.  Must be \"public\" or \"private\".",
								"text": "Private chats cannot be joined by a user, but rather added ([[ChatChannel.add]])\nby another member with the appropriate permissions\n"
							},
							"sources": [
								{
									"fileName": "src/main/chat/ICreateChatChannelOptions.ts",
									"line": 34,
									"character": 12
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "stringLiteral",
										"value": "public"
									},
									{
										"type": "stringLiteral",
										"value": "private"
									}
								]
							}
						},
						{
							"id": 10499,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "An optional name for the chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/ICreateChatChannelOptions.ts",
									"line": 45,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10500,
							"name": "topic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "An optional topic for the chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/ICreateChatChannelOptions.ts",
									"line": 50,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 10496,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The type of chat.  Must be \"channel\" or \"room\"."
							},
							"sources": [
								{
									"fileName": "src/main/chat/ICreateChatChannelOptions.ts",
									"line": 26,
									"character": 6
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "stringLiteral",
										"value": "channel"
									},
									{
										"type": "stringLiteral",
										"value": "room"
									}
								]
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10498,
								10502,
								10501,
								10497,
								10499,
								10500,
								10496
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/ICreateChatChannelOptions.ts",
							"line": 22,
							"character": 42
						}
					]
				},
				{
					"id": 10034,
					"name": "MembershipChatInfo",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ChatInfo]] relevant to a [[MembershipChat]]."
					},
					"children": [
						{
							"id": 10037,
							"name": "chatId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique ID for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 44,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10037,
								"name": "IChatInfo.chatId"
							}
						},
						{
							"id": 10036,
							"name": "chatType",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The type of chat: [[ChatRoom]], [[ChatChannel]] or [[DirectChat]]."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 39,
									"character": 19
								}
							],
							"type": {
								"type": "reference",
								"id": 10068,
								"name": "ChatType"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10036,
								"name": "IChatInfo.chatType"
							}
						},
						{
							"id": 10040,
							"name": "createdTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp when this chat was created."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 66,
									"character": 22
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10040,
								"name": "IChatInfo.createdTime"
							}
						},
						{
							"id": 10045,
							"name": "joined",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if the local user is joined to this Chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 91,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10045,
								"name": "IChatInfo.joined"
							}
						},
						{
							"id": 10042,
							"name": "lastEventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sequential number of the most recent event for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 76,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10042,
								"name": "IChatInfo.lastEventNumber"
							}
						},
						{
							"id": 10041,
							"name": "lastEventTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp of the most recent event for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 71,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10041,
								"name": "IChatInfo.lastEventTime"
							}
						},
						{
							"id": 10043,
							"name": "maxSeenEventNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of the most recent event which *any* member has received."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 81,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10043,
								"name": "IChatInfo.maxSeenEventNumber"
							}
						},
						{
							"id": 10044,
							"name": "members",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An array of the current members of this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 86,
									"character": 18
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 10048,
									"name": "IChatMember"
								}
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10044,
								"name": "IChatInfo.members"
							}
						},
						{
							"id": 10035,
							"name": "membership",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/chat/MembershipChat.ts",
									"line": 99,
									"character": 21
								}
							],
							"type": {
								"type": "reference",
								"id": 10046,
								"name": "ChatMembership"
							},
							"overwrites": {
								"type": "reference",
								"id": 10055,
								"name": "IChatInfo.membership"
							}
						},
						{
							"id": 10038,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An optional name for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 56,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10038,
								"name": "IChatInfo.name"
							}
						},
						{
							"id": 10039,
							"name": "topic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An optional topic for this chat."
							},
							"sources": [
								{
									"fileName": "src/main/chat/IChatInfo.ts",
									"line": 61,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 10039,
								"name": "IChatInfo.topic"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								10037,
								10036,
								10040,
								10045,
								10042,
								10041,
								10043,
								10044,
								10035,
								10038,
								10039
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/chat/MembershipChat.ts",
							"line": 98,
							"character": 35
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 10052,
							"name": "IChatInfo"
						}
					]
				},
				{
					"id": 10046,
					"name": "ChatMembership",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The possible types of [[ChatInfo.membership]]."
					},
					"sources": [
						{
							"fileName": "src/main/chat/MembershipChat.ts",
							"line": 91,
							"character": 26
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "public"
							},
							{
								"type": "stringLiteral",
								"value": "private"
							}
						]
					}
				},
				{
					"id": 10085,
					"name": "ChatPermission",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The possible permissions a chat can have."
					},
					"sources": [
						{
							"fileName": "src/main/chat/ChatPermission.ts",
							"line": 6,
							"character": 26
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "create_chat"
							},
							{
								"type": "stringLiteral",
								"value": "remove_chat"
							},
							{
								"type": "stringLiteral",
								"value": "join_chat"
							},
							{
								"type": "stringLiteral",
								"value": "leave_chat"
							},
							{
								"type": "stringLiteral",
								"value": "add_chat_user"
							},
							{
								"type": "stringLiteral",
								"value": "remove_chat_user"
							},
							{
								"type": "stringLiteral",
								"value": "set_chat_name"
							},
							{
								"type": "stringLiteral",
								"value": "set_topic"
							},
							{
								"type": "stringLiteral",
								"value": "manage_chat_permissions"
							}
						]
					}
				},
				{
					"id": 10068,
					"name": "ChatType",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The valid strings for a [[ChatInfo.chatType]]."
					},
					"sources": [
						{
							"fileName": "src/main/chat/IChatInfo.ts",
							"line": 110,
							"character": 20
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "reference",
								"id": 10065,
								"name": "DIRECT"
							},
							{
								"type": "reference",
								"id": 10066,
								"name": "CHANNEL"
							},
							{
								"type": "reference",
								"id": 10067,
								"name": "ROOM"
							}
						]
					}
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						10143,
						9705,
						10304,
						9522,
						10075,
						10052,
						10048,
						10081,
						10487,
						10504,
						10495,
						10034
					]
				},
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						10149,
						10318,
						9526,
						9671,
						9714,
						9539,
						9547,
						9555,
						9571,
						10087,
						9587,
						10402,
						10512,
						9595,
						9737,
						10229,
						9954,
						9766,
						9791,
						9816,
						9841,
						9611,
						9866,
						9627,
						9889,
						9641,
						9912,
						9655
					]
				},
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						10046,
						10085,
						10068
					]
				},
				{
					"title": "Enumerations",
					"kind": 4,
					"children": [
						10064
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/chat/index.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 10807,
			"name": "Connection and Authentication",
			"kind": 1,
			"kindString": "Module",
			"flags": {
				"isExported": true
			},
			"originalName": "/Users/michael/development/convergence/client/convergence-client-javascript/src/main/Convergence.ts",
			"comment": {
				"shortText": "Convergence is an engine for realtime collaboration, which implies\nconnectivity to both a central service and likely other users. Similarly,\nauthenticated usage is almost always desired for identification, authorization\nand consistency advantages.",
				"text": "The [[Convergence]] class is the entrance point for most usages.\n"
			},
			"children": [
				{
					"id": 4840,
					"name": "AuthenticationMethods",
					"kind": 4,
					"kindString": "Enumeration",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The methods of authentication supported by Convergence."
					},
					"children": [
						{
							"id": 4841,
							"name": "ANONYMOUS",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/AuthenticationMethod.ts",
									"line": 21,
									"character": 11
								}
							],
							"defaultValue": "\"anonymous\""
						},
						{
							"id": 4843,
							"name": "JWT",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/AuthenticationMethod.ts",
									"line": 23,
									"character": 5
								}
							],
							"defaultValue": "\"jwt\""
						},
						{
							"id": 4842,
							"name": "PASSWORD",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/AuthenticationMethod.ts",
									"line": 22,
									"character": 10
								}
							],
							"defaultValue": "\"password\""
						},
						{
							"id": 4844,
							"name": "RECONNECT",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/AuthenticationMethod.ts",
									"line": 24,
									"character": 11
								}
							],
							"defaultValue": "\"reconnect\""
						}
					],
					"groups": [
						{
							"title": "Enumeration members",
							"kind": 16,
							"children": [
								4841,
								4843,
								4842,
								4844
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/connection/AuthenticationMethod.ts",
							"line": 20,
							"character": 33
						}
					]
				},
				{
					"id": 4879,
					"name": "AuthenticatingEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ConvergenceDomain]] is actively attempting to authenticate."
					},
					"children": [
						{
							"id": 4883,
							"name": "domain",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The domain on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/events/AuthenticatingEvent.ts",
									"line": 40,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4829,
								"name": "IConvergenceDomainEvent.domain"
							}
						},
						{
							"id": 4884,
							"name": "method",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The method of authentication that is being attempted."
							},
							"sources": [
								{
									"fileName": "src/main/events/AuthenticatingEvent.ts",
									"line": 45,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"id": 4845,
								"name": "AuthenticationMethod"
							}
						},
						{
							"id": 4881,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/events/AuthenticatingEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "AuthenticatingEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 4830,
								"name": "IConvergenceDomainEvent.name"
							}
						},
						{
							"id": 4880,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/AuthenticatingEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "authenticating"
							},
							"defaultValue": "\"authenticating\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4883,
								4884,
								4881,
								4880
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/events/AuthenticatingEvent.ts",
							"line": 24,
							"character": 32
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 4828,
							"name": "IConvergenceDomainEvent"
						}
					]
				},
				{
					"id": 532,
					"name": "CancellationToken",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A [[CancellationToken]] is a utility class that allows the binding of a\ncancel method to a method that returns a Promise. A CancellationToken must\nbe \"bound\" by passing it into a method that accepts one. The token must\nbe bound before calling cancel."
					},
					"children": [
						{
							"id": 539,
							"name": "cancel",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 540,
									"name": "cancel",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Invokes the bound cancellation behavior.  This method will throw an\nerror if the CancellationToken is not bound."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/CancellationToken.ts",
									"line": 50,
									"character": 15
								}
							]
						},
						{
							"id": 541,
							"name": "isBound",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 542,
									"name": "isBound",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  True if the CancellationToken is bound, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/CancellationToken.ts",
									"line": 67,
									"character": 16
								}
							]
						},
						{
							"id": 533,
							"name": "create",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 534,
									"name": "create",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates an unbound CancellationToken.",
										"returns": "\n  A new CancellationToken that must be bound.\n"
									},
									"type": {
										"type": "reference",
										"id": 532,
										"name": "CancellationToken"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/CancellationToken.ts",
									"line": 30,
									"character": 22
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								539,
								541,
								533
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/CancellationToken.ts",
							"line": 23,
							"character": 30
						}
					]
				},
				{
					"id": 4832,
					"name": "ConnectedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ConvergenceDomain]] either first connects to the server\nor successfully reconnects."
					},
					"children": [
						{
							"id": 4836,
							"name": "domain",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The domain on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectedEvent.ts",
									"line": 40,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4829,
								"name": "IConvergenceDomainEvent.domain"
							}
						},
						{
							"id": 4834,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectedEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ConnectedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 4830,
								"name": "IConvergenceDomainEvent.name"
							}
						},
						{
							"id": 4833,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectedEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "connected"
							},
							"defaultValue": "\"connected\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4836,
								4834,
								4833
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/events/ConnectedEvent.ts",
							"line": 24,
							"character": 27
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 4828,
							"name": "IConvergenceDomainEvent"
						}
					]
				},
				{
					"id": 4871,
					"name": "ConnectingEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ConvergenceDomain]] is actively attempting to (re)connect to\na server."
					},
					"children": [
						{
							"id": 4875,
							"name": "domain",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The domain on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectingEvent.ts",
									"line": 40,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4829,
								"name": "IConvergenceDomainEvent.domain"
							}
						},
						{
							"id": 4873,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectingEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ConnectingEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 4830,
								"name": "IConvergenceDomainEvent.name"
							}
						},
						{
							"id": 4872,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectingEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "connecting"
							},
							"defaultValue": "\"connecting\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4875,
								4873,
								4872
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/events/ConnectingEvent.ts",
							"line": 24,
							"character": 28
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 4828,
							"name": "IConvergenceDomainEvent"
						}
					]
				},
				{
					"id": 4847,
					"name": "ConnectionFailedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ConvergenceDomain]]'s (re)connection attempt fails."
					},
					"children": [
						{
							"id": 4853,
							"name": "authMethod",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionFailedEvent.ts",
									"line": 42,
									"character": 32
								}
							],
							"type": {
								"type": "reference",
								"id": 4845,
								"name": "AuthenticationMethod"
							}
						},
						{
							"id": 4852,
							"name": "code",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionFailedEvent.ts",
									"line": 41,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4851,
							"name": "domain",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The domain on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionFailedEvent.ts",
									"line": 40,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4829,
								"name": "IConvergenceDomainEvent.domain"
							}
						},
						{
							"id": 4854,
							"name": "message",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A message providing additional details on why the connection failed."
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionFailedEvent.ts",
									"line": 46,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4849,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionFailedEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ConnectionFailedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 4830,
								"name": "IConvergenceDomainEvent.name"
							}
						},
						{
							"id": 4848,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionFailedEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "connection_failed"
							},
							"defaultValue": "\"connection_failed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4853,
								4852,
								4851,
								4854,
								4849,
								4848
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/events/ConnectionFailedEvent.ts",
							"line": 24,
							"character": 34
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 4828,
							"name": "IConvergenceDomainEvent"
						}
					]
				},
				{
					"id": 4861,
					"name": "ConnectionScheduledEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ConvergenceDomain]] is scheduled to attempt to reconnect\nto the server."
					},
					"children": [
						{
							"id": 4866,
							"name": "delay",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of seconds until the reconnection is attempted."
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionScheduledEvent.ts",
									"line": 45,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4865,
							"name": "domain",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The domain on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionScheduledEvent.ts",
									"line": 40,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4829,
								"name": "IConvergenceDomainEvent.domain"
							}
						},
						{
							"id": 4863,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionScheduledEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ConnectionScheduledEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 4830,
								"name": "IConvergenceDomainEvent.name"
							}
						},
						{
							"id": 4862,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/ConnectionScheduledEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "connection_scheduled"
							},
							"defaultValue": "\"connection_scheduled\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4866,
								4865,
								4863,
								4862
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/events/ConnectionScheduledEvent.ts",
							"line": 24,
							"character": 37
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 4828,
							"name": "IConvergenceDomainEvent"
						}
					]
				},
				{
					"id": 4889,
					"name": "DisconnectedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ConvergenceDomain]] becomes disconnected AND is not attempting to reconnect.\nEssentially, the domain has given up trying to connect and reverted to offline mode."
					},
					"children": [
						{
							"id": 4893,
							"name": "domain",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The domain on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/events/DisconnectedEvent.ts",
									"line": 40,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4829,
								"name": "IConvergenceDomainEvent.domain"
							}
						},
						{
							"id": 4891,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/events/DisconnectedEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "DisconnectedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 4830,
								"name": "IConvergenceDomainEvent.name"
							}
						},
						{
							"id": 4890,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/DisconnectedEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "disconnected"
							},
							"defaultValue": "\"disconnected\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4893,
								4891,
								4890
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/events/DisconnectedEvent.ts",
							"line": 24,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 4828,
							"name": "IConvergenceDomainEvent"
						}
					]
				},
				{
					"id": 4897,
					"name": "InterruptedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ConvergenceDomain]] becomes disconnected but is still\nattempting to automatically reconnect."
					},
					"children": [
						{
							"id": 4901,
							"name": "domain",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The domain on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/events/InterruptedEvent.ts",
									"line": 40,
									"character": 26
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4829,
								"name": "IConvergenceDomainEvent.domain"
							}
						},
						{
							"id": 4899,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/events/InterruptedEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "InterruptedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 4830,
								"name": "IConvergenceDomainEvent.name"
							}
						},
						{
							"id": 4898,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/events/InterruptedEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "interrupted"
							},
							"defaultValue": "\"interrupted\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4901,
								4899,
								4898
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/events/InterruptedEvent.ts",
							"line": 24,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 4828,
							"name": "IConvergenceDomainEvent"
						}
					]
				},
				{
					"id": 4828,
					"name": "IConvergenceDomainEvent",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The base interface for any [[ConvergenceDomain]]-related events."
					},
					"children": [
						{
							"id": 4829,
							"name": "domain",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The domain on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/events/IConvergenceDomainEvent.ts",
									"line": 27,
									"character": 8
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							}
						},
						{
							"id": 4830,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/util/IConvergenceEvent.ts",
									"line": 30,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4829,
								4830
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/events/IConvergenceDomainEvent.ts",
							"line": 23,
							"character": 40
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 4879,
							"name": "AuthenticatingEvent"
						},
						{
							"type": "reference",
							"id": 4832,
							"name": "ConnectedEvent"
						},
						{
							"type": "reference",
							"id": 4871,
							"name": "ConnectingEvent"
						},
						{
							"type": "reference",
							"id": 4847,
							"name": "ConnectionFailedEvent"
						},
						{
							"type": "reference",
							"id": 4861,
							"name": "ConnectionScheduledEvent"
						},
						{
							"type": "reference",
							"id": 4889,
							"name": "DisconnectedEvent"
						},
						{
							"type": "reference",
							"id": 4905,
							"name": "ErrorEvent"
						},
						{
							"type": "reference",
							"id": 4897,
							"name": "InterruptedEvent"
						}
					]
				},
				{
					"id": 8220,
					"name": "IConvergenceOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[IConvergenceOptions]] interface represents that options that can be\nset within Convergence when connecting to a domain.",
						"text": "See the [ConvergenceOptions](https://github.com/convergencelabs/convergence-client-javascript/blob/master/src/main/ConvergenceOptions.ts)\nimplementation for the default settings.\n"
					},
					"children": [
						{
							"id": 8221,
							"name": "connection",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Options that configure the connection strategy."
							},
							"sources": [
								{
									"fileName": "src/main/IConvergenceOptions.ts",
									"line": 34,
									"character": 12
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 8222,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 8224,
											"name": "connectionRequestTimeout",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "The maximum time in seconds to wait for a successful connection\nrequest to be completed. The default value is 10 seconds."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 45,
													"character": 28
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 8223,
											"name": "timeout",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "The maximum time in seconds to wait for a successful web socket\nconnection to be made. The default value is 5 seconds."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 39,
													"character": 11
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												8224,
												8223
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/IConvergenceOptions.ts",
											"line": 34,
											"character": 14
										}
									]
								}
							}
						},
						{
							"id": 8250,
							"name": "models",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Configures the model subsystem."
							},
							"sources": [
								{
									"fileName": "src/main/IConvergenceOptions.ts",
									"line": 179,
									"character": 8
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 8251,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 8252,
											"name": "data",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "Configure how data is handled within models."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 183,
													"character": 8
												}
											],
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 8253,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"children": [
														{
															"id": 8255,
															"name": "undefinedArrayValues",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"comment": {
																"shortText": "Determines what happens when data is supplied that contains\nan array that contains **undefined** at one or more\nindices.  If set to **\"error\"** (the default) the\nclient will throw an error if if it detects an undefined value\nwithin an array.  If set to \"null\", the value will be\nconverted to **null**."
															},
															"sources": [
																{
																	"fileName": "src/main/IConvergenceOptions.ts",
																	"line": 202,
																	"character": 26
																}
															],
															"type": {
																"type": "union",
																"types": [
																	{
																		"type": "stringLiteral",
																		"value": "error"
																	},
																	{
																		"type": "stringLiteral",
																		"value": "null"
																	}
																]
															}
														},
														{
															"id": 8254,
															"name": "undefinedObjectValues",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"comment": {
																"shortText": "Determines what happens when data is supplied to an object that\ncontains a property with a value of undefined.  If set to\n**\"error\"** (the default) the client will throw an error if\nif it detects an undefined value in an object.  If set to\n\"omit\", the property will simply be omitted from the\nresultant RealTimeObject."
															},
															"sources": [
																{
																	"fileName": "src/main/IConvergenceOptions.ts",
																	"line": 192,
																	"character": 27
																}
															],
															"type": {
																"type": "union",
																"types": [
																	{
																		"type": "stringLiteral",
																		"value": "error"
																	},
																	{
																		"type": "stringLiteral",
																		"value": "omit"
																	}
																]
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																8255,
																8254
															]
														}
													],
													"sources": [
														{
															"fileName": "src/main/IConvergenceOptions.ts",
															"line": 183,
															"character": 10
														}
													]
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												8252
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/IConvergenceOptions.ts",
											"line": 179,
											"character": 10
										}
									]
								}
							}
						},
						{
							"id": 8242,
							"name": "offline",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Configures offline storage for Convergence. Several of these options are\nrequired to enable offline editing of data.",
								"tags": [
									{
										"tag": "experimental",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/IConvergenceOptions.ts",
									"line": 138,
									"character": 9
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 8243,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 8245,
											"name": "modelSnapshotInterval",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "The number of operations after which a snapshot of local offline that is\nbeing edited should be taken. The default is 100.",
												"tags": [
													{
														"tag": "experimental",
														"text": "\n"
													}
												]
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 152,
													"character": 25
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 8244,
											"name": "storage",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"comment": {
												"shortText": "The storage adapter to use for offline storage.",
												"tags": [
													{
														"tag": "experimental",
														"text": "\n"
													}
												]
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 144,
													"character": 11
												}
											],
											"type": {
												"type": "reference",
												"id": 7535,
												"name": "IStorageAdapter"
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												8245,
												8244
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/IConvergenceOptions.ts",
											"line": 138,
											"character": 11
										}
									]
								}
							}
						},
						{
							"id": 8225,
							"name": "protocol",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Configures the behavior of the messaging protocol subsystem."
							},
							"sources": [
								{
									"fileName": "src/main/IConvergenceOptions.ts",
									"line": 51,
									"character": 10
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 8226,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 8227,
											"name": "defaultRequestTimeout",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"comment": {
												"shortText": "The timeout for a request to the server, in seconds.  The default value\nis 10 seconds."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 56,
													"character": 25
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 8228,
											"name": "heartbeat",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "Configures the keep-alive heartbeat."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 61,
													"character": 13
												}
											],
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 8229,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"children": [
														{
															"id": 8230,
															"name": "enabled",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"comment": {
																"shortText": "Determines if the heartbeat is enabled."
															},
															"sources": [
																{
																	"fileName": "src/main/IConvergenceOptions.ts",
																	"line": 65,
																	"character": 13
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														},
														{
															"id": 8231,
															"name": "pingInterval",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"comment": {
																"shortText": "Configures how long the client will wait, in seconds after the last\nmessage is received from the server before a ping will be sent. The default\nvalue is 5 seconds."
															},
															"sources": [
																{
																	"fileName": "src/main/IConvergenceOptions.ts",
																	"line": 72,
																	"character": 18
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "number"
															}
														},
														{
															"id": 8232,
															"name": "pongTimeout",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true,
																"isOptional": true
															},
															"comment": {
																"shortText": "Specifies the time in seconds the client will wait for a response\nfrom the server to a ping before considering the connection dead. The\ndefault value is 10 seconds."
															},
															"sources": [
																{
																	"fileName": "src/main/IConvergenceOptions.ts",
																	"line": 79,
																	"character": 17
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "number"
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																8230,
																8231,
																8232
															]
														}
													],
													"sources": [
														{
															"fileName": "src/main/IConvergenceOptions.ts",
															"line": 61,
															"character": 15
														}
													]
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												8227,
												8228
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/IConvergenceOptions.ts",
											"line": 51,
											"character": 12
										}
									]
								}
							}
						},
						{
							"id": 8233,
							"name": "reconnect",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Options that configure how Convergence will reconnect when an established\nconnection is lost unexpectedly or when the intial connection fails."
							},
							"sources": [
								{
									"fileName": "src/main/IConvergenceOptions.ts",
									"line": 87,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 8234,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 8235,
											"name": "autoReconnect",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "Whether to automatically reconnect when the connection is unexpectedly\ndropped. Note this setting only applies to connections that have\nsucceeded and then were lost. This setting does not apply\nto the initial connection, or the first connection made after\ndisconnect is called on the domain. Default is true."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 95,
													"character": 17
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 8236,
											"name": "autoReconnectOnInitial",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "Whether to automatically reconnect if the initial connection\nfails. Setting this to false will prevent Convergence from\nreconnecting automatically if the initial connection (as\nrequested by directly calling one of the connect methods), but\nwill still allow Convergence to reconnect if it was disconnected\nunintentionally after the first connection was made. Note that\nif a connection is successful, and then disconnect is called,\nthe subsequent call to connect will be treated as an initial\nconnection. Default is true."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 108,
													"character": 26
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 8238,
											"name": "fallbackAuth",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "The fallbackAuth method to use when a reconnect token is rejected. It\nprovides the opportunity to use a fallback method of authentication.",
												"text": "```\noptions.reconnect.fallbackAuth = (authChallenge:IFallbackAuthChallenge) => {\n  return YourAuthenticationService.getNewJwt().then(jwt => {\n    authChallenge.jwt(jwt);\n  })\n};\n```\n"
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 129,
													"character": 16
												}
											],
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 8239,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 8240,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 8241,
																	"name": "authChallenge",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 1210,
																		"name": "IFallbackAuthChallenge"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/IConvergenceOptions.ts",
															"line": 129,
															"character": 18
														}
													]
												}
											}
										},
										{
											"id": 8237,
											"name": "reconnectIntervals",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "The intervals to use between reconnects. This array will be sorted from\nsmallest to largest. When the largest interval is reached it will simply\nbe repeated."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 115,
													"character": 22
												}
											],
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												8235,
												8236,
												8238,
												8237
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/IConvergenceOptions.ts",
											"line": 87,
											"character": 13
										}
									]
								}
							}
						},
						{
							"id": 8246,
							"name": "webSocket",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Options that configure how Convergence will use WebSockets.",
								"text": "See the Node.js Usage section on [this page] for an example of these\nparameters in action.\n"
							},
							"sources": [
								{
									"fileName": "src/main/IConvergenceOptions.ts",
									"line": 161,
									"character": 11
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 8247,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 8249,
											"name": "class",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "The constructor to use when creating a web socket. Essentially this is\nclass that should be used to represent the web socket."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 173,
													"character": 9
												}
											],
											"type": {
												"type": "reference",
												"id": 633,
												"name": "IWebSocketClass"
											}
										},
										{
											"id": 8248,
											"name": "factory",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"shortText": "Defines the class / constructor that should be used to create WebSocket\nobjects. This is useful when operating in NodeJS where a library like\nws or isomorphic-ws can be used to provide a client side WebSocket API."
											},
											"sources": [
												{
													"fileName": "src/main/IConvergenceOptions.ts",
													"line": 167,
													"character": 11
												}
											],
											"type": {
												"type": "reference",
												"id": 644,
												"name": "WebSocketFactory"
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												8249,
												8248
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/IConvergenceOptions.ts",
											"line": 161,
											"character": 13
										}
									]
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8221,
								8250,
								8242,
								8225,
								8233,
								8246
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/IConvergenceOptions.ts",
							"line": 29,
							"character": 36
						}
					]
				},
				{
					"id": 1210,
					"name": "IFallbackAuthChallenge",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Provides a few hooks for passing authentication information that can be\nprovided in [[IConvergenceOptions]].  The application-provided [[IConvergenceOptions.reconnect.fallbackAuth]]\nwill be called when a domain attempts to reconnect using a reconnect token\nbut fails. This allows the application to provide authentication information\nsynchronously or asynchronously."
					},
					"children": [
						{
							"id": 1221,
							"name": "anonymous",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1222,
									"name": "anonymous",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Call this to tell Convergence to reconnect anonymously using the provided\ndisplay name."
									},
									"parameters": [
										{
											"id": 1223,
											"name": "displayName",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "reflection",
														"declaration": {
															"id": 1224,
															"name": "__type",
															"kind": 65536,
															"kindString": "Type literal",
															"flags": {
																"isExported": true
															},
															"signatures": [
																{
																	"id": 1225,
																	"name": "__call",
																	"kind": 4096,
																	"kindString": "Call signature",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"sources": [
																{
																	"fileName": "src/main/IFallbackAuthChallenge.ts",
																	"line": 57,
																	"character": 35
																}
															]
														}
													},
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "intrinsic",
																"name": "string"
															}
														],
														"name": "Promise"
													}
												]
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/IFallbackAuthChallenge.ts",
									"line": 57,
									"character": 11
								}
							]
						},
						{
							"id": 1226,
							"name": "cancel",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1227,
									"name": "cancel",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Call this to tell Convergence not to reconnect.  This can be used when\ne.g. the consuming application fails to retrieve a new JWT."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/IFallbackAuthChallenge.ts",
									"line": 63,
									"character": 8
								}
							]
						},
						{
							"id": 1216,
							"name": "jwt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1217,
									"name": "jwt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Call this to tell Convergence to reconnect using a provided [JWT](https://jwt.io).",
										"text": "Note that the JWT must encode the same username as that of the username\nor the user that originally connected.\n"
									},
									"parameters": [
										{
											"id": 1218,
											"name": "jwt",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "reflection",
														"declaration": {
															"id": 1219,
															"name": "__type",
															"kind": 65536,
															"kindString": "Type literal",
															"flags": {
																"isExported": true
															},
															"signatures": [
																{
																	"id": 1220,
																	"name": "__call",
																	"kind": 4096,
																	"kindString": "Call signature",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"sources": [
																{
																	"fileName": "src/main/IFallbackAuthChallenge.ts",
																	"line": 47,
																	"character": 21
																}
															]
														}
													},
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "intrinsic",
																"name": "string"
															}
														],
														"name": "Promise"
													}
												]
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/IFallbackAuthChallenge.ts",
									"line": 47,
									"character": 5
								}
							]
						},
						{
							"id": 1211,
							"name": "password",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1212,
									"name": "password",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Call this to tell Convergence to reconnect using a provided password.",
										"text": "See [[Convergence.connect]]\n"
									},
									"parameters": [
										{
											"id": 1213,
											"name": "password",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  a string, a function that returns a string, or a Promise that will\n  resolve with a string.\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "reflection",
														"declaration": {
															"id": 1214,
															"name": "__type",
															"kind": 65536,
															"kindString": "Type literal",
															"flags": {
																"isExported": true
															},
															"signatures": [
																{
																	"id": 1215,
																	"name": "__call",
																	"kind": 4096,
																	"kindString": "Call signature",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"sources": [
																{
																	"fileName": "src/main/IFallbackAuthChallenge.ts",
																	"line": 35,
																	"character": 31
																}
															]
														}
													},
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "intrinsic",
																"name": "string"
															}
														],
														"name": "Promise"
													}
												]
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/IFallbackAuthChallenge.ts",
									"line": 35,
									"character": 10
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1221,
								1226,
								1216,
								1211
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/IFallbackAuthChallenge.ts",
							"line": 25,
							"character": 39
						}
					]
				},
				{
					"id": 8301,
					"name": "IUsernameAndPassword",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A username and password to authenticate with."
					},
					"children": [
						{
							"id": 8303,
							"name": "password",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/IUsernameAndPassword.ts",
									"line": 23,
									"character": 10
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 8302,
							"name": "username",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/IUsernameAndPassword.ts",
									"line": 22,
									"character": 10
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								8303,
								8302
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/IUsernameAndPassword.ts",
							"line": 21,
							"character": 37
						}
					]
				},
				{
					"id": 633,
					"name": "IWebSocketClass",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 639,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 640,
									"name": "new IWebSocketClass",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 641,
											"name": "url",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 642,
											"name": "protocols",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "WebSocket"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/connection/IWebSocketClass.ts",
									"line": 24,
									"character": 24
								}
							]
						},
						{
							"id": 635,
							"name": "CLOSED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/IWebSocketClass.ts",
									"line": 21,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 636,
							"name": "CLOSING",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/IWebSocketClass.ts",
									"line": 22,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 637,
							"name": "CONNECTING",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/IWebSocketClass.ts",
									"line": 23,
									"character": 21
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 638,
							"name": "OPEN",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/IWebSocketClass.ts",
									"line": 24,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 634,
							"name": "prototype",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/connection/IWebSocketClass.ts",
									"line": 20,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "WebSocket"
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								639
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								635,
								636,
								637,
								638,
								634
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/connection/IWebSocketClass.ts",
							"line": 19,
							"character": 32
						}
					]
				},
				{
					"id": 4845,
					"name": "AuthenticationMethod",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A method of authentication.  One of the [[AuthenticationMethods]]."
					},
					"sources": [
						{
							"fileName": "src/main/connection/AuthenticationMethod.ts",
							"line": 32,
							"character": 32
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "reference",
								"id": 4841,
								"name": "ANONYMOUS"
							},
							{
								"type": "reference",
								"id": 4842,
								"name": "PASSWORD"
							},
							{
								"type": "reference",
								"id": 4843,
								"name": "JWT"
							},
							{
								"type": "reference",
								"id": 4844,
								"name": "RECONNECT"
							}
						]
					}
				},
				{
					"id": 644,
					"name": "WebSocketFactory",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A factory function that returns a [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket)\nbound to the provided [[ConvergenceDomain|domain]] URL."
					},
					"sources": [
						{
							"fileName": "src/main/connection/WebSocketFactory.ts",
							"line": 21,
							"character": 28
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 645,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 646,
									"name": "__call",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 647,
											"name": "url",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"name": "WebSocket"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/connection/WebSocketFactory.ts",
									"line": 21,
									"character": 30
								}
							]
						}
					}
				},
				{
					"id": 10859,
					"name": "configureLogging",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 255,
							"character": 29
						}
					],
					"type": {
						"type": "reference",
						"id": 10846,
						"name": "configureLogging"
					},
					"defaultValue": "Convergence.configureLogging"
				},
				{
					"id": 10854,
					"name": "connect",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 220,
							"character": 20
						}
					],
					"type": {
						"type": "reference",
						"id": 10809,
						"name": "connect"
					},
					"defaultValue": "Convergence.connect"
				},
				{
					"id": 10856,
					"name": "connectAnonymously",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 234,
							"character": 31
						}
					],
					"type": {
						"type": "reference",
						"id": 10824,
						"name": "connectAnonymously"
					},
					"defaultValue": "Convergence.connectAnonymously"
				},
				{
					"id": 10857,
					"name": "connectWithJwt",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 241,
							"character": 27
						}
					],
					"type": {
						"type": "reference",
						"id": 10832,
						"name": "connectWithJwt"
					},
					"defaultValue": "Convergence.connectWithJwt"
				},
				{
					"id": 10855,
					"name": "connectWithPassword",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 227,
							"character": 32
						}
					],
					"type": {
						"type": "reference",
						"id": 10816,
						"name": "connectWithPassword"
					},
					"defaultValue": "Convergence.connectWithPassword"
				},
				{
					"id": 10858,
					"name": "reconnect",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 248,
							"character": 22
						}
					],
					"type": {
						"type": "reference",
						"id": 10840,
						"name": "reconnect"
					},
					"defaultValue": "Convergence.reconnect"
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						4879,
						532,
						4832,
						4871,
						4847,
						4861,
						4889,
						4897
					]
				},
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						10859,
						10854,
						10856,
						10857,
						10855,
						10858
					]
				},
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						4828,
						8220,
						1210,
						8301,
						633
					]
				},
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						4845,
						644
					]
				},
				{
					"title": "Enumerations",
					"kind": 4,
					"children": [
						4840
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/Convergence.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 7555,
			"name": "Offline",
			"kind": 1,
			"kindString": "Module",
			"flags": {
				"isExported": true
			},
			"originalName": "/Users/michael/development/convergence/client/convergence-client-javascript/src/main/storage/api/index.ts",
			"comment": {
				"shortText": "Convergence supports scenarios where the consuming application loses\nconnectivity to the server. To use, simply provide an `IStorageAdapter`\nin the [[IConvergenceOptions]] on initial connection.",
				"text": "The interfaces here provide an API for customization of the offline\noperation storage. By default, Convergence provides the [[IdbStorageAdapter]]\nwhich uses IndexedDB for persistence.\n"
			},
			"children": [
				{
					"id": 8175,
					"name": "IdbStorageAdapter",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The default implementation for data persistence in offline mode. This\nstorage adapter uses IndexedDB under the hood to store all data."
					},
					"children": [
						{
							"id": 8182,
							"name": "adapterId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8183,
									"name": "adapterId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique id of this storage adapter. Each adapter class\nimplementation must provide a unique id."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 7537,
										"name": "IStorageAdapter.adapterId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
									"line": 39,
									"character": 18
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 7536,
								"name": "IStorageAdapter.adapterId"
							}
						},
						{
							"id": 8195,
							"name": "destroy",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8196,
									"name": "destroy",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the underlying storage behind this store, deleting all data.\nThe storage adapter will be disposed after calling destroy."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"implementationOf": {
										"type": "reference",
										"id": 7550,
										"name": "IStorageAdapter.destroy"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
									"line": 100,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 7549,
								"name": "IStorageAdapter.destroy"
							}
						},
						{
							"id": 8197,
							"name": "dispose",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8198,
									"name": "dispose",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Disposes of this storage adapter, releasing any resources. Calls\nto the storage after calling dispose will likely throw errors."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"implementationOf": {
										"type": "reference",
										"id": 7546,
										"name": "IStorageAdapter.dispose"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
									"line": 109,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 7545,
								"name": "IStorageAdapter.dispose"
							}
						},
						{
							"id": 8193,
							"name": "identityStore",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8194,
									"name": "identityStore",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the identity store which provides storage for the Identity\nsubsystem.",
										"returns": "The identity store.\n"
									},
									"type": {
										"type": "reference",
										"id": 7518,
										"name": "IIdentityStore"
									},
									"implementationOf": {
										"type": "reference",
										"id": 7554,
										"name": "IStorageAdapter.identityStore"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
									"line": 93,
									"character": 22
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 7553,
								"name": "IStorageAdapter.identityStore"
							}
						},
						{
							"id": 8184,
							"name": "initialize",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8185,
									"name": "initialize",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Initializes the offline data store. The storage will be created\nif it does not exists."
									},
									"parameters": [
										{
											"id": 8186,
											"name": "namespace",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The namespace of the domain being opened."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 8187,
											"name": "domainId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The id of the domain being opened."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 8188,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The user name of the user opening the store.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									},
									"implementationOf": {
										"type": "reference",
										"id": 7539,
										"name": "IStorageAdapter.initialize"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
									"line": 46,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 7538,
								"name": "IStorageAdapter.initialize"
							}
						},
						{
							"id": 8199,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8200,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the storage is disposed.",
										"returns": "true if the storage is disposed, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"implementationOf": {
										"type": "reference",
										"id": 7548,
										"name": "IStorageAdapter.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
									"line": 126,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 7547,
								"name": "IStorageAdapter.isDisposed"
							}
						},
						{
							"id": 8189,
							"name": "isInitialized",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8190,
									"name": "isInitialized",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the storage is initialized.",
										"returns": "true if the storage is initialized, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"implementationOf": {
										"type": "reference",
										"id": 7544,
										"name": "IStorageAdapter.isInitialized"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
									"line": 79,
									"character": 22
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 7543,
								"name": "IStorageAdapter.isInitialized"
							}
						},
						{
							"id": 8191,
							"name": "modelStore",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 8192,
									"name": "modelStore",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model store which provides storage for the Real Time\nModel subsystem.",
										"returns": "The model store.\n"
									},
									"type": {
										"type": "reference",
										"id": 7449,
										"name": "IModelStore"
									},
									"implementationOf": {
										"type": "reference",
										"id": 7552,
										"name": "IStorageAdapter.modelStore"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
									"line": 86,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 7551,
								"name": "IStorageAdapter.modelStore"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								8182,
								8195,
								8197,
								8193,
								8184,
								8199,
								8189,
								8191
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/idb/IdbStorageAdapter.ts",
							"line": 27,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 7535,
							"name": "IStorageAdapter"
						}
					]
				},
				{
					"id": 7531,
					"name": "IDomainUserIdData",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7533,
							"name": "userType",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IDomainUserIdData.ts",
									"line": 20,
									"character": 10
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7532,
							"name": "username",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IDomainUserIdData.ts",
									"line": 19,
									"character": 10
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7533,
								7532
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IDomainUserIdData.ts",
							"line": 18,
							"character": 34
						}
					]
				},
				{
					"id": 7518,
					"name": "IIdentityStore",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7528,
							"name": "getSessions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7529,
									"name": "getSessions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "reference",
														"id": 773,
														"name": "DomainUserId"
													}
												],
												"name": "Map"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IIdentityStore.ts",
									"line": 27,
									"character": 13
								}
							]
						},
						{
							"id": 7522,
							"name": "getUsers",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7523,
									"name": "getUsers",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 812,
													"name": "DomainUser"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IIdentityStore.ts",
									"line": 23,
									"character": 10
								}
							]
						},
						{
							"id": 7524,
							"name": "putSession",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7525,
									"name": "putSession",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 7526,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7527,
											"name": "userId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 773,
												"name": "DomainUserId"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IIdentityStore.ts",
									"line": 25,
									"character": 12
								}
							]
						},
						{
							"id": 7519,
							"name": "putUser",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7520,
									"name": "putUser",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 7521,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 812,
												"name": "DomainUser"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IIdentityStore.ts",
									"line": 21,
									"character": 9
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								7528,
								7522,
								7524,
								7519
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IIdentityStore.ts",
							"line": 20,
							"character": 31
						}
					]
				},
				{
					"id": 4690,
					"name": "ILocalOperationData",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 4693,
							"name": "contextVersion",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 34,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4691,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 32,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4696,
							"name": "operation",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 37,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"id": 4697,
								"name": "IModelOperationData"
							}
						},
						{
							"id": 4694,
							"name": "sequenceNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 35,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4692,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 33,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4695,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 36,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4693,
								4691,
								4696,
								4694,
								4692,
								4695
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelOperationData.ts",
							"line": 31,
							"character": 36
						}
					]
				},
				{
					"id": 7403,
					"name": "IModelCreationData",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7405,
							"name": "collection",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The collection in which this model will live."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelCreationData.ts",
									"line": 30,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7407,
							"name": "createdTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The date / time the model was created."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelCreationData.ts",
									"line": 40,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 7406,
							"name": "initialData",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The data the model was created with."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelCreationData.ts",
									"line": 35,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"id": 1249,
								"name": "IObjectValue"
							}
						},
						{
							"id": 7404,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The model's unique id."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelCreationData.ts",
									"line": 25,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7409,
							"name": "overrideCollectionWorldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Set to true if the permissions set in this object should override those set\nin the parent collection."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelCreationData.ts",
									"line": 51,
									"character": 36
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 7411,
							"name": "userPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Per-user permissions can be set here, where the key is an existing user's username."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelCreationData.ts",
									"line": 61,
									"character": 17
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 7412,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"indexSignature": [
										{
											"id": 7413,
											"name": "__index",
											"kind": 8192,
											"kindString": "Index signature",
											"flags": {
												"isExported": true
											},
											"parameters": [
												{
													"id": 7414,
													"name": "username",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isExported": true
													},
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											],
											"type": {
												"type": "reference",
												"id": 4213,
												"name": "IModelPermissions"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/main/storage/api/IModelCreationData.ts",
											"line": 61,
											"character": 19
										}
									]
								}
							}
						},
						{
							"id": 7408,
							"name": "valueIdPrefix",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The value id prefix to use for the model."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelCreationData.ts",
									"line": 45,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7410,
							"name": "worldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Generic permissions for this model for all users."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelCreationData.ts",
									"line": 56,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 4213,
								"name": "IModelPermissions"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7405,
								7407,
								7406,
								7404,
								7409,
								7411,
								7408,
								7410
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelCreationData.ts",
							"line": 21,
							"character": 35
						}
					]
				},
				{
					"id": 7377,
					"name": "IModelData",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7379,
							"name": "data",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelData.ts",
									"line": 22,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"id": 1249,
								"name": "IObjectValue"
							}
						},
						{
							"id": 7378,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelData.ts",
									"line": 21,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7379,
								7378
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelData.ts",
							"line": 20,
							"character": 27
						}
					]
				},
				{
					"id": 7420,
					"name": "IModelDataUpdate",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7423,
							"name": "createdTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelUpdate.ts",
									"line": 32,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 7421,
							"name": "data",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelUpdate.ts",
									"line": 30,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"id": 1249,
								"name": "IObjectValue"
							}
						},
						{
							"id": 7424,
							"name": "modifiedTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelUpdate.ts",
									"line": 33,
									"character": 14
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 7422,
							"name": "version",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelUpdate.ts",
									"line": 31,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7423,
								7421,
								7424,
								7422
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelUpdate.ts",
							"line": 29,
							"character": 33
						}
					]
				},
				{
					"id": 7426,
					"name": "IModelMetaData",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7429,
							"name": "available",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Whether the model has been downloaded and is available locally."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaData.ts",
									"line": 34,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 7431,
							"name": "created",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "If the model was created offline and needs to be created at the server\nwhen the client connects."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaData.ts",
									"line": 46,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 7430,
							"name": "deleted",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "If the offline model was deleted, and should be deleted on the sever\nonce the client connects."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaData.ts",
									"line": 40,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 7434,
							"name": "details",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaData.ts",
									"line": 59,
									"character": 9
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 7435,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 7436,
											"name": "collection",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 60,
													"character": 14
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7443,
											"name": "createdTime",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 66,
													"character": 15
												}
											],
											"type": {
												"type": "reference",
												"name": "Date"
											}
										},
										{
											"id": 7442,
											"name": "lastSequenceNumber",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 64,
													"character": 22
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7444,
											"name": "modifiedTime",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 67,
													"character": 16
												}
											],
											"type": {
												"type": "reference",
												"name": "Date"
											}
										},
										{
											"id": 7445,
											"name": "permissions",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 68,
													"character": 15
												}
											],
											"type": {
												"type": "reference",
												"id": 4219,
												"name": "ModelPermissions"
											}
										},
										{
											"id": 7447,
											"name": "snapshotSequenceNumber",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 71,
													"character": 26
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7446,
											"name": "snapshotVersion",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 70,
													"character": 19
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7437,
											"name": "valueIdPrefix",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 61,
													"character": 17
												}
											],
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 7438,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"children": [
														{
															"id": 7440,
															"name": "increment",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelMetaData.ts",
																	"line": 61,
																	"character": 46
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "number"
															}
														},
														{
															"id": 7439,
															"name": "prefix",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelMetaData.ts",
																	"line": 61,
																	"character": 27
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																7440,
																7439
															]
														}
													],
													"sources": [
														{
															"fileName": "src/main/storage/api/IModelMetaData.ts",
															"line": 61,
															"character": 18
														}
													]
												}
											}
										},
										{
											"id": 7441,
											"name": "version",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaData.ts",
													"line": 63,
													"character": 11
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												7436,
												7443,
												7442,
												7444,
												7445,
												7447,
												7446,
												7437,
												7441
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/storage/api/IModelMetaData.ts",
											"line": 59,
											"character": 11
										}
									]
								}
							}
						},
						{
							"id": 7427,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique id of the model."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaData.ts",
									"line": 24,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7428,
							"name": "subscribed",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Whether the model has been marked for offline availability."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaData.ts",
									"line": 29,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 7433,
							"name": "syncRequired",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "If this record requires synchronization to the server for any reason."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaData.ts",
									"line": 57,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 7432,
							"name": "uncommitted",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "If the model has uncommitted local operations that need to be sent to the\nserver when the client connects."
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaData.ts",
									"line": 52,
									"character": 13
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7429,
								7431,
								7430,
								7434,
								7427,
								7428,
								7433,
								7432
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelMetaData.ts",
							"line": 20,
							"character": 31
						}
					]
				},
				{
					"id": 7767,
					"name": "IModelMetaDataDocument",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7770,
							"name": "available",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
									"line": 23,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 7773,
							"name": "created",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
									"line": 26,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 7771,
							"name": "deleted",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
									"line": 24,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 7775,
							"name": "details",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
									"line": 29,
									"character": 9
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 7776,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 7777,
											"name": "collection",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 30,
													"character": 14
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7784,
											"name": "createdTime",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 34,
													"character": 15
												}
											],
											"type": {
												"type": "reference",
												"name": "Date"
											}
										},
										{
											"id": 7783,
											"name": "lastSequenceNumber",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 33,
													"character": 22
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7785,
											"name": "modifiedTime",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 35,
													"character": 16
												}
											],
											"type": {
												"type": "reference",
												"name": "Date"
											}
										},
										{
											"id": 7786,
											"name": "permissions",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 36,
													"character": 15
												}
											],
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 7787,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"children": [
														{
															"id": 7791,
															"name": "manage",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
																	"line": 40,
																	"character": 12
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														},
														{
															"id": 7788,
															"name": "read",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
																	"line": 37,
																	"character": 10
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														},
														{
															"id": 7790,
															"name": "remove",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
																	"line": 39,
																	"character": 12
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														},
														{
															"id": 7789,
															"name": "write",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
																	"line": 38,
																	"character": 11
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																7791,
																7788,
																7790,
																7789
															]
														}
													],
													"sources": [
														{
															"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
															"line": 36,
															"character": 16
														}
													]
												}
											}
										},
										{
											"id": 7793,
											"name": "snapshotSequenceNumber",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 44,
													"character": 26
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7792,
											"name": "snapshotVersion",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 43,
													"character": 19
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7778,
											"name": "valueIdPrefix",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 31,
													"character": 17
												}
											],
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 7779,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"children": [
														{
															"id": 7781,
															"name": "increment",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
																	"line": 31,
																	"character": 45
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "number"
															}
														},
														{
															"id": 7780,
															"name": "prefix",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
																	"line": 31,
																	"character": 26
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																7781,
																7780
															]
														}
													],
													"sources": [
														{
															"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
															"line": 31,
															"character": 18
														}
													]
												}
											}
										},
										{
											"id": 7782,
											"name": "version",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
													"line": 32,
													"character": 11
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												7777,
												7784,
												7783,
												7785,
												7786,
												7793,
												7792,
												7778,
												7782
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
											"line": 29,
											"character": 11
										}
									]
								}
							}
						},
						{
							"id": 7768,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
									"line": 20,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7769,
							"name": "subscribed",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
									"line": 22,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 7774,
							"name": "syncRequired",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
									"line": 27,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 7772,
							"name": "uncommitted",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
									"line": 25,
									"character": 13
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7770,
								7773,
								7771,
								7775,
								7768,
								7769,
								7774,
								7772
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelMetaDataDocument.ts",
							"line": 18,
							"character": 39
						}
					]
				},
				{
					"id": 4697,
					"name": "IModelOperationData",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 4698,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 44,
									"character": 6
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "stringLiteral",
										"value": "string_splice"
									},
									{
										"type": "stringLiteral",
										"value": "string_set"
									},
									{
										"type": "stringLiteral",
										"value": "array_insert"
									},
									{
										"type": "stringLiteral",
										"value": "array_remove"
									},
									{
										"type": "stringLiteral",
										"value": "array_replace"
									},
									{
										"type": "stringLiteral",
										"value": "array_move"
									},
									{
										"type": "stringLiteral",
										"value": "array_set"
									},
									{
										"type": "stringLiteral",
										"value": "object_set_property"
									},
									{
										"type": "stringLiteral",
										"value": "object_add_property"
									},
									{
										"type": "stringLiteral",
										"value": "object_remove_property"
									},
									{
										"type": "stringLiteral",
										"value": "object_set"
									},
									{
										"type": "stringLiteral",
										"value": "number_delta"
									},
									{
										"type": "stringLiteral",
										"value": "number_set"
									},
									{
										"type": "stringLiteral",
										"value": "boolean_set"
									},
									{
										"type": "stringLiteral",
										"value": "date_set"
									},
									{
										"type": "stringLiteral",
										"value": "compound"
									}
								]
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4698
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelOperationData.ts",
							"line": 43,
							"character": 36
						}
					]
				},
				{
					"id": 7381,
					"name": "IModelSnapshot",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7384,
							"name": "data",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelSnapshot.ts",
									"line": 24,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"id": 1249,
								"name": "IObjectValue"
							}
						},
						{
							"id": 7386,
							"name": "localOperations",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelSnapshot.ts",
									"line": 26,
									"character": 17
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 4690,
									"name": "ILocalOperationData"
								}
							}
						},
						{
							"id": 7383,
							"name": "sequenceNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelSnapshot.ts",
									"line": 23,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 7385,
							"name": "serverOperations",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelSnapshot.ts",
									"line": 25,
									"character": 18
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 4684,
									"name": "IServerOperationData"
								}
							}
						},
						{
							"id": 7382,
							"name": "version",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelSnapshot.ts",
									"line": 22,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7384,
								7386,
								7383,
								7385,
								7382
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelSnapshot.ts",
							"line": 21,
							"character": 31
						}
					]
				},
				{
					"id": 7388,
					"name": "IModelState",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7390,
							"name": "collection",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 23,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7397,
							"name": "createdTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 30,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 7396,
							"name": "lastSequenceNumber",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 28,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 7399,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 33,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 7389,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 22,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7398,
							"name": "modifiedTime",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 31,
									"character": 14
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 7400,
							"name": "permissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 35,
									"character": 13
								}
							],
							"type": {
								"type": "reference",
								"id": 4219,
								"name": "ModelPermissions"
							}
						},
						{
							"id": 7401,
							"name": "snapshot",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 37,
									"character": 10
								}
							],
							"type": {
								"type": "reference",
								"id": 7381,
								"name": "IModelSnapshot"
							}
						},
						{
							"id": 7391,
							"name": "valueIdPrefix",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 25,
									"character": 15
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 7392,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"children": [
										{
											"id": 7394,
											"name": "increment",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelState.ts",
													"line": 25,
													"character": 44
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7393,
											"name": "prefix",
											"kind": 32,
											"kindString": "Variable",
											"flags": {
												"isExported": true
											},
											"sources": [
												{
													"fileName": "src/main/storage/api/IModelState.ts",
													"line": 25,
													"character": 25
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"groups": [
										{
											"title": "Variables",
											"kind": 32,
											"children": [
												7394,
												7393
											]
										}
									],
									"sources": [
										{
											"fileName": "src/main/storage/api/IModelState.ts",
											"line": 25,
											"character": 16
										}
									]
								}
							}
						},
						{
							"id": 7395,
							"name": "version",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelState.ts",
									"line": 27,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7390,
								7397,
								7396,
								7399,
								7389,
								7398,
								7400,
								7401,
								7391,
								7395
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelState.ts",
							"line": 21,
							"character": 28
						}
					]
				},
				{
					"id": 7449,
					"name": "IModelStore",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "[[IModelStore]] defines the methods for storing and processing Realtime\nModels when offline."
					},
					"children": [
						{
							"id": 7511,
							"name": "claimValueIdPrefix",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7512,
									"name": "claimValueIdPrefix",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets and increments the value id prefix for a given model.",
										"returns": "\n  The claimed value id prefix.\n"
									},
									"parameters": [
										{
											"id": 7513,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The model id to get and increment the prefix for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reflection",
												"declaration": {
													"id": 7514,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"children": [
														{
															"id": 7516,
															"name": "increment",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelStore.ts",
																	"line": 257,
																	"character": 74
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "number"
															}
														},
														{
															"id": 7515,
															"name": "prefix",
															"kind": 32,
															"kindString": "Variable",
															"flags": {
																"isExported": true
															},
															"sources": [
																{
																	"fileName": "src/main/storage/api/IModelStore.ts",
																	"line": 257,
																	"character": 55
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													],
													"groups": [
														{
															"title": "Variables",
															"kind": 32,
															"children": [
																7516,
																7515
															]
														}
													],
													"sources": [
														{
															"fileName": "src/main/storage/api/IModelStore.ts",
															"line": 257,
															"character": 47
														}
													]
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 257,
									"character": 20
								}
							]
						},
						{
							"id": 7453,
							"name": "completeModelCreation",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7454,
									"name": "completeModelCreation",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Indicates that the model creation process has completed. This can\nhappen when online and the server responds, or as part of the\nresync process."
									},
									"parameters": [
										{
											"id": 7455,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model that was created.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 51,
									"character": 23
								}
							]
						},
						{
							"id": 7462,
							"name": "completeModelDeletion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7463,
									"name": "completeModelDeletion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Completes the deletion of the model by removing the deleted flag on the\nmodel."
									},
									"parameters": [
										{
											"id": 7464,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to complete the deletion for.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 81,
									"character": 23
								}
							]
						},
						{
							"id": 7465,
							"name": "deleteModels",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7466,
									"name": "deleteModels",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Deletes the offline record of the model."
									},
									"parameters": [
										{
											"id": 7467,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to delete.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 89,
									"character": 14
								}
							]
						},
						{
							"id": 7480,
							"name": "getAllModelMetaData",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7481,
									"name": "getAllModelMetaData",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets all current model meta data records in the system.",
										"returns": "\n  All meta data records.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 7426,
													"name": "IModelMetaData"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 144,
									"character": 21
								}
							]
						},
						{
							"id": 7456,
							"name": "getModelCreationData",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7457,
									"name": "getModelCreationData",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the model creation data for a model that is currently in progress of\ncreation, or null if a model with that id is not being created.",
										"returns": "\n  The IModelCreationData for this model or null if it is not set.\n"
									},
									"parameters": [
										{
											"id": 7458,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to get the creation data of."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"id": 7403,
														"name": "IModelCreationData"
													},
													{
														"type": "intrinsic",
														"name": "null"
													}
												]
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 62,
									"character": 22
								}
							]
						},
						{
							"id": 7477,
							"name": "getModelMetaData",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7478,
									"name": "getModelMetaData",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the model meta data for the specified model or null if meta data for\nthe model does not exist.",
										"returns": "\n  The model meta data for the model or null if no record exists.\n"
									},
									"parameters": [
										{
											"id": 7479,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to get the meta data for.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"id": 7426,
														"name": "IModelMetaData"
													},
													{
														"type": "intrinsic",
														"name": "null"
													}
												]
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 136,
									"character": 18
								}
							]
						},
						{
							"id": 7468,
							"name": "getModelState",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7469,
									"name": "getModelState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the current state for a locally available model. The method\nwill return null for a model that does not exist or is not\navailable locally.",
										"returns": "\n  The model state for the given model id, or null if the model\n  is not available locally.\n"
									},
									"parameters": [
										{
											"id": 7470,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to get the state of.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"id": 7388,
														"name": "IModelState"
													},
													{
														"type": "intrinsic",
														"name": "null"
													}
												]
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 103,
									"character": 15
								}
							]
						},
						{
							"id": 7482,
							"name": "getModelsRequiringSync",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7483,
									"name": "getModelsRequiringSync",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets all model records for models that require synchronization to the\nserver.",
										"returns": "\n  Model meta data for models that are deletes, created, or uncommitted.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 7426,
													"name": "IModelMetaData"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 153,
									"character": 24
								}
							]
						},
						{
							"id": 7484,
							"name": "getSubscribedModels",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7485,
									"name": "getSubscribedModels",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets a model records for models that are subscribed.",
										"returns": "\n  All meta data entries for models with the subscribed flag set.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 7426,
													"name": "IModelMetaData"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 161,
									"character": 21
								}
							]
						},
						{
							"id": 7450,
							"name": "initiateModelCreation",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7451,
									"name": "initiateModelCreation",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Begins the process of creating a model. This happens when the client\ncreates the model, but before the server acknowledges the creation.\nThis could be when the client is offline or even when online since\nthe process with the server is async.",
										"returns": "\n  The meta data record created by this operation.\n"
									},
									"parameters": [
										{
											"id": 7452,
											"name": "modelCreationData",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The data the capture how the model was created."
											},
											"type": {
												"type": "reference",
												"id": 7403,
												"name": "IModelCreationData"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 7426,
												"name": "IModelMetaData"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 41,
									"character": 23
								}
							]
						},
						{
							"id": 7459,
							"name": "initiateModelDeletion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7460,
									"name": "initiateModelDeletion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Initiates the deletion of a model. This will remove the local model data\nbut leave the model marked as deletion until the model deletion is\nconfirmed."
									},
									"parameters": [
										{
											"id": 7461,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to delete.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 72,
									"character": 23
								}
							]
						},
						{
							"id": 7474,
							"name": "modelMetaDataExists",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7475,
									"name": "modelMetaDataExists",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if a model record exists for the specified model id. This\ndoes not imply that the model is subscribed, or available.",
										"returns": "\n  True if a meta data record exists; false otherwise.\n"
									},
									"parameters": [
										{
											"id": 7476,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to check.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "boolean"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 124,
									"character": 21
								}
							]
						},
						{
							"id": 7497,
							"name": "processLocalOperation",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7498,
									"name": "processLocalOperation",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Processes a new local operation. The modelId will be read from the local\noperation. The local operation operation will be stored. The model meta\ndata will be updated to indicate that the model has uncommitted changes\nand the lastSequenceNumber number will be updated in the model details.\nThe syncRequired flag will also be updated appropriately."
									},
									"parameters": [
										{
											"id": 7499,
											"name": "localOp",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The local operation to process.\n"
											},
											"type": {
												"type": "reference",
												"id": 4690,
												"name": "ILocalOperationData"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 214,
									"character": 23
								}
							]
						},
						{
							"id": 7490,
							"name": "processOfflineModelUpdate",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7491,
									"name": "processOfflineModelUpdate",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Updates the model state based on an update. Updates can either contain a\ndata update or a permission update."
									},
									"parameters": [
										{
											"id": 7492,
											"name": "update",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The update to apply.\n"
											},
											"type": {
												"type": "reference",
												"id": 7416,
												"name": "IModelUpdate"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 186,
									"character": 27
								}
							]
						},
						{
							"id": 7500,
							"name": "processOperationAck",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7501,
									"name": "processOperationAck",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Processes a local operation acknowledgment from the server. This will\nremove the corresponding local operation and store the new server\noperation, which is essentially the version of the local operation that\nwas (potentially) transformed such that it now represents the version\nof the local operation that the server executed. The uncommitted and\nsyncRequired flags will be updated appropriately if this ack means\nthat there are no more outstanding changes in the model."
									},
									"parameters": [
										{
											"id": 7502,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model that received the ack."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7503,
											"name": "seqNo",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The sequence number of the local operation that was acknowledged."
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7504,
											"name": "serverOp",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The server operation to store in place of the local operation.\n"
											},
											"type": {
												"type": "reference",
												"id": 4684,
												"name": "IServerOperationData"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 232,
									"character": 21
								}
							]
						},
						{
							"id": 7493,
							"name": "processServerOperation",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7494,
									"name": "processServerOperation",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Processes a new server operation for a model. The modelId is inferred from\nthe id in the serverOp. The localOps passed in are the new local\noperations that are the result of their transformation against the new\nserver operation. Not the modelId of the localOperations must al match\nthe modelId of the serverOp. This operation will update the modified time\nand version of the model meta data. The new server operation will be\nstored."
									},
									"parameters": [
										{
											"id": 7495,
											"name": "serverOp",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The new server operation to process."
											},
											"type": {
												"type": "reference",
												"id": 4684,
												"name": "IServerOperationData"
											}
										},
										{
											"id": 7496,
											"name": "localOps",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The transformed local operations to store.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 4690,
													"name": "ILocalOperationData"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 202,
									"character": 24
								}
							]
						},
						{
							"id": 7471,
							"name": "setModelState",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7472,
									"name": "setModelState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the models state. This will merge the state of the model with\nany existing meta data records for the model."
									},
									"parameters": [
										{
											"id": 7473,
											"name": "modelState",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The model state to set.\n"
											},
											"type": {
												"type": "reference",
												"id": 7388,
												"name": "IModelState"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 112,
									"character": 15
								}
							]
						},
						{
							"id": 7505,
							"name": "snapshotModel",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7506,
									"name": "snapshotModel",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Updates an offline models snapshot. This only applies to models that are\nlocally available."
									},
									"parameters": [
										{
											"id": 7507,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to set the snapshot for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7508,
											"name": "version",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The new version of the snapshot."
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7509,
											"name": "sequenceNumber",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The current sequence number for the local client."
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 7510,
											"name": "modelData",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The data of the model at the version.\n"
											},
											"type": {
												"type": "reference",
												"id": 1249,
												"name": "IObjectValue"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 247,
									"character": 15
								}
							]
						},
						{
							"id": 7486,
							"name": "updateSubscriptions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7487,
									"name": "updateSubscriptions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds and or removes subscriptions. If no model record exists it will be\ncreated. If the record exists, the subscribed flags will be modified. If\na model is already subscribe and it is subscribed again, the operation\nwill be a no-op for that model. If the model does not exist or is not\nsubscribed and is asked to be unsubscribed it will be a no-op for that\nmodel."
									},
									"parameters": [
										{
											"id": 7488,
											"name": "subscribe",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The set of model ids to subscribe.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										},
										{
											"id": 7489,
											"name": "unsubscribe",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The set of model ids to unsubscribe.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelStore.ts",
									"line": 177,
									"character": 21
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								7511,
								7453,
								7462,
								7465,
								7480,
								7456,
								7477,
								7468,
								7482,
								7484,
								7450,
								7459,
								7474,
								7497,
								7490,
								7500,
								7493,
								7471,
								7505,
								7486
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelStore.ts",
							"line": 28,
							"character": 28
						}
					]
				},
				{
					"id": 7416,
					"name": "IModelUpdate",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7418,
							"name": "dataUpdate",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelUpdate.ts",
									"line": 22,
									"character": 12
								}
							],
							"type": {
								"type": "reference",
								"id": 7420,
								"name": "IModelDataUpdate"
							}
						},
						{
							"id": 7417,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelUpdate.ts",
									"line": 21,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 7419,
							"name": "permissionsUpdate",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelUpdate.ts",
									"line": 23,
									"character": 19
								}
							],
							"type": {
								"type": "reference",
								"id": 4219,
								"name": "ModelPermissions"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								7418,
								7417,
								7419
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelUpdate.ts",
							"line": 20,
							"character": 29
						}
					]
				},
				{
					"id": 4684,
					"name": "IServerOperationData",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 4685,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 21,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4689,
							"name": "operation",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 25,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"id": 4697,
								"name": "IModelOperationData"
							}
						},
						{
							"id": 4686,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 22,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4688,
							"name": "timestamp",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 24,
									"character": 11
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 4687,
							"name": "version",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/storage/api/IModelOperationData.ts",
									"line": 23,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4685,
								4689,
								4686,
								4688,
								4687
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IModelOperationData.ts",
							"line": 20,
							"character": 37
						}
					]
				},
				{
					"id": 7535,
					"name": "IStorageAdapter",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 7536,
							"name": "adapterId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7537,
									"name": "adapterId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique id of this storage adapter. Each adapter class\nimplementation must provide a unique id."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IStorageAdapter.ts",
									"line": 26,
									"character": 11
								}
							]
						},
						{
							"id": 7549,
							"name": "destroy",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7550,
									"name": "destroy",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the underlying storage behind this store, deleting all data.\nThe storage adapter will be disposed after calling destroy."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IStorageAdapter.ts",
									"line": 62,
									"character": 9
								}
							]
						},
						{
							"id": 7545,
							"name": "dispose",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7546,
									"name": "dispose",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Disposes of this storage adapter, releasing any resources. Calls\nto the storage after calling dispose will likely throw errors."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IStorageAdapter.ts",
									"line": 49,
									"character": 9
								}
							]
						},
						{
							"id": 7553,
							"name": "identityStore",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7554,
									"name": "identityStore",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the identity store which provides storage for the Identity\nsubsystem.",
										"returns": "The identity store.\n"
									},
									"type": {
										"type": "reference",
										"id": 7518,
										"name": "IIdentityStore"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IStorageAdapter.ts",
									"line": 78,
									"character": 15
								}
							]
						},
						{
							"id": 7538,
							"name": "initialize",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7539,
									"name": "initialize",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Initializes the offline data store. The storage will be created\nif it does not exists."
									},
									"parameters": [
										{
											"id": 7540,
											"name": "namespace",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The namespace of the domain being opened."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7541,
											"name": "domainId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The id of the domain being opened."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7542,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The user name of the user opening the store.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IStorageAdapter.ts",
									"line": 36,
									"character": 12
								}
							]
						},
						{
							"id": 7547,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7548,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the storage is disposed.",
										"returns": "true if the storage is disposed, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IStorageAdapter.ts",
									"line": 56,
									"character": 12
								}
							]
						},
						{
							"id": 7543,
							"name": "isInitialized",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7544,
									"name": "isInitialized",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the storage is initialized.",
										"returns": "true if the storage is initialized, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IStorageAdapter.ts",
									"line": 43,
									"character": 15
								}
							]
						},
						{
							"id": 7551,
							"name": "modelStore",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 7552,
									"name": "modelStore",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model store which provides storage for the Real Time\nModel subsystem.",
										"returns": "The model store.\n"
									},
									"type": {
										"type": "reference",
										"id": 7449,
										"name": "IModelStore"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/storage/api/IStorageAdapter.ts",
									"line": 70,
									"character": 12
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								7536,
								7549,
								7545,
								7553,
								7538,
								7547,
								7543,
								7551
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/storage/api/IStorageAdapter.ts",
							"line": 21,
							"character": 32
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 8175,
							"name": "IdbStorageAdapter"
						}
					]
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						7531,
						7518,
						4690,
						7403,
						7377,
						7420,
						7426,
						7767,
						4697,
						7381,
						7388,
						7449,
						7416,
						4684,
						7535
					]
				},
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						8175
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/storage/api/index.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 9510,
			"name": "Presence",
			"kind": 1,
			"kindString": "Module",
			"flags": {
				"isExported": true
			},
			"originalName": "/Users/michael/development/convergence/client/convergence-client-javascript/src/main/presence/index.ts",
			"comment": {
				"shortText": "The Presence subsytem provides the ability to tell who is available\nfor collaboration and what their current status is.",
				"text": "The entrance point is the [[PresenceService]].\nUser Presence tracks the availability and state of\nDomain Users within the System.  Users are generally available or not\nif they have at least one session that is connected. Each user in the\nsystem can set presence state. Presence state is global for each user\nin that the state is shared across all sessions.\n\nSee the [developer guide](https://docs.convergence.io/guide/presence/overview.html) for additional background.\n"
			},
			"children": [
				{
					"id": 9195,
					"name": "PresenceAvailabilityChangedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the availability of a particular [[DomainUser]] changed."
					},
					"children": [
						{
							"id": 9198,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 9201,
									"name": "new PresenceAvailabilityChangedEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 9202,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 812,
												"name": "DomainUser"
											}
										},
										{
											"id": 9203,
											"name": "available",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 9195,
										"name": "PresenceAvailabilityChangedEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceAvailabilityChangedEvent.ts",
									"line": 29,
									"character": 71
								}
							]
						},
						{
							"id": 9200,
							"name": "available",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The new availability of the [[user]]."
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceAvailabilityChangedEvent.ts",
									"line": 40,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 9197,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceAvailabilityChangedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "PresenceAvailabilityChangedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 9193,
								"name": "IPresenceEvent.name"
							}
						},
						{
							"id": 9199,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated with the [[UserPresence|presence]] event."
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceAvailabilityChangedEvent.ts",
									"line": 35,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9192,
								"name": "IPresenceEvent.user"
							}
						},
						{
							"id": 9196,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceAvailabilityChangedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "availability_changed"
							},
							"defaultValue": "\"availability_changed\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								9198
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9200,
								9197,
								9199,
								9196
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/events/PresenceAvailabilityChangedEvent.ts",
							"line": 23,
							"character": 45
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9191,
							"name": "IPresenceEvent"
						}
					]
				},
				{
					"id": 9400,
					"name": "PresenceService",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[PresenceService]] is the main entry point into Convergence's User\nPresence subsystem. User Presence tracks the availability and state of\nDomain Users within the System.  Users are generally available or not\nif they have at least one session that is connected. Each user in the\nsystem can set presence state. Presence state is global for each user\nin that the state is shared across all sessions.",
						"text": "See the [developer guide](https://docs.convergence.io/guide/presence/overview.html) for additional background.\n\nSee [[PresenceServiceEvents]] for the events that may be emitted on this service.\n"
					},
					"children": [
						{
							"id": 9475,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9476,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9477,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9478,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 9433,
							"name": "clearState",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9434,
									"name": "clearState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Deletes all items in the local user's presence state."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 286,
									"character": 19
								}
							]
						},
						{
							"id": 9500,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9501,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 9420,
							"name": "isAvailable",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9421,
									"name": "isAvailable",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the local user is available.",
										"returns": "\n  True if the local user is available, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 203,
									"character": 20
								}
							]
						},
						{
							"id": 9496,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9497,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9498,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9499,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 9479,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9480,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9481,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9482,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 9483,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9484,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9485,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9486,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 9437,
							"name": "presence",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9438,
									"name": "presence",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the given user's current presence.",
										"returns": "a promise that resolves with the give user's presence\n"
									},
									"parameters": [
										{
											"id": 9439,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a username or [[DomainUserId]]\n"
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9179,
												"name": "UserPresence"
											}
										],
										"name": "Promise"
									}
								},
								{
									"id": 9440,
									"name": "presence",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current presence of all the provided users.",
										"returns": "a promise that resolves with the give users' presences\n"
									},
									"parameters": [
										{
											"id": 9441,
											"name": "users",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an array of usernames or [[DomainUserId]]s\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 767,
													"name": "DomainUserIdentifier"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 9179,
													"name": "UserPresence"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 315,
									"character": 17
								},
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 324,
									"character": 17
								},
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 325,
									"character": 17
								}
							]
						},
						{
							"id": 9487,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9488,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 9492,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9493,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9494,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9495,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 9489,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9490,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9491,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 9428,
							"name": "removeState",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9429,
									"name": "removeState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the key-value pair of the provided key on the local user's presence state."
									},
									"parameters": [
										{
											"id": 9430,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an existing key in the local user's presence state\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								},
								{
									"id": 9431,
									"name": "removeState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all the entries in the local user's presence state matching the provided array of keys."
									},
									"parameters": [
										{
											"id": 9432,
											"name": "keys",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an array of keys\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 251,
									"character": 20
								},
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 258,
									"character": 20
								},
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 260,
									"character": 20
								}
							]
						},
						{
							"id": 9418,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9419,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n  The session that this client is connected with.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 193,
									"character": 16
								}
							]
						},
						{
							"id": 9422,
							"name": "setState",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9423,
									"name": "setState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given items on the local user's presence state."
									},
									"parameters": [
										{
											"id": 9424,
											"name": "state",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a `Map` or object literal whose keys are `String`s.\n"
											},
											"type": {
												"type": "reference",
												"id": 965,
												"name": "StringMapLike"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								},
								{
									"id": 9425,
									"name": "setState",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets a single key-value pair on the local user's presence state."
									},
									"parameters": [
										{
											"id": 9426,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new pair's key"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9427,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new pair's value\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 212,
									"character": 17
								},
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 220,
									"character": 17
								},
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 221,
									"character": 17
								}
							]
						},
						{
							"id": 9435,
							"name": "state",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9436,
									"name": "state",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a `Map` representing the local user's presence state.",
										"returns": "a `Map` of the local user's presence state\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "Map"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 303,
									"character": 14
								}
							]
						},
						{
							"id": 9442,
							"name": "subscribe",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9443,
									"name": "subscribe",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a [[UserPresenceSubscription]] linked to the provided user.  From\nthis object, consumers can get the current presence and listen to changes\non the user's presence state or availability.",
										"text": "Make sure to [[UserPresenceSubscription.unsubscribe]] when you're done with\nthe returned subscription.\n",
										"returns": "a promise that resolves with a subscription to the given user's presence changes\n"
									},
									"parameters": [
										{
											"id": 9444,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a username or [[DomainUserId]]\n"
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9339,
												"name": "UserPresenceSubscription"
											}
										],
										"name": "Promise"
									}
								},
								{
									"id": 9445,
									"name": "subscribe",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns an array of [[UserPresenceSubscription]]s corresponding to the\nprovided users.  From these objects, consumers can get the current presence\nand listen to changes on the user's presence state or availability.",
										"text": "Make sure to [[UserPresenceSubscription.unsubscribe]] when you're done with\nthe returned subscriptions.\n",
										"returns": "a promise that resolves with an array of subscriptions to the\ngiven users' presence changes\n"
									},
									"parameters": [
										{
											"id": 9446,
											"name": "users",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an array of usernames or [[DomainUserId]]s\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 767,
													"name": "DomainUserIdentifier"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 9339,
													"name": "UserPresenceSubscription"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 349,
									"character": 18
								},
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 364,
									"character": 18
								},
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 365,
									"character": 18
								}
							]
						},
						{
							"id": 9401,
							"name": "Events",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this service could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\npresenceService.on(PresenceService.Events.STATE_SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"children": [
								{
									"id": 9405,
									"name": "AVAILABILITY_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/presence/PresenceService.ts",
											"line": 122,
											"character": 24
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "PresenceAvailabilityChangedEvent.NAME"
								},
								{
									"id": 9404,
									"name": "STATE_CLEARED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/presence/PresenceService.ts",
											"line": 121,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "PresenceStateClearedEvent.NAME"
								},
								{
									"id": 9403,
									"name": "STATE_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/presence/PresenceService.ts",
											"line": 120,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "PresenceStateRemovedEvent.NAME"
								},
								{
									"id": 9402,
									"name": "STATE_SET",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/presence/PresenceService.ts",
											"line": 119,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "PresenceStateSetEvent.NAME"
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9405,
										9404,
										9403,
										9402
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 118,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								9475,
								9433,
								9500,
								9420,
								9496,
								9479,
								9483,
								9437,
								9487,
								9492,
								9489,
								9428,
								9418,
								9422,
								9435,
								9442
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9401
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/PresenceService.ts",
							"line": 106,
							"character": 28
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 9191,
									"name": "IPresenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					]
				},
				{
					"id": 9205,
					"name": "PresenceStateClearedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a particular [[DomainUser]]'s [[UserPresence.state|state]] was cleared."
					},
					"children": [
						{
							"id": 9208,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 9210,
									"name": "new PresenceStateClearedEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 9211,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 812,
												"name": "DomainUser"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 9205,
										"name": "PresenceStateClearedEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateClearedEvent.ts",
									"line": 29,
									"character": 64
								}
							]
						},
						{
							"id": 9207,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateClearedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "PresenceStateClearedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 9193,
								"name": "IPresenceEvent.name"
							}
						},
						{
							"id": 9209,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated with the [[UserPresence|presence]] event."
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateClearedEvent.ts",
									"line": 35,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9192,
								"name": "IPresenceEvent.user"
							}
						},
						{
							"id": 9206,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateClearedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "state_cleared"
							},
							"defaultValue": "\"state_cleared\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								9208
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9207,
								9209,
								9206
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/events/PresenceStateClearedEvent.ts",
							"line": 23,
							"character": 38
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9191,
							"name": "IPresenceEvent"
						}
					]
				},
				{
					"id": 9213,
					"name": "PresenceStateRemovedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when one or more key-value pairs of a particular [[DomainUser]]'s\npresence [[UserPresence.state|state]] were [[PresenceService.removeState|removed]]."
					},
					"children": [
						{
							"id": 9216,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 9219,
									"name": "new PresenceStateRemovedEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 9220,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 812,
												"name": "DomainUser"
											}
										},
										{
											"id": 9221,
											"name": "keys",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 9213,
										"name": "PresenceStateRemovedEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateRemovedEvent.ts",
									"line": 30,
									"character": 64
								}
							]
						},
						{
							"id": 9218,
							"name": "keys",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The keys of the state items that were just removed."
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateRemovedEvent.ts",
									"line": 41,
									"character": 24
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						},
						{
							"id": 9215,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateRemovedEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "PresenceStateRemovedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 9193,
								"name": "IPresenceEvent.name"
							}
						},
						{
							"id": 9217,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated with the [[UserPresence|presence]] event."
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateRemovedEvent.ts",
									"line": 36,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9192,
								"name": "IPresenceEvent.user"
							}
						},
						{
							"id": 9214,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateRemovedEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "state_removed"
							},
							"defaultValue": "\"state_removed\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								9216
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9218,
								9215,
								9217,
								9214
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/events/PresenceStateRemovedEvent.ts",
							"line": 24,
							"character": 38
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9191,
							"name": "IPresenceEvent"
						}
					]
				},
				{
					"id": 9223,
					"name": "PresenceStateSetEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when one or more items of a particular [[DomainUser]]'s presence\n[[UserPresence.state|state]] were [[PresenceService.setState|set]]."
					},
					"children": [
						{
							"id": 9226,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 9229,
									"name": "new PresenceStateSetEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 9230,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 812,
												"name": "DomainUser"
											}
										},
										{
											"id": 9231,
											"name": "state",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "Map"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 9223,
										"name": "PresenceStateSetEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateSetEvent.ts",
									"line": 30,
									"character": 60
								}
							]
						},
						{
							"id": 9225,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateSetEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "PresenceStateSetEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 9193,
								"name": "IPresenceEvent.name"
							}
						},
						{
							"id": 9228,
							"name": "state",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The entire new state (as opposed to only the items that changed) for the\n[[user]]."
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateSetEvent.ts",
									"line": 42,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "string"
									},
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "Map"
							}
						},
						{
							"id": 9227,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated with the [[UserPresence|presence]] event."
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateSetEvent.ts",
									"line": 36,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 9192,
								"name": "IPresenceEvent.user"
							}
						},
						{
							"id": 9224,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/PresenceStateSetEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "state_set"
							},
							"defaultValue": "\"state_set\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								9226
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9225,
								9228,
								9227,
								9224
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/events/PresenceStateSetEvent.ts",
							"line": 24,
							"character": 34
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 9191,
							"name": "IPresenceEvent"
						}
					]
				},
				{
					"id": 9179,
					"name": "UserPresence",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[UserPresence]] class represents the Presence state of a single domain\nuser within Convergence. An instance of [[UserPresence]] can be obtained\nfrom the [[PresenceService]]."
					},
					"children": [
						{
							"id": 9183,
							"name": "available",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if the user is online in at least one session, false otherwise."
							},
							"sources": [
								{
									"fileName": "src/main/presence/UserPresence.ts",
									"line": 49,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 9182,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The domain user that this instance represents the presence of."
							},
							"sources": [
								{
									"fileName": "src/main/presence/UserPresence.ts",
									"line": 44,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 9188,
							"name": "state",
							"kind": 262144,
							"kindString": "Accessor",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"comment": {
								"shortText": "Returns the current state associated with this user's online presence."
							},
							"getSignature": [
								{
									"id": 9189,
									"name": "__get",
									"kind": 524288,
									"kindString": "Get signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current state associated with this user's online presence."
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "Map"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/UserPresence.ts",
									"line": 58,
									"character": 18
								}
							]
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9183,
								9182
							]
						},
						{
							"title": "Accessors",
							"kind": 262144,
							"children": [
								9188
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/UserPresence.ts",
							"line": 25,
							"character": 25
						}
					]
				},
				{
					"id": 9339,
					"name": "UserPresenceSubscription",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[UserPresenceSubscription]] is a subscription to presence state\nand availability changes of a specific Domain User.  The current state\nand availability can be queried from this object, OR you can use\n[[asObservable]] to subscribe to changes.",
						"text": "Instances of this can be obtained from [[PresenceService.subscribe]].\n\nMake sure to [[unsubscribe]] when you're done using this.\n"
					},
					"children": [
						{
							"id": 9351,
							"name": "available",
							"kind": 262144,
							"kindString": "Accessor",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"comment": {
								"shortText": "Returns a boolean representing the associated user's current availabilty."
							},
							"getSignature": [
								{
									"id": 9352,
									"name": "__get",
									"kind": 524288,
									"kindString": "Get signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a boolean representing the associated user's current availabilty."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 119,
									"character": 22
								}
							]
						},
						{
							"id": 9353,
							"name": "state",
							"kind": 262144,
							"kindString": "Accessor",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"comment": {
								"shortText": "Returns the associated user's current presence state."
							},
							"getSignature": [
								{
									"id": 9354,
									"name": "__get",
									"kind": 524288,
									"kindString": "Get signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the associated user's current presence state."
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "Map"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 126,
									"character": 18
								}
							]
						},
						{
							"id": 9349,
							"name": "user",
							"kind": 262144,
							"kindString": "Accessor",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"comment": {
								"shortText": "The user associated to this presence subscription."
							},
							"getSignature": [
								{
									"id": 9350,
									"name": "__get",
									"kind": 524288,
									"kindString": "Get signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The user associated to this presence subscription."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 112,
									"character": 17
								}
							]
						},
						{
							"id": 9359,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9360,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9361,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9362,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 9355,
							"name": "asObservable",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9356,
									"name": "asObservable",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns this presence subscription as an\n[RxJS Observable](https://rxjs-dev.firebaseapp.com/guide/observable)."
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9179,
												"name": "UserPresence"
											}
										],
										"name": "Observable"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 134,
									"character": 21
								}
							]
						},
						{
							"id": 9384,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9385,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 9380,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9381,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9382,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9383,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 9363,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9364,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9365,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9366,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 9367,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9368,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9369,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9370,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 9371,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9372,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 9376,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9377,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9378,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 9379,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 9191,
														"name": "IPresenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 9373,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9374,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 9375,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 9191,
												"name": "IPresenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 9357,
							"name": "unsubscribe",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 9358,
									"name": "unsubscribe",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Unsubscribes from future presence changes for the associated user,\ncleaning up any needed resources."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 142,
									"character": 20
								}
							]
						},
						{
							"id": 9340,
							"name": "Events",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events a subscription could emit to each event's unique name."
							},
							"children": [
								{
									"id": 9344,
									"name": "AVAILABILITY_CHANGED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/presence/UserPresenceSubscription.ts",
											"line": 91,
											"character": 24
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "PresenceAvailabilityChangedEvent.NAME"
								},
								{
									"id": 9343,
									"name": "STATE_CLEARED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/presence/UserPresenceSubscription.ts",
											"line": 90,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "PresenceStateClearedEvent.NAME"
								},
								{
									"id": 9342,
									"name": "STATE_REMOVED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/presence/UserPresenceSubscription.ts",
											"line": 89,
											"character": 17
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "PresenceStateRemovedEvent.NAME"
								},
								{
									"id": 9341,
									"name": "STATE_SET",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/presence/UserPresenceSubscription.ts",
											"line": 88,
											"character": 13
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "PresenceStateSetEvent.NAME"
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										9344,
										9343,
										9342,
										9341
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 87,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							}
						}
					],
					"groups": [
						{
							"title": "Accessors",
							"kind": 262144,
							"children": [
								9351,
								9353,
								9349
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								9359,
								9355,
								9384,
								9380,
								9363,
								9367,
								9371,
								9376,
								9373,
								9357
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								9340
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/UserPresenceSubscription.ts",
							"line": 82,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 9191,
									"name": "IPresenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					]
				},
				{
					"id": 9191,
					"name": "IPresenceEvent",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The base interface for [[UserPresence]]-related events."
					},
					"children": [
						{
							"id": 9193,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/util/IConvergenceEvent.ts",
									"line": 30,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 9192,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user associated with the [[UserPresence|presence]] event."
							},
							"sources": [
								{
									"fileName": "src/main/presence/events/IPresenceEvent.ts",
									"line": 27,
									"character": 15
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								9193,
								9192
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/events/IPresenceEvent.ts",
							"line": 23,
							"character": 31
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 9195,
							"name": "PresenceAvailabilityChangedEvent"
						},
						{
							"type": "reference",
							"id": 9205,
							"name": "PresenceStateClearedEvent"
						},
						{
							"type": "reference",
							"id": 9213,
							"name": "PresenceStateRemovedEvent"
						},
						{
							"type": "reference",
							"id": 9223,
							"name": "PresenceStateSetEvent"
						}
					]
				},
				{
					"id": 9395,
					"name": "PresenceServiceEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "All the events that could be emitted from the [[PresenceService]]."
					},
					"children": [
						{
							"id": 9399,
							"name": "AVAILABILITY_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the availability of a particular [[DomainUser]] changes.\nThe actual event emitted is a [[PresenceAvailabilityChangedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 89,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9398,
							"name": "STATE_CLEARED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when a particular [[DomainUser]]'s [[UserPresence.state|state]] was cleared.\nThe actual event emitted is a [[PresenceStateClearedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 81,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9397,
							"name": "STATE_REMOVED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when one or more key-value pairs of a particular [[DomainUser]]'s\npresence [[UserPresence.state|state]] were [[PresenceService.removeState|removed]].",
								"text": "The actual event emitted is a [[PresenceStateRemovedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 73,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9396,
							"name": "STATE_SET",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when one or more items of a particular [[DomainUser]]'s presence\n[[UserPresence.state|state]] are [[PresenceService.setState|set]].",
								"text": "The actual event emitted is a [[PresenceStateSetEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/presence/PresenceService.ts",
									"line": 63,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								9399,
								9398,
								9397,
								9396
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/PresenceService.ts",
							"line": 54,
							"character": 38
						}
					]
				},
				{
					"id": 9334,
					"name": "UserPresenceSubscriptionEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "All the events that could be emitted from a [[UserPresenceSubscription]]."
					},
					"children": [
						{
							"id": 9338,
							"name": "AVAILABILITY_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the availability of a particular [[DomainUser]] changes.\nThe actual event emitted is a [[PresenceAvailabilityChangedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 67,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9337,
							"name": "STATE_CLEARED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when a particular [[DomainUser]]'s [[UserPresence.state|state]] was cleared.\nThe actual event emitted is a [[PresenceStateClearedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 59,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9336,
							"name": "STATE_REMOVED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when one or more key-value pairs of a particular [[DomainUser]]'s\npresence [[UserPresence.state|state]] were [[PresenceService.removeState|removed]].",
								"text": "The actual event emitted is a [[PresenceStateRemovedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 51,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 9335,
							"name": "STATE_SET",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when one or more items of a particular [[DomainUser]]'s presence\n[[UserPresence.state|state]] are [[PresenceService.setState|set]].",
								"text": "The actual event emitted is a [[PresenceStateSetEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/presence/UserPresenceSubscription.ts",
									"line": 41,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								9338,
								9337,
								9336,
								9335
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/presence/UserPresenceSubscription.ts",
							"line": 32,
							"character": 47
						}
					]
				}
			],
			"groups": [
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						9195,
						9400,
						9205,
						9213,
						9223,
						9179,
						9339
					]
				},
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						9191,
						9395,
						9334
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/presence/index.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 7238,
			"name": "Real Time Data",
			"kind": 1,
			"kindString": "Module",
			"flags": {
				"isExported": true
			},
			"originalName": "/Users/michael/development/convergence/client/convergence-client-javascript/src/main/model/index.ts",
			"comment": {
				"shortText": "When considering implementing real-time collaboration, most developers think\n(and only think!) about the various algorithms for synchronizing data. This\nindeed is a core consideration for collaborative editing systems, and\nmany tomes have been written about it.  Convergence's main goal is to insulate\ndevelopers from the difficulties of implementing Operational Transformation.\nIt does this by supporting a strict set of data: JSON.",
				"text": "See our [developer guide](https://docs.convergence.io/guide/models/overview.html)\nfor additional information.\n\nTo get started with Real Time Data, get an instance of the [[ModelService]]\nfrom the [[ConvergenceDomain]].\n"
			},
			"children": [
				{
					"id": 3895,
					"name": "ArrayInsertEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a value is inserted into a [[RealTimeArray]].  This could be from a\n[[RealTimeArray.insert]], [[RealTimeArray.push]], [[RealTimeArray.unshift]], or some\nother method."
					},
					"children": [
						{
							"id": 3899,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeArray]] or [[HistoricalArray]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayInsertEvent.ts",
									"line": 50,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1659,
								"name": "ObservableArray"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 3903,
							"name": "index",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The index at which the new value was inserted"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayInsertEvent.ts",
									"line": 70,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 3902,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayInsertEvent.ts",
									"line": 65,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 3897,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayInsertEvent.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ArrayInsertEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 3901,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayInsertEvent.ts",
									"line": 60,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 3900,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayInsertEvent.ts",
									"line": 55,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 3904,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the value that was just inserted"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayInsertEvent.ts",
									"line": 75,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 3896,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayInsertEvent.ts",
									"line": 28,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "insert"
							},
							"defaultValue": "\"insert\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3899,
								3903,
								3902,
								3897,
								3901,
								3900,
								3904,
								3896
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ArrayInsertEvent.ts",
							"line": 27,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 3913,
					"name": "ArrayRemoveEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a value is removed from a [[RealTimeArray]]."
					},
					"children": [
						{
							"id": 3917,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeArray]] or [[HistoricalArray]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
									"line": 48,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1659,
								"name": "ObservableArray"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 3921,
							"name": "index",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The index whose value was removed (and possibly replaced by another left-shifted value)"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
									"line": 68,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 3920,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
									"line": 63,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 3915,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ArrayRemoveEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 3922,
							"name": "oldValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the [[RealTimeElement]] that was removed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
									"line": 73,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 3919,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
									"line": 58,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 3918,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
									"line": 53,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 3914,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "remove"
							},
							"defaultValue": "\"remove\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3917,
								3921,
								3920,
								3915,
								3922,
								3919,
								3918,
								3914
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ArrayRemoveEvent.ts",
							"line": 25,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 3931,
					"name": "ArrayReorderEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when an element is reordered from a [[RealTimeArray]].",
						"text": "The value that was moved can be found at [[toIndex]].\n"
					},
					"children": [
						{
							"id": 3935,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeArray]] or [[HistoricalArray]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayReorderEvent.ts",
									"line": 49,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1659,
								"name": "ObservableArray"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 3939,
							"name": "fromIndex",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The prior index of the moved element"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayReorderEvent.ts",
									"line": 69,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 3938,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayReorderEvent.ts",
									"line": 64,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 3933,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayReorderEvent.ts",
									"line": 32,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ArrayReorderEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 3937,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayReorderEvent.ts",
									"line": 59,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 3940,
							"name": "toIndex",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The new index of the element, whose value can be accessed by `element.get(toIndex)`"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayReorderEvent.ts",
									"line": 74,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 3936,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayReorderEvent.ts",
									"line": 54,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 3932,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArrayReorderEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "reorder"
							},
							"defaultValue": "\"reorder\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3935,
								3939,
								3938,
								3933,
								3937,
								3940,
								3936,
								3932
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ArrayReorderEvent.ts",
							"line": 26,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 3949,
					"name": "ArraySetEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a value is set on a [[RealTimeArray]]."
					},
					"children": [
						{
							"id": 3953,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeArray]] or [[HistoricalArray]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 49,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1659,
								"name": "ObservableArray"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 3957,
							"name": "index",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The index at whose value was set (replaced)"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 69,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 3956,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 64,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 3951,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ArraySetEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 3959,
							"name": "oldValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the previous value at this index, which has been\nreplaced by `value`"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 80,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 3955,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 59,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 3954,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 54,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 3958,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the new value"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 74,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 3950,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "set"
							},
							"defaultValue": "\"set\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3953,
								3957,
								3956,
								3951,
								3959,
								3955,
								3954,
								3958,
								3950
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ArraySetEvent.ts",
							"line": 25,
							"character": 26
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 3969,
					"name": "ArraySetValueEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the entire [[RealTimeArray.value|value]] of a [[RealTimeArray]] is set,\nmeaning its entire contents were replaced (or initially set)"
					},
					"children": [
						{
							"id": 3973,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeArray]] or [[HistoricalArray]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetValueEvent.ts",
									"line": 46,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1659,
								"name": "ObservableArray"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 3976,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetValueEvent.ts",
									"line": 61,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 3971,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetValueEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ArraySetValueEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 3975,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetValueEvent.ts",
									"line": 56,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 3974,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetValueEvent.ts",
									"line": 51,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 3970,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ArraySetValueEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "value"
							},
							"defaultValue": "\"value\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3973,
								3976,
								3971,
								3975,
								3974,
								3970
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ArraySetValueEvent.ts",
							"line": 25,
							"character": 31
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4035,
					"name": "BooleanSetValueEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the [[RealTimeBoolean.value]] of a [[RealTimeBoolean]] is set."
					},
					"children": [
						{
							"id": 4039,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeBoolean]] or [[HistoricalBoolean]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/BooleanSetValueEvent.ts",
									"line": 45,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 2024,
								"name": "ObservableBoolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4042,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/BooleanSetValueEvent.ts",
									"line": 60,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4037,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/BooleanSetValueEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "BooleanSetValueEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4041,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/BooleanSetValueEvent.ts",
									"line": 55,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4040,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/BooleanSetValueEvent.ts",
									"line": 50,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4036,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/BooleanSetValueEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "value"
							},
							"defaultValue": "\"value\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4039,
								4042,
								4037,
								4041,
								4040,
								4036
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/BooleanSetValueEvent.ts",
							"line": 24,
							"character": 33
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4355,
					"name": "CollaboratorClosedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a remote user closes a model.  This is only emitted if the\ncurrent user has that particular model already open."
					},
					"children": [
						{
							"id": 4358,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 4361,
									"name": "new CollaboratorClosedEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 4362,
											"name": "src",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										},
										{
											"id": 4363,
											"name": "collaborator",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 3238,
												"name": "ModelCollaborator"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 4355,
										"name": "CollaboratorClosedEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorClosedEvent.ts",
									"line": 31,
									"character": 62
								}
							]
						},
						{
							"id": 4360,
							"name": "collaborator",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[DomainUser]] / sessionID of the remote collaborator."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorClosedEvent.ts",
									"line": 42,
									"character": 32
								}
							],
							"type": {
								"type": "reference",
								"id": 3238,
								"name": "ModelCollaborator"
							}
						},
						{
							"id": 4357,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorClosedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "CollaboratorClosedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4359,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model that was closed."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorClosedEvent.ts",
									"line": 37,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4356,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorClosedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "collaborator_closed"
							},
							"defaultValue": "\"collaborator_closed\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								4358
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4360,
								4357,
								4359,
								4356
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/CollaboratorClosedEvent.ts",
							"line": 25,
							"character": 36
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4345,
					"name": "CollaboratorOpenedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a remote user opens a model.  This is only emitted if the\ncurrent user has that particular model already open."
					},
					"children": [
						{
							"id": 4348,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 4351,
									"name": "new CollaboratorOpenedEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 4352,
											"name": "src",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										},
										{
											"id": 4353,
											"name": "collaborator",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 3238,
												"name": "ModelCollaborator"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 4345,
										"name": "CollaboratorOpenedEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorOpenedEvent.ts",
									"line": 31,
									"character": 62
								}
							]
						},
						{
							"id": 4350,
							"name": "collaborator",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[DomainUser]] / session ID of the remote collaborator."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorOpenedEvent.ts",
									"line": 42,
									"character": 32
								}
							],
							"type": {
								"type": "reference",
								"id": 3238,
								"name": "ModelCollaborator"
							}
						},
						{
							"id": 4347,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorOpenedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "CollaboratorOpenedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4349,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model that was opened."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorOpenedEvent.ts",
									"line": 37,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4346,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/CollaboratorOpenedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "collaborator_opened"
							},
							"defaultValue": "\"collaborator_opened\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								4348
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4350,
								4347,
								4349,
								4346
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/CollaboratorOpenedEvent.ts",
							"line": 25,
							"character": 36
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4049,
					"name": "DateSetValueEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the [[RealTimeDate.value]] of a [[RealTimeDate]] is set."
					},
					"children": [
						{
							"id": 4053,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeDate]] or [[HistoricalDate]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/DateSetValueEvent.ts",
									"line": 45,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 2883,
								"name": "ObservableDate"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4056,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/DateSetValueEvent.ts",
									"line": 60,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4051,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/DateSetValueEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "DateSetValueEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4055,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/DateSetValueEvent.ts",
									"line": 55,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4054,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/DateSetValueEvent.ts",
									"line": 50,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4050,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/DateSetValueEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "value"
							},
							"defaultValue": "\"value\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4053,
								4056,
								4051,
								4055,
								4054,
								4050
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/DateSetValueEvent.ts",
							"line": 24,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4163,
					"name": "ElementDetachedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when an element becomes detached.  This typically happens when the element\nis removed from its parent."
					},
					"children": [
						{
							"id": 4165,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ElementDetachedEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ElementDetachedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4167,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ElementDetachedEvent.ts",
									"line": 42,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 4164,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ElementDetachedEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "detached"
							},
							"defaultValue": "\"detached\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4165,
								4167,
								4164
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ElementDetachedEvent.ts",
							"line": 24,
							"character": 33
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 5617,
					"name": "ElementReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents one or more elements in a [[RealTimeModel]] that must be adjusted\nwhile the data is changing. See an example in the\n[developer guide](https://docs.convergence.io/guide/models/references/realtimemodel.html)."
					},
					"children": [
						{
							"id": 5674,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5675,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5676,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5677,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 5699,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5700,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 5660,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5661,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3321,
										"name": "ModelReference.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 215,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3321,
								"name": "ModelReference.isDisposed"
							}
						},
						{
							"id": 5654,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5655,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference was created locally."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3315,
										"name": "ModelReference.isLocal"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 194,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3315,
								"name": "ModelReference.isLocal"
							}
						},
						{
							"id": 5668,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5669,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3329,
										"name": "ModelReference.isSet"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 248,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3329,
								"name": "ModelReference.isSet"
							}
						},
						{
							"id": 5650,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5651,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3311,
										"name": "ModelReference.key"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 180,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3311,
								"name": "ModelReference.key"
							}
						},
						{
							"id": 5695,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5696,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5697,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5698,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 5678,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5679,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5680,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5681,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 5682,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5683,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5684,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5685,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 5686,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5687,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 5691,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5692,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5693,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5694,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 5688,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5689,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5690,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 5658,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5659,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3319,
										"name": "ModelReference.sessionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 208,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3319,
								"name": "ModelReference.sessionId"
							}
						},
						{
							"id": 5652,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5653,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3313,
										"name": "ModelReference.source"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 187,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3313,
								"name": "ModelReference.source"
							}
						},
						{
							"id": 5648,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5649,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3309,
										"name": "ModelReference.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 173,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3309,
								"name": "ModelReference.type"
							}
						},
						{
							"id": 5656,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5657,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3317,
										"name": "ModelReference.user"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 201,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3317,
								"name": "ModelReference.user"
							}
						},
						{
							"id": 5664,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5665,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "reference",
										"id": 5521,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "RealTimeElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3325,
										"name": "ModelReference.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 234,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3325,
								"name": "ModelReference.value"
							}
						},
						{
							"id": 5666,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5667,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 5521,
											"typeArguments": [
												{
													"type": "intrinsic",
													"name": "any"
												}
											],
											"name": "RealTimeElement"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3327,
										"name": "ModelReference.values"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3327,
								"name": "ModelReference.values"
							}
						},
						{
							"id": 5638,
							"name": "Events",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this instance could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nreference.on(ModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"children": [
								{
									"id": 5640,
									"name": "CLEARED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 87,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceClearedEvent.NAME"
								},
								{
									"id": 5641,
									"name": "DISPOSED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 88,
											"character": 12
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceDisposedEvent.NAME"
								},
								{
									"id": 5639,
									"name": "SET",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 86,
											"character": 7
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceSetEvent.NAME"
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										5640,
										5641,
										5639
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 85,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3282,
								"name": "ModelReference.Events"
							}
						},
						{
							"id": 5642,
							"name": "Types",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "All the types of references available on the various [[RealTimeElement]]s."
							},
							"children": [
								{
									"id": 5646,
									"name": "ELEMENT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 98,
											"character": 11
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "element"
									},
									"defaultValue": "\"element\""
								},
								{
									"id": 5643,
									"name": "INDEX",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 95,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "index"
									},
									"defaultValue": "\"index\""
								},
								{
									"id": 5645,
									"name": "PROPERTY",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 97,
											"character": 12
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "property"
									},
									"defaultValue": "\"property\""
								},
								{
									"id": 5644,
									"name": "RANGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 96,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "range"
									},
									"defaultValue": "\"range\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										5646,
										5643,
										5645,
										5644
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 94,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3286,
								"name": "ModelReference.Types"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								5674,
								5699,
								5660,
								5654,
								5668,
								5650,
								5695,
								5678,
								5682,
								5686,
								5691,
								5688,
								5658,
								5652,
								5648,
								5656,
								5664,
								5666
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								5638,
								5642
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/ElementReference.ts",
							"line": 30,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3280,
							"typeArguments": [
								{
									"type": "reference",
									"id": 5521,
									"typeArguments": [
										{
											"type": "intrinsic",
											"name": "any"
										}
									],
									"name": "RealTimeElement"
								}
							],
							"name": "ModelReference"
						}
					]
				},
				{
					"id": 6838,
					"name": "HistoricalArray",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only history-aware version of a [[RealTimeArray]].  See [[HistoricalElement]]\nand [[HistoricalModel]] for some common usages."
					},
					"children": [
						{
							"id": 6839,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalArray.ts",
									"line": 39,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6829,
								"name": "HistoricalArrayEvents"
							},
							"defaultValue": "ObservableArrayEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 6764,
								"name": "HistoricalElement.Events"
							}
						},
						{
							"id": 6884,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6885,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6886,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6887,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6087,
										"name": "HistoricalContainerElement.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6086,
								"name": "HistoricalContainerElement.addListener"
							}
						},
						{
							"id": 6857,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6858,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Given a search path, returns the [[HistoricalElement]] at that path, or null if\nno such element exists. Scoped to this array, so the first element in the given\npath should be an array index.",
										"returns": "The [[HistoricalElement]] at the given path, or null if no such element exists\n"
									},
									"parameters": [
										{
											"id": 6859,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the search path for accessing a node within this model's data\n"
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6060,
										"name": "HistoricalContainerElement.elementAt"
									}
								},
								{
									"id": 6860,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 6861,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6062,
										"name": "HistoricalContainerElement.elementAt"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalArray.ts",
									"line": 95,
									"character": 18
								},
								{
									"fileName": "src/main/model/historical/HistoricalArray.ts",
									"line": 96,
									"character": 18
								},
								{
									"fileName": "src/main/model/historical/HistoricalArray.ts",
									"line": 97,
									"character": 18
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 6059,
								"name": "HistoricalContainerElement.elementAt"
							}
						},
						{
							"id": 6909,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6910,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6112,
										"name": "HistoricalContainerElement.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6111,
								"name": "HistoricalContainerElement.events"
							}
						},
						{
							"id": 6850,
							"name": "forEach",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6851,
									"name": "forEach",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Synchronously calls the provided callback function for each item in this array\nat the current version.",
										"text": "Also see [[RealTimeArray.forEach]].\n"
									},
									"parameters": [
										{
											"id": 6852,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a function to be called for each item in this array\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 6853,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 6854,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 6855,
																	"name": "value",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 6762,
																		"typeArguments": [
																			{
																				"type": "intrinsic",
																				"name": "any"
																			}
																		],
																		"name": "HistoricalElement"
																	}
																},
																{
																	"id": 6856,
																	"name": "index",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true,
																		"isOptional": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/historical/HistoricalArray.ts",
															"line": 80,
															"character": 26
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalArray.ts",
									"line": 80,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1665,
								"name": "ObservableArray.forEach"
							}
						},
						{
							"id": 6845,
							"name": "get",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6846,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the [[HistoricalElement]] at the given index at the current version.",
										"text": "Also see [[RealTimeArray.get]].\n"
									},
									"parameters": [
										{
											"id": 6847,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the 0-based index of the desired element.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1661,
										"name": "ObservableArray.get"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalArray.ts",
									"line": 59,
									"character": 12
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1660,
								"name": "ObservableArray.get"
							}
						},
						{
							"id": 6864,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6865,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6260,
										"name": "HistoricalElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6065,
										"name": "HistoricalContainerElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6260,
								"name": "HistoricalElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6064,
								"name": "HistoricalContainerElement.id"
							}
						},
						{
							"id": 6874,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6875,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6270,
										"name": "HistoricalElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6077,
										"name": "HistoricalContainerElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6270,
								"name": "HistoricalElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6076,
								"name": "HistoricalContainerElement.isAttached"
							}
						},
						{
							"id": 6876,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6877,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6272,
										"name": "HistoricalElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6075,
										"name": "HistoricalContainerElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6272,
								"name": "HistoricalElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6074,
								"name": "HistoricalContainerElement.isDetached"
							}
						},
						{
							"id": 6848,
							"name": "length",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6849,
									"name": "length",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the total count of items in this array at the current version.",
										"text": "Also see [[RealTimeArray.length]].\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1664,
										"name": "ObservableArray.length"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalArray.ts",
									"line": 68,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1663,
								"name": "ObservableArray.length"
							}
						},
						{
							"id": 6882,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6883,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6278,
										"name": "HistoricalElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6081,
										"name": "HistoricalContainerElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6278,
								"name": "HistoricalElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6080,
								"name": "HistoricalContainerElement.model"
							}
						},
						{
							"id": 6905,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6906,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6907,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6908,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6108,
										"name": "HistoricalContainerElement.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6107,
								"name": "HistoricalContainerElement.off"
							}
						},
						{
							"id": 6888,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6889,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6890,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6891,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6091,
										"name": "HistoricalContainerElement.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6090,
								"name": "HistoricalContainerElement.on"
							}
						},
						{
							"id": 6892,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6893,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6894,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6895,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6095,
										"name": "HistoricalContainerElement.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6094,
								"name": "HistoricalContainerElement.once"
							}
						},
						{
							"id": 6872,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6873,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6268,
										"name": "HistoricalElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6073,
										"name": "HistoricalContainerElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6268,
								"name": "HistoricalElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6072,
								"name": "HistoricalContainerElement.parent"
							}
						},
						{
							"id": 6868,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6869,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6264,
										"name": "HistoricalElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6069,
										"name": "HistoricalContainerElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6264,
								"name": "HistoricalElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6068,
								"name": "HistoricalContainerElement.path"
							}
						},
						{
							"id": 6870,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6871,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6266,
										"name": "HistoricalElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6071,
										"name": "HistoricalContainerElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6266,
								"name": "HistoricalElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6070,
								"name": "HistoricalContainerElement.relativePath"
							}
						},
						{
							"id": 6896,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6897,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6099,
										"name": "HistoricalContainerElement.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6098,
								"name": "HistoricalContainerElement.removeAllListeners"
							}
						},
						{
							"id": 6901,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6902,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6903,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6904,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6104,
										"name": "HistoricalContainerElement.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6103,
								"name": "HistoricalContainerElement.removeListener"
							}
						},
						{
							"id": 6898,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6899,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6900,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6101,
										"name": "HistoricalContainerElement.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6100,
								"name": "HistoricalContainerElement.removeListeners"
							}
						},
						{
							"id": 6880,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6881,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6276,
										"name": "HistoricalElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6083,
										"name": "HistoricalContainerElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6276,
								"name": "HistoricalElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6082,
								"name": "HistoricalContainerElement.toJSON"
							}
						},
						{
							"id": 6866,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6867,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6262,
										"name": "HistoricalElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6067,
										"name": "HistoricalContainerElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6262,
								"name": "HistoricalElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6066,
								"name": "HistoricalContainerElement.type"
							}
						},
						{
							"id": 6878,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6879,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "any"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6274,
										"name": "HistoricalElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 6079,
										"name": "HistoricalContainerElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6274,
								"name": "HistoricalElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 6078,
								"name": "HistoricalContainerElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6839
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6884,
								6857,
								6909,
								6850,
								6845,
								6864,
								6874,
								6876,
								6848,
								6882,
								6905,
								6888,
								6892,
								6872,
								6868,
								6870,
								6896,
								6901,
								6898,
								6880,
								6866,
								6878
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalArray.ts",
							"line": 35,
							"character": 28
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 6762,
							"typeArguments": [
								{
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "HistoricalElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 1659,
							"name": "ObservableArray"
						},
						{
							"type": "reference",
							"id": 6057,
							"typeArguments": [
								{
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "HistoricalContainerElement"
						}
					]
				},
				{
					"id": 6324,
					"name": "HistoricalBoolean",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only history-aware version of a [[RealTimeBoolean]].  See [[HistoricalElement]]\nand [[HistoricalModel]] for some common usages."
					},
					"children": [
						{
							"id": 6325,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalBoolean.ts",
									"line": 39,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6319,
								"name": "HistoricalBooleanEvents"
							},
							"defaultValue": "ObservableBooleanEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 6764,
								"name": "HistoricalElement.Events"
							}
						},
						{
							"id": 6353,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6354,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6355,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6356,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2048,
										"name": "ObservableBoolean.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2047,
								"name": "ObservableBoolean.addListener"
							}
						},
						{
							"id": 6378,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6379,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2073,
										"name": "ObservableBoolean.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2072,
								"name": "ObservableBoolean.events"
							}
						},
						{
							"id": 6333,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6334,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6260,
										"name": "HistoricalElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2026,
										"name": "ObservableBoolean.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6260,
								"name": "HistoricalElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2025,
								"name": "ObservableBoolean.id"
							}
						},
						{
							"id": 6343,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6344,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6270,
										"name": "HistoricalElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2038,
										"name": "ObservableBoolean.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6270,
								"name": "HistoricalElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2037,
								"name": "ObservableBoolean.isAttached"
							}
						},
						{
							"id": 6345,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6346,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6272,
										"name": "HistoricalElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2036,
										"name": "ObservableBoolean.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6272,
								"name": "HistoricalElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2035,
								"name": "ObservableBoolean.isDetached"
							}
						},
						{
							"id": 6351,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6352,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6278,
										"name": "HistoricalElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2042,
										"name": "ObservableBoolean.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6278,
								"name": "HistoricalElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2041,
								"name": "ObservableBoolean.model"
							}
						},
						{
							"id": 6374,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6375,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6376,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6377,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2069,
										"name": "ObservableBoolean.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2068,
								"name": "ObservableBoolean.off"
							}
						},
						{
							"id": 6357,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6358,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6359,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6360,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2052,
										"name": "ObservableBoolean.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2051,
								"name": "ObservableBoolean.on"
							}
						},
						{
							"id": 6361,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6362,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6363,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6364,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2056,
										"name": "ObservableBoolean.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2055,
								"name": "ObservableBoolean.once"
							}
						},
						{
							"id": 6341,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6342,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6268,
										"name": "HistoricalElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2034,
										"name": "ObservableBoolean.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6268,
								"name": "HistoricalElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2033,
								"name": "ObservableBoolean.parent"
							}
						},
						{
							"id": 6337,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6338,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6264,
										"name": "HistoricalElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2030,
										"name": "ObservableBoolean.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6264,
								"name": "HistoricalElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2029,
								"name": "ObservableBoolean.path"
							}
						},
						{
							"id": 6339,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6340,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6266,
										"name": "HistoricalElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2032,
										"name": "ObservableBoolean.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6266,
								"name": "HistoricalElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2031,
								"name": "ObservableBoolean.relativePath"
							}
						},
						{
							"id": 6365,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6366,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2060,
										"name": "ObservableBoolean.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2059,
								"name": "ObservableBoolean.removeAllListeners"
							}
						},
						{
							"id": 6370,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6371,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6372,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6373,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2065,
										"name": "ObservableBoolean.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2064,
								"name": "ObservableBoolean.removeListener"
							}
						},
						{
							"id": 6367,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6368,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6369,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2062,
										"name": "ObservableBoolean.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2061,
								"name": "ObservableBoolean.removeListeners"
							}
						},
						{
							"id": 6349,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6350,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6276,
										"name": "HistoricalElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2044,
										"name": "ObservableBoolean.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6276,
								"name": "HistoricalElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2043,
								"name": "ObservableBoolean.toJSON"
							}
						},
						{
							"id": 6335,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6336,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6262,
										"name": "HistoricalElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2028,
										"name": "ObservableBoolean.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6262,
								"name": "HistoricalElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2027,
								"name": "ObservableBoolean.type"
							}
						},
						{
							"id": 6347,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6348,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6274,
										"name": "HistoricalElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2040,
										"name": "ObservableBoolean.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6274,
								"name": "HistoricalElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2039,
								"name": "ObservableBoolean.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6325
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6353,
								6378,
								6333,
								6343,
								6345,
								6351,
								6374,
								6357,
								6361,
								6341,
								6337,
								6339,
								6365,
								6370,
								6367,
								6349,
								6335,
								6347
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalBoolean.ts",
							"line": 37,
							"character": 30
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 6762,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "boolean"
								}
							],
							"name": "HistoricalElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "boolean"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2024,
							"name": "ObservableBoolean"
						}
					]
				},
				{
					"id": 6680,
					"name": "HistoricalDate",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only history-aware version of a [[RealTimeDate]].  See [[HistoricalElement]]\nand [[HistoricalModel]] for some common usages."
					},
					"children": [
						{
							"id": 6681,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalDate.ts",
									"line": 39,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6675,
								"name": "HistoricalDateEvents"
							},
							"defaultValue": "ObservableDateEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 6764,
								"name": "HistoricalElement.Events"
							}
						},
						{
							"id": 6709,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6710,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6711,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6712,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2907,
										"name": "ObservableDate.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2906,
								"name": "ObservableDate.addListener"
							}
						},
						{
							"id": 6734,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6735,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2932,
										"name": "ObservableDate.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2931,
								"name": "ObservableDate.events"
							}
						},
						{
							"id": 6689,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6690,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6260,
										"name": "HistoricalElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2885,
										"name": "ObservableDate.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6260,
								"name": "HistoricalElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2884,
								"name": "ObservableDate.id"
							}
						},
						{
							"id": 6699,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6700,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6270,
										"name": "HistoricalElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2897,
										"name": "ObservableDate.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6270,
								"name": "HistoricalElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2896,
								"name": "ObservableDate.isAttached"
							}
						},
						{
							"id": 6701,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6702,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6272,
										"name": "HistoricalElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2895,
										"name": "ObservableDate.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6272,
								"name": "HistoricalElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2894,
								"name": "ObservableDate.isDetached"
							}
						},
						{
							"id": 6707,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6708,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6278,
										"name": "HistoricalElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2901,
										"name": "ObservableDate.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6278,
								"name": "HistoricalElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2900,
								"name": "ObservableDate.model"
							}
						},
						{
							"id": 6730,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6731,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6732,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6733,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2928,
										"name": "ObservableDate.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2927,
								"name": "ObservableDate.off"
							}
						},
						{
							"id": 6713,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6714,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6715,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6716,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2911,
										"name": "ObservableDate.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2910,
								"name": "ObservableDate.on"
							}
						},
						{
							"id": 6717,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6718,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6719,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6720,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2915,
										"name": "ObservableDate.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2914,
								"name": "ObservableDate.once"
							}
						},
						{
							"id": 6697,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6698,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6268,
										"name": "HistoricalElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2893,
										"name": "ObservableDate.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6268,
								"name": "HistoricalElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2892,
								"name": "ObservableDate.parent"
							}
						},
						{
							"id": 6693,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6694,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6264,
										"name": "HistoricalElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2889,
										"name": "ObservableDate.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6264,
								"name": "HistoricalElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2888,
								"name": "ObservableDate.path"
							}
						},
						{
							"id": 6695,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6696,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6266,
										"name": "HistoricalElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2891,
										"name": "ObservableDate.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6266,
								"name": "HistoricalElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2890,
								"name": "ObservableDate.relativePath"
							}
						},
						{
							"id": 6721,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6722,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2919,
										"name": "ObservableDate.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2918,
								"name": "ObservableDate.removeAllListeners"
							}
						},
						{
							"id": 6726,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6727,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6728,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6729,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2924,
										"name": "ObservableDate.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2923,
								"name": "ObservableDate.removeListener"
							}
						},
						{
							"id": 6723,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6724,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6725,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2921,
										"name": "ObservableDate.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2920,
								"name": "ObservableDate.removeListeners"
							}
						},
						{
							"id": 6705,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6706,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6276,
										"name": "HistoricalElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2903,
										"name": "ObservableDate.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6276,
								"name": "HistoricalElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2902,
								"name": "ObservableDate.toJSON"
							}
						},
						{
							"id": 6691,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6692,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6262,
										"name": "HistoricalElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2887,
										"name": "ObservableDate.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6262,
								"name": "HistoricalElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2886,
								"name": "ObservableDate.type"
							}
						},
						{
							"id": 6703,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6704,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6274,
										"name": "HistoricalElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2899,
										"name": "ObservableDate.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6274,
								"name": "HistoricalElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2898,
								"name": "ObservableDate.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6681
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6709,
								6734,
								6689,
								6699,
								6701,
								6707,
								6730,
								6713,
								6717,
								6697,
								6693,
								6695,
								6721,
								6726,
								6723,
								6705,
								6691,
								6703
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalDate.ts",
							"line": 37,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 6762,
							"typeArguments": [
								{
									"type": "reference",
									"name": "Date"
								}
							],
							"name": "HistoricalElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "reference",
									"name": "Date"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2883,
							"name": "ObservableDate"
						}
					]
				},
				{
					"id": 6762,
					"name": "HistoricalElement",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true,
						"isAbstract": true
					},
					"comment": {
						"shortText": "This represents a particular node in a [[HistoricalModel]]'s contents.  If you think\nof the contents of a model as a JSON tree, this could be the root object, an array,\nor any other element.",
						"text": "Much of the API of this class is designed to be the same as a [[RealTimeModel]],\nsince the logic that deals with each representation is likely to be shared.\n\nAs [[HistoricalElement]]s represent a snapshot of a [[RealTimeElement]] in a given\nmoment in time, they are read-only.\n"
					},
					"typeParameter": [
						{
							"id": 6763,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 6764,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An interface enumerating the different events that could be fired on this\n[[HistoricalElement]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 54,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6757,
								"name": "HistoricalElementEvents"
							},
							"defaultValue": "ObservableElementEventConstants"
						},
						{
							"id": 6793,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6794,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6795,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6796,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1477,
										"name": "ObservableElement.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1476,
								"name": "ObservableElement.addListener"
							}
						},
						{
							"id": 6818,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6819,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1502,
										"name": "ObservableElement.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1501,
								"name": "ObservableElement.events"
							}
						},
						{
							"id": 6773,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6774,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1455,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1454,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 6783,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6784,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1467,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1466,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 6785,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6786,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1465,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1464,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 6791,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6792,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1471,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1470,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 6814,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6815,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6816,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6817,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1498,
										"name": "ObservableElement.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1497,
								"name": "ObservableElement.off"
							}
						},
						{
							"id": 6797,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6798,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6799,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6800,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1481,
										"name": "ObservableElement.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1480,
								"name": "ObservableElement.on"
							}
						},
						{
							"id": 6801,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6802,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6803,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6804,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1485,
										"name": "ObservableElement.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1484,
								"name": "ObservableElement.once"
							}
						},
						{
							"id": 6781,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6782,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1463,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1462,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 6777,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6778,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1459,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1458,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 6779,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6780,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1461,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1460,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 6805,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6806,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1489,
										"name": "ObservableElement.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1488,
								"name": "ObservableElement.removeAllListeners"
							}
						},
						{
							"id": 6810,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6811,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6812,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6813,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1494,
										"name": "ObservableElement.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1493,
								"name": "ObservableElement.removeListener"
							}
						},
						{
							"id": 6807,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6808,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6809,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1491,
										"name": "ObservableElement.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1490,
								"name": "ObservableElement.removeListeners"
							}
						},
						{
							"id": 6789,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6790,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1473,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1472,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 6775,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6776,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1457,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1456,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 6787,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6788,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "typeParameter",
										"name": "T"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1469,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1468,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6764
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6793,
								6818,
								6773,
								6783,
								6785,
								6791,
								6814,
								6797,
								6801,
								6781,
								6777,
								6779,
								6805,
								6810,
								6807,
								6789,
								6775,
								6787
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalElement.ts",
							"line": 47,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 426,
									"name": "IConvergenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 6225,
							"name": "HistoricalObject"
						},
						{
							"type": "reference",
							"id": 6324,
							"name": "HistoricalBoolean"
						},
						{
							"type": "reference",
							"id": 6394,
							"name": "HistoricalNull"
						},
						{
							"type": "reference",
							"id": 6465,
							"name": "HistoricalNumber"
						},
						{
							"type": "reference",
							"id": 6538,
							"name": "HistoricalString"
						},
						{
							"type": "reference",
							"id": 6610,
							"name": "HistoricalUndefined"
						},
						{
							"type": "reference",
							"id": 6680,
							"name": "HistoricalDate"
						},
						{
							"type": "reference",
							"id": 6838,
							"name": "HistoricalArray"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "typeParameter",
									"name": "T"
								}
							],
							"name": "ObservableElement"
						}
					]
				},
				{
					"id": 6134,
					"name": "HistoricalModel",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This is an alternate read-only representation of a particular [[RealTimeModel]] that\nallows for the introspection of the model's contents at particular points\nin time. History can only be traversed by version ID, but the timestamp associated\nwith a particular version is available when this model has been \"played\" to that\nversion.",
						"text": "The [[backward]], [[forward]], and [[playTo]] methods are the means for \"playing\" the\nmodel to a particular version or version offset.\n\nJust like in a [[RealTimeModel]], you can use the [[root]] and [[elementAt]] methods\nto access the data associated with this model's \"current\" version. Note that these\nreturn a read-only [[HistoricalObject]] or [[HistoricalElement]] respectively.\n\nSee the [developer guide](https://docs.convergence.io/guide/models/history.html)\nfor some examples and additional information.\n"
					},
					"children": [
						{
							"id": 6135,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 81,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6127,
								"name": "HistoricalModelEvents"
							},
							"defaultValue": "HistoricalModelEventConstants"
						},
						{
							"id": 6201,
							"name": "backward",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6202,
									"name": "backward",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "\"Plays\" the current version of this model backward by the given number of versions.",
										"returns": "A Promise, which on resolve indicates that the playback has completed.\n"
									},
									"parameters": [
										{
											"id": 6203,
											"name": "delta",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the number of versions to move backward\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											},
											"defaultValue": "1"
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 497,
									"character": 17
								}
							]
						},
						{
							"id": 6163,
							"name": "collectionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6164,
									"name": "collectionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The model's collection ID"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1420,
										"name": "ObservableModel.collectionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 198,
									"character": 21
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1419,
								"name": "ObservableModel.collectionId"
							}
						},
						{
							"id": 6173,
							"name": "createdTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6174,
									"name": "createdTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The timestamp at which this model was created"
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1430,
										"name": "ObservableModel.createdTime"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 253,
									"character": 20
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1429,
								"name": "ObservableModel.createdTime"
							}
						},
						{
							"id": 6187,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6188,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Given a search path, returns a read-only representation of the element at\nthat path at the current played-to version, or null if no such element exists."
									},
									"parameters": [
										{
											"id": 6189,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the search path for querying within this model's contents\n"
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									}
								},
								{
									"id": 6190,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Given an array of search path elements, returns a read-only representation of the element at\nthat path at the current played-to version, or null if no such element exists."
									},
									"parameters": [
										{
											"id": 6191,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"comment": {
												"text": "an array of search path elements (which in totality are a [[Path]])\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 351,
									"character": 18
								},
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 359,
									"character": 18
								},
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 360,
									"character": 18
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1439,
								"name": "ObservableModel.elementAt"
							}
						},
						{
							"id": 6198,
							"name": "forward",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6199,
									"name": "forward",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "\"Plays\" the current version of this model forward by the given number of versions.",
										"returns": "A Promise, which on resolve indicates that the play forward has completed.\n"
									},
									"parameters": [
										{
											"id": 6200,
											"name": "delta",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the number of versions to move forward\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											},
											"defaultValue": "1"
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 479,
									"character": 16
								}
							]
						},
						{
							"id": 6183,
							"name": "isTransitioning",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6184,
									"name": "isTransitioning",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true when the model is in the process of playing to a particular version:",
										"text": "```typescript\nhistoricalModel.version() // 433\nhistoricalModel.isTransitioning() // false\nhistoricalModel.playTo(1)\n  .then(() => {\n    historicalModel.version() // 1\n    historicalModel.isTransitioning() // false\n  })\nhistoricalModel.isTransitioning() // true\n```\n",
										"returns": "true if this model is in the process of playing to a particular version\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 328,
									"character": 24
								}
							]
						},
						{
							"id": 6171,
							"name": "maxTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6172,
									"name": "maxTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The most recent timestamp at which this model was modified"
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1428,
										"name": "ObservableModel.maxTime"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 246,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1427,
								"name": "ObservableModel.maxTime"
							}
						},
						{
							"id": 6179,
							"name": "maxVersion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6180,
									"name": "maxVersion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The most recent version of this model.  Equivalent to [[RealTimeModel.version]]"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1436,
										"name": "ObservableModel.maxVersion"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 288,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1435,
								"name": "ObservableModel.maxVersion"
							}
						},
						{
							"id": 6169,
							"name": "minTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6170,
									"name": "minTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The oldest timestamp associated with this model.  This is just an alias for [[createdTime]]"
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1426,
										"name": "ObservableModel.minTime"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 239,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1425,
								"name": "ObservableModel.minTime"
							}
						},
						{
							"id": 6177,
							"name": "minVersion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6178,
									"name": "minVersion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The oldest version of this model.  Versions are 0-based, so this will just return `0`."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1434,
										"name": "ObservableModel.minVersion"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 281,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1433,
								"name": "ObservableModel.minVersion"
							}
						},
						{
							"id": 6165,
							"name": "modelId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6166,
									"name": "modelId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The model's unique ID"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1422,
										"name": "ObservableModel.modelId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 205,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1421,
								"name": "ObservableModel.modelId"
							}
						},
						{
							"id": 6192,
							"name": "playTo",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6193,
									"name": "playTo",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Enables \"playing\" the current model to the given version number. This is an\nasynchronous call because it may take some time to traverse over potentially\nthousands of versions of this model.",
										"text": "The returned promise resolves when the playback process is complete.\nAt this point calling `version`, `time`, `root` and `elementAt` will return the\ndata / metadata of this model at the desired version.\n",
										"returns": "A promise that will be resolved when the model has arrived at\n         the requested version.\n"
									},
									"parameters": [
										{
											"id": 6194,
											"name": "version",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the version of the model at which point in time you're interested."
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 377,
									"character": 15
								}
							]
						},
						{
							"id": 6195,
							"name": "playToTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6196,
									"name": "playToTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Enables \"playing\" the current model to the given version it was at, at a\nspecific point in time. If the time corresponds exactly to a time an\noperation was applied to the model, the model will be played to that\nversion. If the time does not correspond directly to a model version then\nthe model will be played to the version corresponding to the most recent\noperation **before** the time request. This is because that would have\nbeen the state of the model had a user opened it at that time.",
										"text": "This is an asynchronous call because it may take some time to traverse\nover potentially thousands of versions of this model.\n\nThe returned promise resolves when the playback process is complete.\nAt this point calling `version`, `time`, `root` and `elementAt` will return the\ndata / metadata of this model at the desired version.\n",
										"returns": "A promise that will be resolved when the model has arrived at\n         the requested time.\n"
									},
									"parameters": [
										{
											"id": 6197,
											"name": "time",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the time to play back the model to."
											},
											"type": {
												"type": "reference",
												"name": "Date"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 456,
									"character": 19
								}
							]
						},
						{
							"id": 6185,
							"name": "root",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6186,
									"name": "root",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the entire contents of this model at the current [[version]].  Calling\nthis while `isTransitioning === true` may have an indeterminate result and should\nbe avoided.",
										"text": "See also [[RealTimeModel.root]]\n",
										"returns": "the entire contents of this model at the current version as a [[HistoricalObject]]\n"
									},
									"type": {
										"type": "reference",
										"id": 6225,
										"name": "HistoricalObject"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1438,
										"name": "ObservableModel.root"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 341,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1437,
								"name": "ObservableModel.root"
							}
						},
						{
							"id": 6161,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6162,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The session attached to the currently-active domain."
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1418,
										"name": "ObservableModel.session"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 191,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1417,
								"name": "ObservableModel.session"
							}
						},
						{
							"id": 6181,
							"name": "targetVersion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6182,
									"name": "targetVersion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This is the \"desired\" version of this model. During the period when the model\nis in the process of playing back, this returns the targeted version.  Otherwise\nit represents the current version.",
										"text": "```typescript\nhistoricalModel.version() // 433\nhistoricalModel.targetVersion() // 433\nhistoricalModel.playTo(1)\n  .then(() => {\n    historicalModel.version() // 1\n  })\nhistoricalModel.targetVersion() // 1\nhistoricalModel.version() // 433, because `playTo` is async\n```\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 308,
									"character": 22
								}
							]
						},
						{
							"id": 6167,
							"name": "time",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6168,
									"name": "time",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The timestamp at which the current (played to) version was created. This can be\nused to determine the timestamp associated with a particular version of this model.\nFor example:",
										"text": "```typescript\nhistoricalModel.version() // 433\nhistoricalModel.time() // \"Fri Aug 16 2019 11:49:19 GMT-0600\"\nhistoricalModel.playTo(410)\n  .then(() => {\n    historicalModel.version() // 410\n    historicalModel.time() // \"Fri Aug 16 2019 11:44:36 GMT-0600\"\n\n    return historicalModel.playTo(1);\n  })\n  .then(() => {\n    // this is the timestamp at which the model was created\n    historicalModel.time() // \"Wed Aug 14 2019 13:51:01 GMT-0600\"\n  })\n```\n",
										"returns": "the timestamp associated with this model's current version\n"
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1424,
										"name": "ObservableModel.time"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 232,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1423,
								"name": "ObservableModel.time"
							}
						},
						{
							"id": 6175,
							"name": "version",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6176,
									"name": "version",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The current version of this model.  E.g.",
										"text": "```typescript\nhistoricalVersion.maxVersion() // 433\nhistoricalModel.version() // 433\nhistoricalModel.playTo(410)\n  .then(() => {\n    historicalModel.version() // 410\n\n    return historicalModel.playTo(1);\n  })\n  .then(() => {\n    historicalModel.version() // 1\n  })\n```\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1432,
										"name": "ObservableModel.version"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 274,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1431,
								"name": "ObservableModel.version"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6135
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6201,
								6163,
								6173,
								6187,
								6198,
								6183,
								6171,
								6179,
								6169,
								6177,
								6165,
								6192,
								6195,
								6185,
								6161,
								6181,
								6167,
								6175
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalModel.ts",
							"line": 79,
							"character": 28
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1416,
							"name": "ObservableModel"
						}
					]
				},
				{
					"id": 6394,
					"name": "HistoricalNull",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only history-aware version of a [[RealTimeNull]].  See [[HistoricalElement]]\nand [[HistoricalModel]] for some common usages."
					},
					"children": [
						{
							"id": 6395,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalNull.ts",
									"line": 38,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6389,
								"name": "HistoricalNullEvents"
							},
							"defaultValue": "ObservableNullEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 6764,
								"name": "HistoricalElement.Events"
							}
						},
						{
							"id": 6423,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6424,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6425,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6426,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2208,
										"name": "ObservableNull.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2207,
								"name": "ObservableNull.addListener"
							}
						},
						{
							"id": 6448,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6449,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2233,
										"name": "ObservableNull.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2232,
								"name": "ObservableNull.events"
							}
						},
						{
							"id": 6403,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6404,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6260,
										"name": "HistoricalElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2186,
										"name": "ObservableNull.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6260,
								"name": "HistoricalElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2185,
								"name": "ObservableNull.id"
							}
						},
						{
							"id": 6413,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6414,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6270,
										"name": "HistoricalElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2198,
										"name": "ObservableNull.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6270,
								"name": "HistoricalElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2197,
								"name": "ObservableNull.isAttached"
							}
						},
						{
							"id": 6415,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6416,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6272,
										"name": "HistoricalElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2196,
										"name": "ObservableNull.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6272,
								"name": "HistoricalElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2195,
								"name": "ObservableNull.isDetached"
							}
						},
						{
							"id": 6421,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6422,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6278,
										"name": "HistoricalElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2202,
										"name": "ObservableNull.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6278,
								"name": "HistoricalElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2201,
								"name": "ObservableNull.model"
							}
						},
						{
							"id": 6444,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6445,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6446,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6447,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2229,
										"name": "ObservableNull.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2228,
								"name": "ObservableNull.off"
							}
						},
						{
							"id": 6427,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6428,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6429,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6430,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2212,
										"name": "ObservableNull.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2211,
								"name": "ObservableNull.on"
							}
						},
						{
							"id": 6431,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6432,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6433,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6434,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2216,
										"name": "ObservableNull.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2215,
								"name": "ObservableNull.once"
							}
						},
						{
							"id": 6411,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6412,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6268,
										"name": "HistoricalElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2194,
										"name": "ObservableNull.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6268,
								"name": "HistoricalElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2193,
								"name": "ObservableNull.parent"
							}
						},
						{
							"id": 6407,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6408,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6264,
										"name": "HistoricalElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2190,
										"name": "ObservableNull.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6264,
								"name": "HistoricalElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2189,
								"name": "ObservableNull.path"
							}
						},
						{
							"id": 6409,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6410,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6266,
										"name": "HistoricalElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2192,
										"name": "ObservableNull.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6266,
								"name": "HistoricalElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2191,
								"name": "ObservableNull.relativePath"
							}
						},
						{
							"id": 6435,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6436,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2220,
										"name": "ObservableNull.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2219,
								"name": "ObservableNull.removeAllListeners"
							}
						},
						{
							"id": 6440,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6441,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6442,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6443,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2225,
										"name": "ObservableNull.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2224,
								"name": "ObservableNull.removeListener"
							}
						},
						{
							"id": 6437,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6438,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6439,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2222,
										"name": "ObservableNull.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2221,
								"name": "ObservableNull.removeListeners"
							}
						},
						{
							"id": 6419,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6420,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6276,
										"name": "HistoricalElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2204,
										"name": "ObservableNull.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6276,
								"name": "HistoricalElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2203,
								"name": "ObservableNull.toJSON"
							}
						},
						{
							"id": 6405,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6406,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6262,
										"name": "HistoricalElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2188,
										"name": "ObservableNull.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6262,
								"name": "HistoricalElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2187,
								"name": "ObservableNull.type"
							}
						},
						{
							"id": 6417,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6418,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6274,
										"name": "HistoricalElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2200,
										"name": "ObservableNull.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6274,
								"name": "HistoricalElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2199,
								"name": "ObservableNull.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6395
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6423,
								6448,
								6403,
								6413,
								6415,
								6421,
								6444,
								6427,
								6431,
								6411,
								6407,
								6409,
								6435,
								6440,
								6437,
								6419,
								6405,
								6417
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalNull.ts",
							"line": 37,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 6762,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "HistoricalElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2184,
							"name": "ObservableNull"
						}
					]
				},
				{
					"id": 6465,
					"name": "HistoricalNumber",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only history-aware version of a [[RealTimeNumber]].  See [[HistoricalElement]]\nand [[HistoricalModel]] for some common usages."
					},
					"children": [
						{
							"id": 6466,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalNumber.ts",
									"line": 38,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6459,
								"name": "HistoricalNumberEvents"
							},
							"defaultValue": "ObservableNumberEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 6764,
								"name": "HistoricalElement.Events"
							}
						},
						{
							"id": 6494,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6495,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6496,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6497,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2372,
										"name": "ObservableNumber.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2371,
								"name": "ObservableNumber.addListener"
							}
						},
						{
							"id": 6519,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6520,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2397,
										"name": "ObservableNumber.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2396,
								"name": "ObservableNumber.events"
							}
						},
						{
							"id": 6474,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6475,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6260,
										"name": "HistoricalElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2350,
										"name": "ObservableNumber.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6260,
								"name": "HistoricalElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2349,
								"name": "ObservableNumber.id"
							}
						},
						{
							"id": 6484,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6485,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6270,
										"name": "HistoricalElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2362,
										"name": "ObservableNumber.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6270,
								"name": "HistoricalElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2361,
								"name": "ObservableNumber.isAttached"
							}
						},
						{
							"id": 6486,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6487,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6272,
										"name": "HistoricalElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2360,
										"name": "ObservableNumber.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6272,
								"name": "HistoricalElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2359,
								"name": "ObservableNumber.isDetached"
							}
						},
						{
							"id": 6492,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6493,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6278,
										"name": "HistoricalElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2366,
										"name": "ObservableNumber.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6278,
								"name": "HistoricalElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2365,
								"name": "ObservableNumber.model"
							}
						},
						{
							"id": 6515,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6516,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6517,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6518,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2393,
										"name": "ObservableNumber.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2392,
								"name": "ObservableNumber.off"
							}
						},
						{
							"id": 6498,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6499,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6500,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6501,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2376,
										"name": "ObservableNumber.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2375,
								"name": "ObservableNumber.on"
							}
						},
						{
							"id": 6502,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6503,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6504,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6505,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2380,
										"name": "ObservableNumber.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2379,
								"name": "ObservableNumber.once"
							}
						},
						{
							"id": 6482,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6483,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6268,
										"name": "HistoricalElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2358,
										"name": "ObservableNumber.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6268,
								"name": "HistoricalElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2357,
								"name": "ObservableNumber.parent"
							}
						},
						{
							"id": 6478,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6479,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6264,
										"name": "HistoricalElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2354,
										"name": "ObservableNumber.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6264,
								"name": "HistoricalElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2353,
								"name": "ObservableNumber.path"
							}
						},
						{
							"id": 6480,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6481,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6266,
										"name": "HistoricalElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2356,
										"name": "ObservableNumber.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6266,
								"name": "HistoricalElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2355,
								"name": "ObservableNumber.relativePath"
							}
						},
						{
							"id": 6506,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6507,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2384,
										"name": "ObservableNumber.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2383,
								"name": "ObservableNumber.removeAllListeners"
							}
						},
						{
							"id": 6511,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6512,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6513,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6514,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2389,
										"name": "ObservableNumber.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2388,
								"name": "ObservableNumber.removeListener"
							}
						},
						{
							"id": 6508,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6509,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6510,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2386,
										"name": "ObservableNumber.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2385,
								"name": "ObservableNumber.removeListeners"
							}
						},
						{
							"id": 6490,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6491,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6276,
										"name": "HistoricalElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2368,
										"name": "ObservableNumber.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6276,
								"name": "HistoricalElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2367,
								"name": "ObservableNumber.toJSON"
							}
						},
						{
							"id": 6476,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6477,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6262,
										"name": "HistoricalElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2352,
										"name": "ObservableNumber.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6262,
								"name": "HistoricalElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2351,
								"name": "ObservableNumber.type"
							}
						},
						{
							"id": 6488,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6489,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6274,
										"name": "HistoricalElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2364,
										"name": "ObservableNumber.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6274,
								"name": "HistoricalElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2363,
								"name": "ObservableNumber.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6466
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6494,
								6519,
								6474,
								6484,
								6486,
								6492,
								6515,
								6498,
								6502,
								6482,
								6478,
								6480,
								6506,
								6511,
								6508,
								6490,
								6476,
								6488
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalNumber.ts",
							"line": 37,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 6762,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "number"
								}
							],
							"name": "HistoricalElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "number"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2348,
							"name": "ObservableNumber"
						}
					]
				},
				{
					"id": 6225,
					"name": "HistoricalObject",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only history-aware version of a [[RealTimeObject]].  See [[HistoricalElement]]\nand [[HistoricalModel]] for some common usages."
					},
					"children": [
						{
							"id": 6226,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalObject.ts",
									"line": 42,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6218,
								"name": "HistoricalObjectEvents"
							},
							"defaultValue": "ObservableObjectEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 6764,
								"name": "HistoricalElement.Events"
							}
						},
						{
							"id": 6280,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6281,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6282,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6283,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1374,
										"name": "ObservableObject.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1373,
								"name": "ObservableObject.addListener"
							}
						},
						{
							"id": 6247,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6248,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Given a search path, returns the [[HistoricalElement]] at that path, or null if\nno such element exists. Scoped to this object, so the first element in the given\npath should be a string (representing an existing key)",
										"returns": "The [[HistoricalElement]] at the given path, or null if no such element exists\n"
									},
									"parameters": [
										{
											"id": 6249,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the search path for accessing a node within this object\n"
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1347,
										"name": "ObservableObject.elementAt"
									}
								},
								{
									"id": 6250,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 6251,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1349,
										"name": "ObservableObject.elementAt"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalObject.ts",
									"line": 100,
									"character": 18
								},
								{
									"fileName": "src/main/model/historical/HistoricalObject.ts",
									"line": 101,
									"character": 18
								},
								{
									"fileName": "src/main/model/historical/HistoricalObject.ts",
									"line": 102,
									"character": 18
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1346,
								"name": "ObservableObject.elementAt"
							}
						},
						{
							"id": 6305,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6306,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1399,
										"name": "ObservableObject.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1398,
								"name": "ObservableObject.events"
							}
						},
						{
							"id": 6240,
							"name": "forEach",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6241,
									"name": "forEach",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Synchronously calls the provided callback function for each key-value pair in this\nobject at the current version."
									},
									"parameters": [
										{
											"id": 6242,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a function to be called for each key-value pair\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 6243,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 6244,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 6245,
																	"name": "model",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 6762,
																		"typeArguments": [
																			{
																				"type": "intrinsic",
																				"name": "any"
																			}
																		],
																		"name": "HistoricalElement"
																	}
																},
																{
																	"id": 6246,
																	"name": "key",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true,
																		"isOptional": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/historical/HistoricalObject.ts",
															"line": 85,
															"character": 26
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalObject.ts",
									"line": 85,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1333,
								"name": "ObservableObject.forEach"
							}
						},
						{
							"id": 6232,
							"name": "get",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6233,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the [[HistoricalElement]] at the given key at the current version.",
										"text": "Also see [[RealTimeObject.get]].\n"
									},
									"parameters": [
										{
											"id": 6234,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the key whose value is desired\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1326,
										"name": "ObservableObject.get"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalObject.ts",
									"line": 59,
									"character": 12
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1325,
								"name": "ObservableObject.get"
							}
						},
						{
							"id": 6237,
							"name": "hasKey",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6238,
									"name": "hasKey",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if the provided key existed on this object at the current version."
									},
									"parameters": [
										{
											"id": 6239,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1331,
										"name": "ObservableObject.hasKey"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalObject.ts",
									"line": 75,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1330,
								"name": "ObservableObject.hasKey"
							}
						},
						{
							"id": 6260,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6261,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6260,
										"name": "HistoricalElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1352,
										"name": "ObservableObject.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6260,
								"name": "HistoricalElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableObject.id"
							}
						},
						{
							"id": 6270,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6271,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6270,
										"name": "HistoricalElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1364,
										"name": "ObservableObject.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6270,
								"name": "HistoricalElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableObject.isAttached"
							}
						},
						{
							"id": 6272,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6273,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6272,
										"name": "HistoricalElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1362,
										"name": "ObservableObject.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6272,
								"name": "HistoricalElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableObject.isDetached"
							}
						},
						{
							"id": 6235,
							"name": "keys",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6236,
									"name": "keys",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns an array of all the current version's keys",
										"returns": "an array with all the current version's keys\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "string"
										}
									},
									"implementationOf": {
										"type": "reference",
										"id": 1329,
										"name": "ObservableObject.keys"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalObject.ts",
									"line": 68,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1328,
								"name": "ObservableObject.keys"
							}
						},
						{
							"id": 6278,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6279,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6278,
										"name": "HistoricalElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1368,
										"name": "ObservableObject.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6278,
								"name": "HistoricalElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableObject.model"
							}
						},
						{
							"id": 6301,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6302,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6303,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6304,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1395,
										"name": "ObservableObject.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1394,
								"name": "ObservableObject.off"
							}
						},
						{
							"id": 6284,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6285,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6286,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6287,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1378,
										"name": "ObservableObject.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1377,
								"name": "ObservableObject.on"
							}
						},
						{
							"id": 6288,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6289,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6290,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6291,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1382,
										"name": "ObservableObject.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1381,
								"name": "ObservableObject.once"
							}
						},
						{
							"id": 6268,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6269,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6268,
										"name": "HistoricalElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1360,
										"name": "ObservableObject.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6268,
								"name": "HistoricalElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableObject.parent"
							}
						},
						{
							"id": 6264,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6265,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6264,
										"name": "HistoricalElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1356,
										"name": "ObservableObject.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6264,
								"name": "HistoricalElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableObject.path"
							}
						},
						{
							"id": 6266,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6267,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6266,
										"name": "HistoricalElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1358,
										"name": "ObservableObject.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6266,
								"name": "HistoricalElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableObject.relativePath"
							}
						},
						{
							"id": 6292,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6293,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1386,
										"name": "ObservableObject.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1385,
								"name": "ObservableObject.removeAllListeners"
							}
						},
						{
							"id": 6297,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6298,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6299,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6300,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1391,
										"name": "ObservableObject.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1390,
								"name": "ObservableObject.removeListener"
							}
						},
						{
							"id": 6294,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6295,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6296,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1388,
										"name": "ObservableObject.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1387,
								"name": "ObservableObject.removeListeners"
							}
						},
						{
							"id": 6276,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6277,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6276,
										"name": "HistoricalElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1370,
										"name": "ObservableObject.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6276,
								"name": "HistoricalElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableObject.toJSON"
							}
						},
						{
							"id": 6262,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6263,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6262,
										"name": "HistoricalElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1354,
										"name": "ObservableObject.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6262,
								"name": "HistoricalElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableObject.type"
							}
						},
						{
							"id": 6274,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6275,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 6255,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {
												"isExported": true
											},
											"indexSignature": [
												{
													"id": 6256,
													"name": "__index",
													"kind": 8192,
													"kindString": "Index signature",
													"flags": {
														"isExported": true
													},
													"parameters": [
														{
															"id": 6257,
															"name": "key",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "any"
													}
												}
											],
											"sources": [
												{
													"fileName": "src/main/model/historical/HistoricalObject.ts",
													"line": 39,
													"character": 56
												}
											]
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6274,
										"name": "HistoricalElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1366,
										"name": "ObservableObject.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6274,
								"name": "HistoricalElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableObject.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6226
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6280,
								6247,
								6305,
								6240,
								6232,
								6237,
								6260,
								6270,
								6272,
								6235,
								6278,
								6301,
								6284,
								6288,
								6268,
								6264,
								6266,
								6292,
								6297,
								6294,
								6276,
								6262,
								6274
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalObject.ts",
							"line": 39,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 6762,
							"typeArguments": [
								{
									"type": "reflection",
									"declaration": {
										"id": 6252,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {
											"isExported": true
										},
										"indexSignature": [
											{
												"id": 6253,
												"name": "__index",
												"kind": 8192,
												"kindString": "Index signature",
												"flags": {
													"isExported": true
												},
												"parameters": [
													{
														"id": 6254,
														"name": "key",
														"kind": 32768,
														"kindString": "Parameter",
														"flags": {
															"isExported": true
														},
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										],
										"sources": [
											{
												"fileName": "src/main/model/historical/HistoricalObject.ts",
												"line": 39,
												"character": 56
											}
										]
									}
								}
							],
							"name": "HistoricalElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "reflection",
									"declaration": {
										"id": 6255,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {
											"isExported": true
										},
										"indexSignature": [
											{
												"id": 6256,
												"name": "__index",
												"kind": 8192,
												"kindString": "Index signature",
												"flags": {
													"isExported": true
												},
												"parameters": [
													{
														"id": 6257,
														"name": "key",
														"kind": 32768,
														"kindString": "Parameter",
														"flags": {
															"isExported": true
														},
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										],
										"sources": [
											{
												"fileName": "src/main/model/historical/HistoricalObject.ts",
												"line": 39,
												"character": 56
											}
										]
									}
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 6057,
							"typeArguments": [
								{
									"type": "reflection",
									"declaration": {
										"id": 6315,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {
											"isExported": true
										},
										"indexSignature": [
											{
												"id": 6316,
												"name": "__index",
												"kind": 8192,
												"kindString": "Index signature",
												"flags": {
													"isExported": true
												},
												"parameters": [
													{
														"id": 6317,
														"name": "key",
														"kind": 32768,
														"kindString": "Parameter",
														"flags": {
															"isExported": true
														},
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										],
										"sources": [
											{
												"fileName": "src/main/model/historical/HistoricalObject.ts",
												"line": 40,
												"character": 68
											}
										]
									}
								}
							],
							"name": "HistoricalContainerElement"
						},
						{
							"type": "reference",
							"id": 1324,
							"name": "ObservableObject"
						}
					]
				},
				{
					"id": 6538,
					"name": "HistoricalString",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only history-aware version of a [[RealTimeString]].  See [[HistoricalElement]]\nand [[HistoricalModel]] for some common usages."
					},
					"children": [
						{
							"id": 6539,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalString.ts",
									"line": 39,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6530,
								"name": "HistoricalStringEvents"
							},
							"defaultValue": "ObservableStringEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 6764,
								"name": "HistoricalElement.Events"
							}
						},
						{
							"id": 6569,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6570,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6571,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6572,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2549,
										"name": "ObservableString.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2548,
								"name": "ObservableString.addListener"
							}
						},
						{
							"id": 6594,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6595,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2574,
										"name": "ObservableString.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2573,
								"name": "ObservableString.events"
							}
						},
						{
							"id": 6549,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6550,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6260,
										"name": "HistoricalElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2527,
										"name": "ObservableString.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6260,
								"name": "HistoricalElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2526,
								"name": "ObservableString.id"
							}
						},
						{
							"id": 6559,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6560,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6270,
										"name": "HistoricalElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2539,
										"name": "ObservableString.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6270,
								"name": "HistoricalElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2538,
								"name": "ObservableString.isAttached"
							}
						},
						{
							"id": 6561,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6562,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6272,
										"name": "HistoricalElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2537,
										"name": "ObservableString.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6272,
								"name": "HistoricalElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2536,
								"name": "ObservableString.isDetached"
							}
						},
						{
							"id": 6545,
							"name": "length",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6546,
									"name": "length",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The length of this string at the current version.",
										"returns": "the length of this string\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2525,
										"name": "ObservableString.length"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalString.ts",
									"line": 54,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 2524,
								"name": "ObservableString.length"
							}
						},
						{
							"id": 6567,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6568,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6278,
										"name": "HistoricalElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2543,
										"name": "ObservableString.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6278,
								"name": "HistoricalElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2542,
								"name": "ObservableString.model"
							}
						},
						{
							"id": 6590,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6591,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6592,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6593,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2570,
										"name": "ObservableString.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2569,
								"name": "ObservableString.off"
							}
						},
						{
							"id": 6573,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6574,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6575,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6576,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2553,
										"name": "ObservableString.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2552,
								"name": "ObservableString.on"
							}
						},
						{
							"id": 6577,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6578,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6579,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6580,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2557,
										"name": "ObservableString.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2556,
								"name": "ObservableString.once"
							}
						},
						{
							"id": 6557,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6558,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6268,
										"name": "HistoricalElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2535,
										"name": "ObservableString.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6268,
								"name": "HistoricalElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2534,
								"name": "ObservableString.parent"
							}
						},
						{
							"id": 6553,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6554,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6264,
										"name": "HistoricalElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2531,
										"name": "ObservableString.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6264,
								"name": "HistoricalElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2530,
								"name": "ObservableString.path"
							}
						},
						{
							"id": 6555,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6556,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6266,
										"name": "HistoricalElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2533,
										"name": "ObservableString.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6266,
								"name": "HistoricalElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2532,
								"name": "ObservableString.relativePath"
							}
						},
						{
							"id": 6581,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6582,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2561,
										"name": "ObservableString.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2560,
								"name": "ObservableString.removeAllListeners"
							}
						},
						{
							"id": 6586,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6587,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6588,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6589,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2566,
										"name": "ObservableString.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2565,
								"name": "ObservableString.removeListener"
							}
						},
						{
							"id": 6583,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6584,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6585,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2563,
										"name": "ObservableString.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2562,
								"name": "ObservableString.removeListeners"
							}
						},
						{
							"id": 6565,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6566,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6276,
										"name": "HistoricalElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2545,
										"name": "ObservableString.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6276,
								"name": "HistoricalElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2544,
								"name": "ObservableString.toJSON"
							}
						},
						{
							"id": 6551,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6552,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6262,
										"name": "HistoricalElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2529,
										"name": "ObservableString.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6262,
								"name": "HistoricalElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2528,
								"name": "ObservableString.type"
							}
						},
						{
							"id": 6563,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6564,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6274,
										"name": "HistoricalElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2541,
										"name": "ObservableString.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6274,
								"name": "HistoricalElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2540,
								"name": "ObservableString.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6539
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6569,
								6594,
								6549,
								6559,
								6561,
								6545,
								6567,
								6590,
								6573,
								6577,
								6557,
								6553,
								6555,
								6581,
								6586,
								6583,
								6565,
								6551,
								6563
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalString.ts",
							"line": 37,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 6762,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "string"
								}
							],
							"name": "HistoricalElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "string"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2523,
							"name": "ObservableString"
						}
					]
				},
				{
					"id": 6610,
					"name": "HistoricalUndefined",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only history-aware version of a [[RealTimeUndefined]].  See [[HistoricalElement]]\nand [[HistoricalModel]] for some common usages."
					},
					"children": [
						{
							"id": 6611,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalUndefined.ts",
									"line": 39,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6605,
								"name": "HistoricalUndefinedEvents"
							},
							"defaultValue": "ObservableUndefinedEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 6764,
								"name": "HistoricalElement.Events"
							}
						},
						{
							"id": 6639,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6640,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6641,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6642,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2741,
										"name": "ObservableUndefined.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2740,
								"name": "ObservableUndefined.addListener"
							}
						},
						{
							"id": 6664,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6665,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2766,
										"name": "ObservableUndefined.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2765,
								"name": "ObservableUndefined.events"
							}
						},
						{
							"id": 6619,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6620,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6260,
										"name": "HistoricalElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2719,
										"name": "ObservableUndefined.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 100,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6260,
								"name": "HistoricalElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2718,
								"name": "ObservableUndefined.id"
							}
						},
						{
							"id": 6629,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6630,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "true\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6270,
										"name": "HistoricalElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2731,
										"name": "ObservableUndefined.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 171,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6270,
								"name": "HistoricalElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2730,
								"name": "ObservableUndefined.isAttached"
							}
						},
						{
							"id": 6631,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6632,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This doesn't have much utility in the context of a [[HistoricalModel]] and\nis really only provided for API compatibility with a [[RealTimeModel]].",
										"returns": "false\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6272,
										"name": "HistoricalElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2729,
										"name": "ObservableUndefined.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 181,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6272,
								"name": "HistoricalElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2728,
								"name": "ObservableUndefined.isDetached"
							}
						},
						{
							"id": 6637,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6638,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 6134,
										"name": "HistoricalModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6278,
										"name": "HistoricalElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2735,
										"name": "ObservableUndefined.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 202,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6278,
								"name": "HistoricalElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2734,
								"name": "ObservableUndefined.model"
							}
						},
						{
							"id": 6660,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6661,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6662,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6663,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2762,
										"name": "ObservableUndefined.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2761,
								"name": "ObservableUndefined.off"
							}
						},
						{
							"id": 6643,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6644,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6645,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6646,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2745,
										"name": "ObservableUndefined.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2744,
								"name": "ObservableUndefined.on"
							}
						},
						{
							"id": 6647,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6648,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6649,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6650,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2749,
										"name": "ObservableUndefined.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2748,
								"name": "ObservableUndefined.once"
							}
						},
						{
							"id": 6627,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6628,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 6057,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6268,
										"name": "HistoricalElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2727,
										"name": "ObservableUndefined.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 158,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6268,
								"name": "HistoricalElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2726,
								"name": "ObservableUndefined.parent"
							}
						},
						{
							"id": 6623,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6624,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data."
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6264,
										"name": "HistoricalElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2723,
										"name": "ObservableUndefined.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 114,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6264,
								"name": "HistoricalElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2722,
								"name": "ObservableUndefined.path"
							}
						},
						{
							"id": 6625,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6626,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6266,
										"name": "HistoricalElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2725,
										"name": "ObservableUndefined.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 144,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6266,
								"name": "HistoricalElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2724,
								"name": "ObservableUndefined.relativePath"
							}
						},
						{
							"id": 6651,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6652,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2753,
										"name": "ObservableUndefined.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2752,
								"name": "ObservableUndefined.removeAllListeners"
							}
						},
						{
							"id": 6656,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6657,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6658,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6659,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2758,
										"name": "ObservableUndefined.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2757,
								"name": "ObservableUndefined.removeListener"
							}
						},
						{
							"id": 6653,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6654,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6655,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2755,
										"name": "ObservableUndefined.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2754,
								"name": "ObservableUndefined.removeListeners"
							}
						},
						{
							"id": 6635,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6636,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6276,
										"name": "HistoricalElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2737,
										"name": "ObservableUndefined.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 195,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6276,
								"name": "HistoricalElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2736,
								"name": "ObservableUndefined.toJSON"
							}
						},
						{
							"id": 6621,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6622,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6262,
										"name": "HistoricalElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2721,
										"name": "ObservableUndefined.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 107,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6262,
								"name": "HistoricalElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2720,
								"name": "ObservableUndefined.type"
							}
						},
						{
							"id": 6633,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6634,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The value of this element at the parent model's current version."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 6274,
										"name": "HistoricalElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2733,
										"name": "ObservableUndefined.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalElement.ts",
									"line": 188,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 6274,
								"name": "HistoricalElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2732,
								"name": "ObservableUndefined.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6611
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6639,
								6664,
								6619,
								6629,
								6631,
								6637,
								6660,
								6643,
								6647,
								6627,
								6623,
								6625,
								6651,
								6656,
								6653,
								6635,
								6621,
								6633
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalUndefined.ts",
							"line": 37,
							"character": 32
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 6762,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "HistoricalElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2717,
							"name": "ObservableUndefined"
						}
					]
				},
				{
					"id": 3513,
					"name": "IndexReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents one or more indices in a [[RealTimeString]] that must be adjusted while\nthe data is changing.  See the\n[developer guide](https://docs.convergence.io/guide/models/references/realtimestring.html)\nfor some examples."
					},
					"children": [
						{
							"id": 3581,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3582,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3583,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3584,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 3606,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3607,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 3561,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3562,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3321,
										"name": "ModelReference.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 215,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3321,
								"name": "ModelReference.isDisposed"
							}
						},
						{
							"id": 3555,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3556,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference was created locally."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3315,
										"name": "ModelReference.isLocal"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 194,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3315,
								"name": "ModelReference.isLocal"
							}
						},
						{
							"id": 3569,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3570,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3329,
										"name": "ModelReference.isSet"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 248,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3329,
								"name": "ModelReference.isSet"
							}
						},
						{
							"id": 3551,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3552,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3311,
										"name": "ModelReference.key"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 180,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3311,
								"name": "ModelReference.key"
							}
						},
						{
							"id": 3602,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3603,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3604,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3605,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 3585,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3586,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3587,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3588,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 3589,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3590,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3591,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3592,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 3593,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3594,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 3598,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3599,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3600,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3601,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 3595,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3596,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3597,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 3559,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3560,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3319,
										"name": "ModelReference.sessionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 208,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3319,
								"name": "ModelReference.sessionId"
							}
						},
						{
							"id": 3553,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3554,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3313,
										"name": "ModelReference.source"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 187,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3313,
								"name": "ModelReference.source"
							}
						},
						{
							"id": 3549,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3550,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3309,
										"name": "ModelReference.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 173,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3309,
								"name": "ModelReference.type"
							}
						},
						{
							"id": 3557,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3558,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3317,
										"name": "ModelReference.user"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 201,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3317,
								"name": "ModelReference.user"
							}
						},
						{
							"id": 3565,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3566,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3325,
										"name": "ModelReference.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 234,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3325,
								"name": "ModelReference.value"
							}
						},
						{
							"id": 3567,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3568,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3327,
										"name": "ModelReference.values"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3327,
								"name": "ModelReference.values"
							}
						},
						{
							"id": 3539,
							"name": "Events",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this instance could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nreference.on(ModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"children": [
								{
									"id": 3541,
									"name": "CLEARED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 87,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceClearedEvent.NAME"
								},
								{
									"id": 3542,
									"name": "DISPOSED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 88,
											"character": 12
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceDisposedEvent.NAME"
								},
								{
									"id": 3540,
									"name": "SET",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 86,
											"character": 7
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceSetEvent.NAME"
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										3541,
										3542,
										3540
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 85,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3282,
								"name": "ModelReference.Events"
							}
						},
						{
							"id": 3543,
							"name": "Types",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "All the types of references available on the various [[RealTimeElement]]s."
							},
							"children": [
								{
									"id": 3547,
									"name": "ELEMENT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 98,
											"character": 11
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "element"
									},
									"defaultValue": "\"element\""
								},
								{
									"id": 3544,
									"name": "INDEX",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 95,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "index"
									},
									"defaultValue": "\"index\""
								},
								{
									"id": 3546,
									"name": "PROPERTY",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 97,
											"character": 12
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "property"
									},
									"defaultValue": "\"property\""
								},
								{
									"id": 3545,
									"name": "RANGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 96,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "range"
									},
									"defaultValue": "\"range\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										3547,
										3544,
										3546,
										3545
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 94,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3286,
								"name": "ModelReference.Types"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								3581,
								3606,
								3561,
								3555,
								3569,
								3551,
								3602,
								3585,
								3589,
								3593,
								3598,
								3595,
								3559,
								3553,
								3549,
								3557,
								3565,
								3567
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								3539,
								3543
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/IndexReference.ts",
							"line": 29,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3280,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "number"
								}
							],
							"name": "ModelReference"
						}
					]
				},
				{
					"id": 5710,
					"name": "LocalElementReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An [[ElementReference]] that was created locally. See [[RealTimeModel.elementReference]]"
					},
					"children": [
						{
							"id": 5715,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this model reference could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nlocalReference.on(LocalModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 51,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 3276,
								"name": "ModelReferenceEvents"
							},
							"defaultValue": "ModelReference.Events",
							"inheritedFrom": {
								"type": "reference",
								"id": 3428,
								"name": "LocalModelReference.Events"
							}
						},
						{
							"id": 5756,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5757,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5758,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5759,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 5748,
							"name": "clear",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5749,
									"name": "clear",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Clears any values on this reference.  This is a way to explictly indicate that the\nreference currently has no value."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3467,
										"name": "LocalModelReference.clear"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 213,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3467,
								"name": "LocalModelReference.clear"
							}
						},
						{
							"id": 5752,
							"name": "dispose",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5753,
									"name": "dispose",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Disposes the reference, unpublishing it beforehand if necessary."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3471,
										"name": "LocalModelReference.dispose"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 229,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3471,
								"name": "LocalModelReference.dispose"
							}
						},
						{
							"id": 5781,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5782,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 5729,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5730,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3448,
										"name": "LocalModelReference.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 130,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3448,
								"name": "LocalModelReference.isDisposed"
							}
						},
						{
							"id": 5723,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5724,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3442,
										"name": "LocalModelReference.isLocal"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 109,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3442,
								"name": "LocalModelReference.isLocal"
							}
						},
						{
							"id": 5750,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5751,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3469,
										"name": "LocalModelReference.isSet"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 222,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3469,
								"name": "LocalModelReference.isSet"
							}
						},
						{
							"id": 5741,
							"name": "isShared",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5742,
									"name": "isShared",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference is currently being shared."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3460,
										"name": "LocalModelReference.isShared"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 183,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3460,
								"name": "LocalModelReference.isShared"
							}
						},
						{
							"id": 5719,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5720,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3438,
										"name": "LocalModelReference.key"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 95,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3438,
								"name": "LocalModelReference.key"
							}
						},
						{
							"id": 5777,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5778,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5779,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5780,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 5760,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5761,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5762,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5763,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 5764,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5765,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5766,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5767,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 5735,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5736,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the underlying [[ModelReference]]."
									},
									"type": {
										"type": "reference",
										"id": 5617,
										"name": "ElementReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3454,
										"name": "LocalModelReference.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 151,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3454,
								"name": "LocalModelReference.reference"
							}
						},
						{
							"id": 5768,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5769,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 5773,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5774,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5775,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5776,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 5770,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5771,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5772,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 5727,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5728,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3446,
										"name": "LocalModelReference.sessionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 123,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3446,
								"name": "LocalModelReference.sessionId"
							}
						},
						{
							"id": 5743,
							"name": "set",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5744,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets one or multiple values on this reference. If the reference is published,\nit will emit an event do any remote listeners."
									},
									"parameters": [
										{
											"id": 5745,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value(s)\n"
											},
											"type": {
												"type": "reference",
												"id": 5521,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "RealTimeElement"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3462,
										"name": "LocalModelReference.set"
									}
								},
								{
									"id": 5746,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 5747,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 5521,
													"typeArguments": [
														{
															"type": "intrinsic",
															"name": "any"
														}
													],
													"name": "RealTimeElement"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3462,
										"name": "LocalModelReference.set"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 193,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 194,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 195,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3462,
								"name": "LocalModelReference.set"
							}
						},
						{
							"id": 5737,
							"name": "share",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5738,
									"name": "share",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes the reference, such that other users with access to the attached\nmodel can access this reference and its underlying value(s). If the\nreference is already shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3456,
										"name": "LocalModelReference.share"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 160,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3456,
								"name": "LocalModelReference.share"
							}
						},
						{
							"id": 5721,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5722,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3440,
										"name": "LocalModelReference.source"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 102,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3440,
								"name": "LocalModelReference.source"
							}
						},
						{
							"id": 5717,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5718,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3436,
										"name": "LocalModelReference.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 88,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3436,
								"name": "LocalModelReference.type"
							}
						},
						{
							"id": 5739,
							"name": "unshare",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5740,
									"name": "unshare",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Unpublishes the reference, essentially making it private. If the reference\nis not currently shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3458,
										"name": "LocalModelReference.unshare"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 172,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3458,
								"name": "LocalModelReference.unshare"
							}
						},
						{
							"id": 5725,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5726,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3444,
										"name": "LocalModelReference.user"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 116,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3444,
								"name": "LocalModelReference.user"
							}
						},
						{
							"id": 5731,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5732,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "reference",
										"id": 5521,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "RealTimeElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3450,
										"name": "LocalModelReference.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 137,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3450,
								"name": "LocalModelReference.value"
							}
						},
						{
							"id": 5733,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5734,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 5521,
											"typeArguments": [
												{
													"type": "intrinsic",
													"name": "any"
												}
											],
											"name": "RealTimeElement"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3452,
										"name": "LocalModelReference.values"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 144,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3452,
								"name": "LocalModelReference.values"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								5715
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								5756,
								5748,
								5752,
								5781,
								5729,
								5723,
								5750,
								5741,
								5719,
								5777,
								5760,
								5764,
								5735,
								5768,
								5773,
								5770,
								5727,
								5743,
								5737,
								5721,
								5717,
								5739,
								5725,
								5731,
								5733
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/LocalElementReference.ts",
							"line": 24,
							"character": 34
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3425,
							"typeArguments": [
								{
									"type": "reference",
									"id": 5521,
									"typeArguments": [
										{
											"type": "intrinsic",
											"name": "any"
										}
									],
									"name": "RealTimeElement"
								},
								{
									"type": "reference",
									"id": 5617,
									"name": "ElementReference"
								}
							],
							"name": "LocalModelReference"
						}
					]
				},
				{
					"id": 5792,
					"name": "LocalIndexReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An [[IndexReference]] that was created locally. See [[RealTimeString.indexReference]]"
					},
					"children": [
						{
							"id": 5797,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this model reference could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nlocalReference.on(LocalModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 51,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 3276,
								"name": "ModelReferenceEvents"
							},
							"defaultValue": "ModelReference.Events",
							"inheritedFrom": {
								"type": "reference",
								"id": 3428,
								"name": "LocalModelReference.Events"
							}
						},
						{
							"id": 5838,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5839,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5840,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5841,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 5830,
							"name": "clear",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5831,
									"name": "clear",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Clears any values on this reference.  This is a way to explictly indicate that the\nreference currently has no value."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3467,
										"name": "LocalModelReference.clear"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 213,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3467,
								"name": "LocalModelReference.clear"
							}
						},
						{
							"id": 5834,
							"name": "dispose",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5835,
									"name": "dispose",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Disposes the reference, unpublishing it beforehand if necessary."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3471,
										"name": "LocalModelReference.dispose"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 229,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3471,
								"name": "LocalModelReference.dispose"
							}
						},
						{
							"id": 5863,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5864,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 5811,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5812,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3448,
										"name": "LocalModelReference.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 130,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3448,
								"name": "LocalModelReference.isDisposed"
							}
						},
						{
							"id": 5805,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5806,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3442,
										"name": "LocalModelReference.isLocal"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 109,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3442,
								"name": "LocalModelReference.isLocal"
							}
						},
						{
							"id": 5832,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5833,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3469,
										"name": "LocalModelReference.isSet"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 222,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3469,
								"name": "LocalModelReference.isSet"
							}
						},
						{
							"id": 5823,
							"name": "isShared",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5824,
									"name": "isShared",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference is currently being shared."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3460,
										"name": "LocalModelReference.isShared"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 183,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3460,
								"name": "LocalModelReference.isShared"
							}
						},
						{
							"id": 5801,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5802,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3438,
										"name": "LocalModelReference.key"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 95,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3438,
								"name": "LocalModelReference.key"
							}
						},
						{
							"id": 5859,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5860,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5861,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5862,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 5842,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5843,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5844,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5845,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 5846,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5847,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5848,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5849,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 5817,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5818,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the underlying [[ModelReference]]."
									},
									"type": {
										"type": "reference",
										"id": 3513,
										"name": "IndexReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3454,
										"name": "LocalModelReference.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 151,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3454,
								"name": "LocalModelReference.reference"
							}
						},
						{
							"id": 5850,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5851,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 5855,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5856,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5857,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5858,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 5852,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5853,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5854,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 5809,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5810,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3446,
										"name": "LocalModelReference.sessionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 123,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3446,
								"name": "LocalModelReference.sessionId"
							}
						},
						{
							"id": 5825,
							"name": "set",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5826,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets one or multiple values on this reference. If the reference is published,\nit will emit an event do any remote listeners."
									},
									"parameters": [
										{
											"id": 5827,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value(s)\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3462,
										"name": "LocalModelReference.set"
									}
								},
								{
									"id": 5828,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 5829,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "number"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3462,
										"name": "LocalModelReference.set"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 193,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 194,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 195,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3462,
								"name": "LocalModelReference.set"
							}
						},
						{
							"id": 5819,
							"name": "share",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5820,
									"name": "share",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes the reference, such that other users with access to the attached\nmodel can access this reference and its underlying value(s). If the\nreference is already shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3456,
										"name": "LocalModelReference.share"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 160,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3456,
								"name": "LocalModelReference.share"
							}
						},
						{
							"id": 5803,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5804,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3440,
										"name": "LocalModelReference.source"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 102,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3440,
								"name": "LocalModelReference.source"
							}
						},
						{
							"id": 5799,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5800,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3436,
										"name": "LocalModelReference.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 88,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3436,
								"name": "LocalModelReference.type"
							}
						},
						{
							"id": 5821,
							"name": "unshare",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5822,
									"name": "unshare",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Unpublishes the reference, essentially making it private. If the reference\nis not currently shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3458,
										"name": "LocalModelReference.unshare"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 172,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3458,
								"name": "LocalModelReference.unshare"
							}
						},
						{
							"id": 5807,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5808,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3444,
										"name": "LocalModelReference.user"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 116,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3444,
								"name": "LocalModelReference.user"
							}
						},
						{
							"id": 5813,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5814,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3450,
										"name": "LocalModelReference.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 137,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3450,
								"name": "LocalModelReference.value"
							}
						},
						{
							"id": 5815,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5816,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "number"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3452,
										"name": "LocalModelReference.values"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 144,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3452,
								"name": "LocalModelReference.values"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								5797
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								5838,
								5830,
								5834,
								5863,
								5811,
								5805,
								5832,
								5823,
								5801,
								5859,
								5842,
								5846,
								5817,
								5850,
								5855,
								5852,
								5809,
								5825,
								5819,
								5803,
								5799,
								5821,
								5807,
								5813,
								5815
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/LocalIndexReference.ts",
							"line": 23,
							"character": 32
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3425,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "number"
								},
								{
									"type": "reference",
									"id": 3513,
									"name": "IndexReference"
								}
							],
							"name": "LocalModelReference"
						}
					]
				},
				{
					"id": 3425,
					"name": "LocalModelReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true,
						"isAbstract": true
					},
					"comment": {
						"shortText": "The parent class for a\n[local reference](https://docs.convergence.io/guide/models/references/local-references.html)."
					},
					"typeParameter": [
						{
							"id": 3426,
							"name": "V",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						},
						{
							"id": 3427,
							"name": "R",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							},
							"type": {
								"type": "reference",
								"id": 3280,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "V"
									}
								],
								"name": "ModelReference"
							}
						}
					],
					"children": [
						{
							"id": 3428,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this model reference could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nlocalReference.on(LocalModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 51,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 3276,
								"name": "ModelReferenceEvents"
							},
							"defaultValue": "ModelReference.Events"
						},
						{
							"id": 3477,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3478,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3479,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3480,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 3467,
							"name": "clear",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3468,
									"name": "clear",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Clears any values on this reference.  This is a way to explictly indicate that the\nreference currently has no value."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 213,
									"character": 14
								}
							]
						},
						{
							"id": 3471,
							"name": "dispose",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3472,
									"name": "dispose",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Disposes the reference, unpublishing it beforehand if necessary."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 229,
									"character": 16
								}
							]
						},
						{
							"id": 3502,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3503,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 3448,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3449,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 130,
									"character": 19
								}
							]
						},
						{
							"id": 3442,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3443,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 109,
									"character": 16
								}
							]
						},
						{
							"id": 3469,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3470,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 222,
									"character": 14
								}
							]
						},
						{
							"id": 3460,
							"name": "isShared",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3461,
									"name": "isShared",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference is currently being shared."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 183,
									"character": 17
								}
							]
						},
						{
							"id": 3438,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3439,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 95,
									"character": 12
								}
							]
						},
						{
							"id": 3498,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3499,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3500,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3501,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 3481,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3482,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3483,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3484,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 3485,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3486,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3487,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3488,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 3454,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3455,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the underlying [[ModelReference]]."
									},
									"type": {
										"type": "typeParameter",
										"name": "R",
										"constraint": {
											"type": "reference",
											"id": 3280,
											"typeArguments": [
												{
													"type": "typeParameter",
													"name": "V"
												}
											],
											"name": "ModelReference"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 151,
									"character": 18
								}
							]
						},
						{
							"id": 3489,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3490,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 3494,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3495,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3496,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3497,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 3491,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3492,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3493,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 3446,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3447,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 123,
									"character": 18
								}
							]
						},
						{
							"id": 3462,
							"name": "set",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3463,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets one or multiple values on this reference. If the reference is published,\nit will emit an event do any remote listeners."
									},
									"parameters": [
										{
											"id": 3464,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value(s)\n"
											},
											"type": {
												"type": "typeParameter",
												"name": "V"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								},
								{
									"id": 3465,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 3466,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "typeParameter",
													"name": "V"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 193,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 194,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 195,
									"character": 12
								}
							]
						},
						{
							"id": 3456,
							"name": "share",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3457,
									"name": "share",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes the reference, such that other users with access to the attached\nmodel can access this reference and its underlying value(s). If the\nreference is already shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 160,
									"character": 14
								}
							]
						},
						{
							"id": 3440,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3441,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 102,
									"character": 15
								}
							]
						},
						{
							"id": 3436,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3437,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 88,
									"character": 13
								}
							]
						},
						{
							"id": 3458,
							"name": "unshare",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3459,
									"name": "unshare",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Unpublishes the reference, essentially making it private. If the reference\nis not currently shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 172,
									"character": 16
								}
							]
						},
						{
							"id": 3444,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3445,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 116,
									"character": 13
								}
							]
						},
						{
							"id": 3450,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3451,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "typeParameter",
										"name": "V"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 137,
									"character": 14
								}
							]
						},
						{
							"id": 3452,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3453,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "typeParameter",
											"name": "V"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 144,
									"character": 15
								}
							]
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3428
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								3477,
								3467,
								3471,
								3502,
								3448,
								3442,
								3469,
								3460,
								3438,
								3498,
								3481,
								3485,
								3454,
								3489,
								3494,
								3491,
								3446,
								3462,
								3456,
								3440,
								3436,
								3458,
								3444,
								3450,
								3452
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/LocalModelReference.ts",
							"line": 38,
							"character": 41
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 426,
									"name": "IConvergenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 5710,
							"name": "LocalElementReference"
						},
						{
							"type": "reference",
							"id": 5792,
							"name": "LocalIndexReference"
						},
						{
							"type": "reference",
							"id": 5874,
							"name": "LocalPropertyReference"
						},
						{
							"type": "reference",
							"id": 5956,
							"name": "LocalRangeReference"
						}
					]
				},
				{
					"id": 5874,
					"name": "LocalPropertyReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An [[PropertyReference]] that was created locally.\nSee [[RealTimeObject.propertyReference]]"
					},
					"children": [
						{
							"id": 5879,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this model reference could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nlocalReference.on(LocalModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 51,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 3276,
								"name": "ModelReferenceEvents"
							},
							"defaultValue": "ModelReference.Events",
							"inheritedFrom": {
								"type": "reference",
								"id": 3428,
								"name": "LocalModelReference.Events"
							}
						},
						{
							"id": 5920,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5921,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5922,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5923,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 5912,
							"name": "clear",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5913,
									"name": "clear",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Clears any values on this reference.  This is a way to explictly indicate that the\nreference currently has no value."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3467,
										"name": "LocalModelReference.clear"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 213,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3467,
								"name": "LocalModelReference.clear"
							}
						},
						{
							"id": 5916,
							"name": "dispose",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5917,
									"name": "dispose",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Disposes the reference, unpublishing it beforehand if necessary."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3471,
										"name": "LocalModelReference.dispose"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 229,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3471,
								"name": "LocalModelReference.dispose"
							}
						},
						{
							"id": 5945,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5946,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 5893,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5894,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3448,
										"name": "LocalModelReference.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 130,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3448,
								"name": "LocalModelReference.isDisposed"
							}
						},
						{
							"id": 5887,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5888,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3442,
										"name": "LocalModelReference.isLocal"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 109,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3442,
								"name": "LocalModelReference.isLocal"
							}
						},
						{
							"id": 5914,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5915,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3469,
										"name": "LocalModelReference.isSet"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 222,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3469,
								"name": "LocalModelReference.isSet"
							}
						},
						{
							"id": 5905,
							"name": "isShared",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5906,
									"name": "isShared",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference is currently being shared."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3460,
										"name": "LocalModelReference.isShared"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 183,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3460,
								"name": "LocalModelReference.isShared"
							}
						},
						{
							"id": 5883,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5884,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3438,
										"name": "LocalModelReference.key"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 95,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3438,
								"name": "LocalModelReference.key"
							}
						},
						{
							"id": 5941,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5942,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5943,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5944,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 5924,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5925,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5926,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5927,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 5928,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5929,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5930,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5931,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 5899,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5900,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the underlying [[ModelReference]]."
									},
									"type": {
										"type": "reference",
										"id": 3724,
										"name": "PropertyReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3454,
										"name": "LocalModelReference.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 151,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3454,
								"name": "LocalModelReference.reference"
							}
						},
						{
							"id": 5932,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5933,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 5937,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5938,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5939,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5940,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 5934,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5935,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5936,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 5891,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5892,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3446,
										"name": "LocalModelReference.sessionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 123,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3446,
								"name": "LocalModelReference.sessionId"
							}
						},
						{
							"id": 5907,
							"name": "set",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5908,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets one or multiple values on this reference. If the reference is published,\nit will emit an event do any remote listeners."
									},
									"parameters": [
										{
											"id": 5909,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value(s)\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3462,
										"name": "LocalModelReference.set"
									}
								},
								{
									"id": 5910,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 5911,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3462,
										"name": "LocalModelReference.set"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 193,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 194,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 195,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3462,
								"name": "LocalModelReference.set"
							}
						},
						{
							"id": 5901,
							"name": "share",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5902,
									"name": "share",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes the reference, such that other users with access to the attached\nmodel can access this reference and its underlying value(s). If the\nreference is already shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3456,
										"name": "LocalModelReference.share"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 160,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3456,
								"name": "LocalModelReference.share"
							}
						},
						{
							"id": 5885,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5886,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3440,
										"name": "LocalModelReference.source"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 102,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3440,
								"name": "LocalModelReference.source"
							}
						},
						{
							"id": 5881,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5882,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3436,
										"name": "LocalModelReference.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 88,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3436,
								"name": "LocalModelReference.type"
							}
						},
						{
							"id": 5903,
							"name": "unshare",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5904,
									"name": "unshare",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Unpublishes the reference, essentially making it private. If the reference\nis not currently shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3458,
										"name": "LocalModelReference.unshare"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 172,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3458,
								"name": "LocalModelReference.unshare"
							}
						},
						{
							"id": 5889,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5890,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3444,
										"name": "LocalModelReference.user"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 116,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3444,
								"name": "LocalModelReference.user"
							}
						},
						{
							"id": 5895,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5896,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3450,
										"name": "LocalModelReference.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 137,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3450,
								"name": "LocalModelReference.value"
							}
						},
						{
							"id": 5897,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5898,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "string"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3452,
										"name": "LocalModelReference.values"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 144,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3452,
								"name": "LocalModelReference.values"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								5879
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								5920,
								5912,
								5916,
								5945,
								5893,
								5887,
								5914,
								5905,
								5883,
								5941,
								5924,
								5928,
								5899,
								5932,
								5937,
								5934,
								5891,
								5907,
								5901,
								5885,
								5881,
								5903,
								5889,
								5895,
								5897
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/LocalPropertyReference.ts",
							"line": 24,
							"character": 35
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3425,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "string"
								},
								{
									"type": "reference",
									"id": 3724,
									"name": "PropertyReference"
								}
							],
							"name": "LocalModelReference"
						}
					]
				},
				{
					"id": 5956,
					"name": "LocalRangeReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A [[RangeReference]] that was created locally. See [[RealTimeString.rangeReference]]"
					},
					"children": [
						{
							"id": 5961,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this model reference could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nlocalReference.on(LocalModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 51,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 3276,
								"name": "ModelReferenceEvents"
							},
							"defaultValue": "ModelReference.Events",
							"inheritedFrom": {
								"type": "reference",
								"id": 3428,
								"name": "LocalModelReference.Events"
							}
						},
						{
							"id": 6002,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6003,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6004,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6005,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 5994,
							"name": "clear",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5995,
									"name": "clear",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Clears any values on this reference.  This is a way to explictly indicate that the\nreference currently has no value."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3467,
										"name": "LocalModelReference.clear"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 213,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3467,
								"name": "LocalModelReference.clear"
							}
						},
						{
							"id": 5998,
							"name": "dispose",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5999,
									"name": "dispose",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Disposes the reference, unpublishing it beforehand if necessary."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3471,
										"name": "LocalModelReference.dispose"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 229,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3471,
								"name": "LocalModelReference.dispose"
							}
						},
						{
							"id": 6027,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6028,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 5975,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5976,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3448,
										"name": "LocalModelReference.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 130,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3448,
								"name": "LocalModelReference.isDisposed"
							}
						},
						{
							"id": 5969,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5970,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3442,
										"name": "LocalModelReference.isLocal"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 109,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3442,
								"name": "LocalModelReference.isLocal"
							}
						},
						{
							"id": 5996,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5997,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3469,
										"name": "LocalModelReference.isSet"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 222,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3469,
								"name": "LocalModelReference.isSet"
							}
						},
						{
							"id": 5987,
							"name": "isShared",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5988,
									"name": "isShared",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference is currently being shared."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3460,
										"name": "LocalModelReference.isShared"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 183,
									"character": 17
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3460,
								"name": "LocalModelReference.isShared"
							}
						},
						{
							"id": 5965,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5966,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3438,
										"name": "LocalModelReference.key"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 95,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3438,
								"name": "LocalModelReference.key"
							}
						},
						{
							"id": 6023,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6024,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6025,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6026,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 6006,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6007,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6008,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6009,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 6010,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6011,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6012,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6013,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 5981,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5982,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the underlying [[ModelReference]]."
									},
									"type": {
										"type": "reference",
										"id": 3620,
										"name": "RangeReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3454,
										"name": "LocalModelReference.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 151,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3454,
								"name": "LocalModelReference.reference"
							}
						},
						{
							"id": 6014,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6015,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 6019,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6020,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6021,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6022,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 6016,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6017,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6018,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 5973,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5974,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3446,
										"name": "LocalModelReference.sessionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 123,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3446,
								"name": "LocalModelReference.sessionId"
							}
						},
						{
							"id": 5989,
							"name": "set",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5990,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets one or multiple values on this reference. If the reference is published,\nit will emit an event do any remote listeners."
									},
									"parameters": [
										{
											"id": 5991,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value(s)\n"
											},
											"type": {
												"type": "reference",
												"id": 3617,
												"name": "IndexRange"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3462,
										"name": "LocalModelReference.set"
									}
								},
								{
									"id": 5992,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 5993,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 3617,
													"name": "IndexRange"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3462,
										"name": "LocalModelReference.set"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 193,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 194,
									"character": 12
								},
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 195,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3462,
								"name": "LocalModelReference.set"
							}
						},
						{
							"id": 5983,
							"name": "share",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5984,
									"name": "share",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Publishes the reference, such that other users with access to the attached\nmodel can access this reference and its underlying value(s). If the\nreference is already shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3456,
										"name": "LocalModelReference.share"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 160,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3456,
								"name": "LocalModelReference.share"
							}
						},
						{
							"id": 5967,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5968,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3440,
										"name": "LocalModelReference.source"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 102,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3440,
								"name": "LocalModelReference.source"
							}
						},
						{
							"id": 5963,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5964,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3436,
										"name": "LocalModelReference.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 88,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3436,
								"name": "LocalModelReference.type"
							}
						},
						{
							"id": 5985,
							"name": "unshare",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5986,
									"name": "unshare",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Unpublishes the reference, essentially making it private. If the reference\nis not currently shared, the call will simply be ignored."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3458,
										"name": "LocalModelReference.unshare"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 172,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3458,
								"name": "LocalModelReference.unshare"
							}
						},
						{
							"id": 5971,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5972,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3444,
										"name": "LocalModelReference.user"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 116,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3444,
								"name": "LocalModelReference.user"
							}
						},
						{
							"id": 5977,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5978,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "reference",
										"id": 3617,
										"name": "IndexRange"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3450,
										"name": "LocalModelReference.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 137,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3450,
								"name": "LocalModelReference.value"
							}
						},
						{
							"id": 5979,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5980,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3617,
											"name": "IndexRange"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3452,
										"name": "LocalModelReference.values"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/LocalModelReference.ts",
									"line": 144,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3452,
								"name": "LocalModelReference.values"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								5961
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6002,
								5994,
								5998,
								6027,
								5975,
								5969,
								5996,
								5987,
								5965,
								6023,
								6006,
								6010,
								5981,
								6014,
								6019,
								6016,
								5973,
								5989,
								5983,
								5967,
								5963,
								5985,
								5971,
								5977,
								5979
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/LocalRangeReference.ts",
							"line": 23,
							"character": 32
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3425,
							"typeArguments": [
								{
									"type": "reference",
									"id": 3617,
									"name": "IndexRange"
								},
								{
									"type": "reference",
									"id": 3620,
									"name": "RangeReference"
								}
							],
							"name": "LocalModelReference"
						}
					]
				},
				{
					"id": 4171,
					"name": "ModelChangedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ModelChangedEvent]] is fired by a [[ObservableElement]] when a child\nelement has a change.  This is a convenience event which you can listen to e.g.\nwithin a [[RealTimeContainerElement]] when you'd like to know about *any* changes\nto the data within."
					},
					"children": [
						{
							"id": 4180,
							"name": "childEvent",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The actual, more granular event."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelChangedEvent.ts",
									"line": 77,
									"character": 30
								}
							],
							"type": {
								"type": "reference",
								"id": 3888,
								"name": "IValueChangedEvent"
							}
						},
						{
							"id": 4175,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeElement]] or [[HistoricalElement]] whose contents changed."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelChangedEvent.ts",
									"line": 52,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3884,
								"name": "IConvergenceModelValueEvent.element"
							}
						},
						{
							"id": 4178,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelChangedEvent.ts",
									"line": 67,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3885,
								"name": "IConvergenceModelValueEvent.local"
							}
						},
						{
							"id": 4173,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelChangedEvent.ts",
									"line": 35,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelChangedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3886,
								"name": "IConvergenceModelValueEvent.name"
							}
						},
						{
							"id": 4179,
							"name": "relativePath",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[Path]] of the [[RealTimeElement]] on which the specific event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelChangedEvent.ts",
									"line": 72,
									"character": 32
								}
							],
							"type": {
								"type": "reference",
								"id": 1288,
								"name": "Path"
							}
						},
						{
							"id": 4177,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelChangedEvent.ts",
									"line": 62,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4176,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelChangedEvent.ts",
									"line": 57,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 4172,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelChangedEvent.ts",
									"line": 30,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "model_changed"
							},
							"defaultValue": "\"model_changed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4180,
								4175,
								4178,
								4173,
								4179,
								4177,
								4176,
								4172
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelChangedEvent.ts",
							"line": 29,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3883,
							"name": "IConvergenceModelValueEvent"
						}
					]
				},
				{
					"id": 4189,
					"name": "ModelClosedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ModelClosedEvent]] is fired when a Model is closed either by the\nclient or the server."
					},
					"children": [
						{
							"id": 4194,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if this event was triggered locally."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelClosedEvent.ts",
									"line": 49,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4191,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelClosedEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelClosedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4195,
							"name": "reason",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelClosedEvent.ts",
									"line": 54,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4193,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] or [[HistoricalModel]] that was closed."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelClosedEvent.ts",
									"line": 44,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 1416,
								"name": "ObservableModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4190,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelClosedEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "closed"
							},
							"defaultValue": "\"closed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4194,
								4191,
								4195,
								4193,
								4190
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelClosedEvent.ts",
							"line": 24,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 3238,
					"name": "ModelCollaborator",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ModelCollaborator]] represents a user / session that has opened\na given model for shared editing."
					},
					"children": [
						{
							"id": 3241,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId of the [[ModelCollaborator]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/ModelCollaborator.ts",
									"line": 37,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 3240,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user of the [[ModelCollaborator]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/ModelCollaborator.ts",
									"line": 32,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3241,
								3240
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/ModelCollaborator.ts",
							"line": 23,
							"character": 30
						}
					]
				},
				{
					"id": 4365,
					"name": "ModelCommittedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ModelCommittedEvent]] is fired when a model has unacknowledged local\nmodifications to the model, and then all modifications are acknowledged by\nthe server."
					},
					"children": [
						{
							"id": 4367,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelCommittedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelCommittedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4369,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model model that emitted the event."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelCommittedEvent.ts",
									"line": 41,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4366,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelCommittedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "committed"
							},
							"defaultValue": "\"committed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4367,
								4369,
								4366
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelCommittedEvent.ts",
							"line": 25,
							"character": 32
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4201,
					"name": "ModelDeletedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] has been deleted."
					},
					"children": [
						{
							"id": 4206,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if this change occurred locally (in the current session)"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelDeletedEvent.ts",
									"line": 44,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4203,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelDeletedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelDeletedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4207,
							"name": "reason",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "In the event that the model was deleted remotely, a reason may be provided."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelDeletedEvent.ts",
									"line": 49,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4205,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] that was deleted."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelDeletedEvent.ts",
									"line": 39,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4202,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelDeletedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "deleted"
							},
							"defaultValue": "\"deleted\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4206,
								4203,
								4207,
								4205,
								4202
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelDeletedEvent.ts",
							"line": 23,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4373,
					"name": "ModelModifiedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[ModelModifiedEvent]] is when a model has its first non-acknowledged\nmutation. It is fired when the model currently has not outstanding changes\nand a change is made. It will not be fired on subsequent consecutive\nchanges unless all changes are first acknowledged."
					},
					"children": [
						{
							"id": 4375,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelModifiedEvent.ts",
									"line": 32,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelModifiedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4377,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model model that emitted the event."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelModifiedEvent.ts",
									"line": 42,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4374,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelModifiedEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "modified"
							},
							"defaultValue": "\"modified\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4375,
								4377,
								4374
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelModifiedEvent.ts",
							"line": 26,
							"character": 31
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4267,
					"name": "ModelOfflineEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] goes offline, generally because the client\nlost connectivity to the server.  Subscribe to this\ndirectly on a [[RealTimeModel]] rather than a [[RealTimeElement]] within."
					},
					"children": [
						{
							"id": 4269,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelOfflineEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelOfflineEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4271,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] that just went offline."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelOfflineEvent.ts",
									"line": 41,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4268,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelOfflineEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline"
							},
							"defaultValue": "\"offline\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4269,
								4271,
								4268
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelOfflineEvent.ts",
							"line": 25,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4259,
					"name": "ModelOnlineEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] goes online after being offline. Subscribe\nto this directly on a [[RealTimeModel]] rather than a [[RealTimeElement]]\nwithin."
					},
					"children": [
						{
							"id": 4261,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelOnlineEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelOnlineEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4263,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] that came online."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelOnlineEvent.ts",
									"line": 41,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4260,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelOnlineEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "online"
							},
							"defaultValue": "\"online\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4261,
								4263,
								4260
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelOnlineEvent.ts",
							"line": 25,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4629,
					"name": "ModelPermissionManager",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Use this class to manage or query the permissions of a particular\n[[RealTimeModel]]."
					},
					"children": [
						{
							"id": 4636,
							"name": "modelId",
							"kind": 262144,
							"kindString": "Accessor",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The id of the model this permission manager works with."
							},
							"getSignature": [
								{
									"id": 4637,
									"name": "__get",
									"kind": 524288,
									"kindString": "Get signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The id of the model this permission manager works with."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 60,
									"character": 13
								}
							]
						},
						{
							"id": 4650,
							"name": "getAllUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4651,
									"name": "getAllUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 974,
												"typeArguments": [
													{
														"type": "reference",
														"id": 4219,
														"name": "ModelPermissions"
													}
												],
												"name": "DomainUserIdMap"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 151,
									"character": 30
								}
							]
						},
						{
							"id": 4643,
							"name": "getOverridesCollection",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4644,
									"name": "getOverridesCollection",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if this model overrides the world permissions\nfrom the model's collection.",
										"returns": "True if the model overrides it's collection's\nworld permissions.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "boolean"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 104,
									"character": 31
								}
							]
						},
						{
							"id": 4638,
							"name": "getPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4639,
									"name": "getPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the permissions of the local user for this model"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 4219,
												"name": "ModelPermissions"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 67,
									"character": 23
								}
							]
						},
						{
							"id": 4655,
							"name": "getUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4656,
									"name": "getUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 4657,
											"name": "userId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"id": 4219,
														"name": "ModelPermissions"
													},
													{
														"type": "intrinsic",
														"name": "undefined"
													}
												]
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 180,
									"character": 27
								}
							]
						},
						{
							"id": 4645,
							"name": "getWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4646,
									"name": "getWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the model's world permissions.",
										"returns": "The model's world permissions.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 4219,
												"name": "ModelPermissions"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 122,
									"character": 28
								}
							]
						},
						{
							"id": 4662,
							"name": "removeUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4663,
									"name": "removeUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 4664,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 203,
									"character": 30
								}
							]
						},
						{
							"id": 4652,
							"name": "setAllUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4653,
									"name": "setAllUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 4654,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 971,
												"typeArguments": [
													{
														"type": "reference",
														"id": 4213,
														"name": "IModelPermissions"
													}
												],
												"name": "DomainUserMapping"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 164,
									"character": 30
								}
							]
						},
						{
							"id": 4640,
							"name": "setOverridesCollection",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4641,
									"name": "setOverridesCollection",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets this model to override it's collection's world permissions or\nnot."
									},
									"parameters": [
										{
											"id": 4642,
											"name": "overrideCollection",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "True to override this model's collection\nworld permissions.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 81,
									"character": 31
								}
							]
						},
						{
							"id": 4658,
							"name": "setUserPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4659,
									"name": "setUserPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 4660,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										},
										{
											"id": 4661,
											"name": "permissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 4213,
												"name": "IModelPermissions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 186,
									"character": 27
								}
							]
						},
						{
							"id": 4647,
							"name": "setWorldPermissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4648,
									"name": "setWorldPermissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 4649,
											"name": "worldPermissions",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 4219,
												"name": "ModelPermissions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissionManager.ts",
									"line": 135,
									"character": 28
								}
							]
						}
					],
					"groups": [
						{
							"title": "Accessors",
							"kind": 262144,
							"children": [
								4636
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								4650,
								4643,
								4638,
								4655,
								4645,
								4662,
								4652,
								4640,
								4658,
								4647
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/ModelPermissionManager.ts",
							"line": 36,
							"character": 35
						}
					]
				},
				{
					"id": 4219,
					"name": "ModelPermissions",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A set of permissions that are configurable on a given model."
					},
					"children": [
						{
							"id": 4224,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Creates a new ModelPermissions object."
							},
							"signatures": [
								{
									"id": 4229,
									"name": "new ModelPermissions",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates a new ModelPermissions object."
									},
									"parameters": [
										{
											"id": 4230,
											"name": "read",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 4231,
											"name": "write",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 4232,
											"name": "remove",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										},
										{
											"id": 4233,
											"name": "manage",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 4219,
										"name": "ModelPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissions.ts",
									"line": 35,
									"character": 3
								}
							]
						},
						{
							"id": 4228,
							"name": "manage",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Set to true to permit managing the permissions on a model."
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissions.ts",
									"line": 56,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4217,
								"name": "IModelPermissions.manage"
							}
						},
						{
							"id": 4225,
							"name": "read",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Set to true to allow read access to a model."
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissions.ts",
									"line": 44,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4214,
								"name": "IModelPermissions.read"
							}
						},
						{
							"id": 4227,
							"name": "remove",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Set to true to permit deleting a model."
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissions.ts",
									"line": 52,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4216,
								"name": "IModelPermissions.remove"
							}
						},
						{
							"id": 4226,
							"name": "write",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Set to true to allow write access to a model."
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissions.ts",
									"line": 48,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 4215,
								"name": "IModelPermissions.write"
							}
						},
						{
							"id": 4220,
							"name": "NONE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissions.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "reference",
								"id": 4219,
								"name": "ModelPermissions"
							},
							"defaultValue": "new ModelPermissions(false, false, false, false)"
						},
						{
							"id": 4234,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4235,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 4213,
										"name": "IModelPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissions.ts",
									"line": 61,
									"character": 15
								}
							]
						},
						{
							"id": 4221,
							"name": "fromJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 4222,
									"name": "fromJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates a new ModelPermissions class from a JSON representation.",
										"returns": "A ModelPermissions instance initialized from the JSON Object.\n"
									},
									"parameters": [
										{
											"id": 4223,
											"name": "json",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The JSON representations of the ModelPermissions.\n"
											},
											"type": {
												"type": "reference",
												"id": 4213,
												"name": "IModelPermissions"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 4219,
										"name": "ModelPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelPermissions.ts",
									"line": 33,
									"character": 24
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								4224
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4228,
								4225,
								4227,
								4226,
								4220
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								4234,
								4221
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/ModelPermissions.ts",
							"line": 22,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 4213,
							"name": "IModelPermissions"
						}
					]
				},
				{
					"id": 4237,
					"name": "ModelPermissionsChangedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the permissions on a model are modified. See [[ModelPermissionManager]]\nto manage permissions programmatically."
					},
					"children": [
						{
							"id": 4243,
							"name": "changes",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelPermissionsChangedEvent.ts",
									"line": 56,
									"character": 27
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						},
						{
							"id": 4241,
							"name": "model",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model whose permissions changed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelPermissionsChangedEvent.ts",
									"line": 45,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							}
						},
						{
							"id": 4239,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelPermissionsChangedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelPermissionsChangedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4242,
							"name": "permissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The permissions that changed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelPermissionsChangedEvent.ts",
									"line": 50,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 4219,
								"name": "ModelPermissions"
							}
						},
						{
							"id": 4238,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelPermissionsChangedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "permissions_changed"
							},
							"defaultValue": "\"permissions_changed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4243,
								4241,
								4239,
								4242,
								4238
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelPermissionsChangedEvent.ts",
							"line": 25,
							"character": 41
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4275,
					"name": "ModelReconnectingEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] is attempting to reconnect to the server\nafter being offline."
					},
					"children": [
						{
							"id": 4277,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of this event type.  This can be used to filter when using the\n[[ConvergenceEventEmitter.events]] stream."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelReconnectingEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ModelReconnectingEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4279,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] that is reconnecting"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelReconnectingEvent.ts",
									"line": 41,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4276,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ModelReconnectingEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "reconnecting"
							},
							"defaultValue": "\"reconnecting\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4277,
								4279,
								4276
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ModelReconnectingEvent.ts",
							"line": 24,
							"character": 35
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 3280,
					"name": "ModelReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true,
						"isAbstract": true
					},
					"comment": {
						"shortText": "The base class for all [references](https://docs.convergence.io/guide/models/references/references.html),\nwhich are essentially pointers to elements and data within a [[RealTimeModel]].\nThey are typically used to implement transient UX constructs such as text selections\nand cursors.",
						"text": "See [[ModelReferenceEvents]] for all of the events that could be emitted from\ninstances of this class.\n"
					},
					"typeParameter": [
						{
							"id": 3281,
							"name": "V",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 3341,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3342,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3343,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3344,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 3366,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3367,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 3321,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3322,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 215,
									"character": 19
								}
							]
						},
						{
							"id": 3315,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3316,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference was created locally."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 194,
									"character": 16
								}
							]
						},
						{
							"id": 3329,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3330,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 248,
									"character": 14
								}
							]
						},
						{
							"id": 3311,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3312,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 180,
									"character": 12
								}
							]
						},
						{
							"id": 3362,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3363,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3364,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3365,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 3345,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3346,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3347,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3348,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 3349,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3350,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3351,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3352,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 3353,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3354,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 3358,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3359,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3360,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3361,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 3355,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3356,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3357,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 3319,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3320,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 208,
									"character": 18
								}
							]
						},
						{
							"id": 3313,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3314,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 187,
									"character": 15
								}
							]
						},
						{
							"id": 3309,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3310,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 173,
									"character": 13
								}
							]
						},
						{
							"id": 3317,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3318,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 201,
									"character": 13
								}
							]
						},
						{
							"id": 3325,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3326,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "typeParameter",
										"name": "V",
										"default": {
											"type": "intrinsic",
											"name": "any"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 234,
									"character": 14
								}
							]
						},
						{
							"id": 3327,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3328,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "typeParameter",
											"name": "V",
											"default": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 241,
									"character": 15
								}
							]
						},
						{
							"id": 3282,
							"name": "Events",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this instance could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nreference.on(ModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"children": [
								{
									"id": 3284,
									"name": "CLEARED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 87,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceClearedEvent.NAME"
								},
								{
									"id": 3285,
									"name": "DISPOSED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 88,
											"character": 12
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceDisposedEvent.NAME"
								},
								{
									"id": 3283,
									"name": "SET",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 86,
											"character": 7
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceSetEvent.NAME"
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										3284,
										3285,
										3283
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 85,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							}
						},
						{
							"id": 3286,
							"name": "Types",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "All the types of references available on the various [[RealTimeElement]]s."
							},
							"children": [
								{
									"id": 3290,
									"name": "ELEMENT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 98,
											"character": 11
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "element"
									},
									"defaultValue": "\"element\""
								},
								{
									"id": 3287,
									"name": "INDEX",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 95,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "index"
									},
									"defaultValue": "\"index\""
								},
								{
									"id": 3289,
									"name": "PROPERTY",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 97,
											"character": 12
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "property"
									},
									"defaultValue": "\"property\""
								},
								{
									"id": 3288,
									"name": "RANGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 96,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "range"
									},
									"defaultValue": "\"range\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										3290,
										3287,
										3289,
										3288
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 94,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								3341,
								3366,
								3321,
								3315,
								3329,
								3311,
								3362,
								3345,
								3349,
								3353,
								3358,
								3355,
								3319,
								3313,
								3309,
								3317,
								3325,
								3327
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								3282,
								3286
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/ModelReference.ts",
							"line": 73,
							"character": 36
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 426,
									"name": "IConvergenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 3513,
							"name": "IndexReference"
						},
						{
							"type": "reference",
							"id": 3620,
							"name": "RangeReference"
						},
						{
							"type": "reference",
							"id": 3724,
							"name": "PropertyReference"
						},
						{
							"type": "reference",
							"id": 5617,
							"name": "ElementReference"
						}
					]
				},
				{
					"id": 4577,
					"name": "ModelResult",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a single read-only result entry from a model query. Includes the relevant\ndata and metadata for a particular model."
					},
					"children": [
						{
							"id": 4578,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 4588,
									"name": "new ModelResult",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 4589,
											"name": "data",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 4590,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"indexSignature": [
														{
															"id": 4591,
															"name": "__index",
															"kind": 8192,
															"kindString": "Index signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 4592,
																	"name": "key",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "any"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/query/ModelResult.ts",
															"line": 26,
															"character": 25
														}
													]
												}
											}
										},
										{
											"id": 4593,
											"name": "collectionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 4594,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 4595,
											"name": "created",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"type": {
												"type": "reference",
												"name": "Date"
											}
										},
										{
											"id": 4596,
											"name": "modified",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"type": {
												"type": "reference",
												"name": "Date"
											}
										},
										{
											"id": 4597,
											"name": "version",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 4577,
										"name": "ModelResult"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/query/ModelResult.ts",
									"line": 21,
									"character": 26
								}
							]
						},
						{
							"id": 4583,
							"name": "collectionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model's collection ID"
							},
							"sources": [
								{
									"fileName": "src/main/model/query/ModelResult.ts",
									"line": 31,
									"character": 32
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4585,
							"name": "created",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The creation timestamp of the model"
							},
							"sources": [
								{
									"fileName": "src/main/model/query/ModelResult.ts",
									"line": 41,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 4579,
							"name": "data",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The contents of the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/query/ModelResult.ts",
									"line": 26,
									"character": 24
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 4580,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"indexSignature": [
										{
											"id": 4581,
											"name": "__index",
											"kind": 8192,
											"kindString": "Index signature",
											"flags": {
												"isExported": true
											},
											"parameters": [
												{
													"id": 4582,
													"name": "key",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isExported": true
													},
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/main/model/query/ModelResult.ts",
											"line": 26,
											"character": 25
										}
									]
								}
							}
						},
						{
							"id": 4584,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model's unique ID"
							},
							"sources": [
								{
									"fileName": "src/main/model/query/ModelResult.ts",
									"line": 36,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4586,
							"name": "modified",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The timestamp at which the model's data was last modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/query/ModelResult.ts",
									"line": 46,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							}
						},
						{
							"id": 4587,
							"name": "version",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model's current version"
							},
							"sources": [
								{
									"fileName": "src/main/model/query/ModelResult.ts",
									"line": 51,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								4578
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4583,
								4585,
								4579,
								4584,
								4586,
								4587
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/query/ModelResult.ts",
							"line": 21,
							"character": 24
						}
					]
				},
				{
					"id": 6981,
					"name": "ModelService",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This is the main entry point in Convergence for working with\n[real time data models](https://docs.convergence.io/guide/models/overview.html).\n[[RealTimeModel]]s can be created, opened, deleted, and managed from the [[ModelService]].",
						"text": "See [[IModelServiceEvents]] for the events that may be emitted on this model.\n"
					},
					"children": [
						{
							"id": 6982,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this model could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nmodelService.on(ModelService.Events.OFFLINE_MODEL_DELETED, (e) => {\n  // ...\n})\n```\n\nSee [[IModelServiceEvents]] for information on each event.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 272,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 6966,
								"name": "IModelServiceEvents"
							},
							"defaultValue": "ModelServiceEventConstants"
						},
						{
							"id": 7188,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7189,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 7190,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7191,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 7025,
							"name": "create",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7026,
									"name": "create",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates a new model according to the options provided.  If a model with\nthe given ID already exists, this will return a rejected Promise.",
										"returns": "\n  A Promise that is resolved with the id of the created model.\n"
									},
									"parameters": [
										{
											"id": 7027,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  A options object specifying how the model is to be created.\n"
											},
											"type": {
												"type": "reference",
												"id": 5152,
												"name": "ICreateModelOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 529,
									"character": 15
								}
							]
						},
						{
							"id": 7213,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7214,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 7048,
							"name": "getOfflineModelMetaData",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7049,
									"name": "getOfflineModelMetaData",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the meta data for all models currently stored offline.",
										"returns": "The list of currently available offline models.\n",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 7426,
													"name": "IModelMetaData"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 734,
									"character": 38
								}
							]
						},
						{
							"id": 7046,
							"name": "getOfflineSubscriptions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7047,
									"name": "getOfflineSubscriptions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the list of model ids that are are currently subscribed to, to be\navailable offline.",
										"returns": "The list of currently subscribed models.\n",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 721,
									"character": 38
								}
							]
						},
						{
							"id": 7031,
							"name": "history",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7032,
									"name": "history",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Opens an existing model, by id, in [history mode](https://docs.convergence.io/guide/models/history.html).",
										"returns": "\n  A Promise resolved with the [[HistoricalModel]] when opened.\n"
									},
									"parameters": [
										{
											"id": 7033,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to open in history mode.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 6134,
												"name": "HistoricalModel"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 614,
									"character": 16
								}
							]
						},
						{
							"id": 7013,
							"name": "isOpen",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7014,
									"name": "isOpen",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if a model with the specified id is opened.",
										"returns": "\n  True if the model is open, false otherwise.\n"
									},
									"parameters": [
										{
											"id": 7015,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to check.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 451,
									"character": 15
								}
							]
						},
						{
							"id": 7016,
							"name": "isOpening",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7017,
									"name": "isOpening",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if a model with the specified ID is currently in the process\nof being opened.",
										"returns": "\n  True if the model is opening, false otherwise.\n"
									},
									"parameters": [
										{
											"id": 7018,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to check.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 466,
									"character": 18
								}
							]
						},
						{
							"id": 7008,
							"name": "isResyncing",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7009,
									"name": "isResyncing",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 400,
									"character": 20
								}
							]
						},
						{
							"id": 7209,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7210,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 7211,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7212,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 7192,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7193,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 7194,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7195,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 7196,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7197,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 7198,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7199,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 7019,
							"name": "open",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7020,
									"name": "open",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Opens an existing model with a known model id. A model with the specified\nid must already exist in the system.",
										"text": "*Don't forget to [[RealTimeModel.close]] the model when you're done with it\nto avoid memory leaks!*\n",
										"returns": "\n  A promise that is resolved with the specified model, once open.\n"
									},
									"parameters": [
										{
											"id": 7021,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to open.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 484,
									"character": 13
								}
							]
						},
						{
							"id": 7022,
							"name": "openAutoCreate",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7023,
									"name": "openAutoCreate",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Opens a model, creating it if needed. If the model already exists, it will\nbe opened. If the model does not exist it will be created first, and then\nopened.",
										"text": "[See here](https://docs.convergence.io/guide/models/model-service.html#note-about-race-conditions)\nfor more context about race conditions this alleviates.\n",
										"returns": "\n  A Promise resolved with the RealTimeModel, once opened.\n"
									},
									"parameters": [
										{
											"id": 7024,
											"name": "options",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The options that define how to open and / or create the model.\n"
											},
											"type": {
												"type": "reference",
												"id": 6942,
												"name": "IAutoCreateModelOptions"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 503,
									"character": 23
								}
							]
						},
						{
							"id": 7034,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7035,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the permissions manager for a specific model, by id. The permissions\nmanager will allow the caller to set the model permissions for the\nspecified model.",
										"returns": "\n  A permissions manager for the specified model.\n"
									},
									"parameters": [
										{
											"id": 7036,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of an existing model to get the permissions manager for.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 4629,
										"name": "ModelPermissionManager"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 649,
									"character": 20
								}
							]
						},
						{
							"id": 7010,
							"name": "query",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7011,
									"name": "query",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Searches for models using the model [query syntax](https://docs.convergence.io/guide/models/queries.html).\nOnly `SELECT`s are currently supported.  The grammar is as follows:",
										"text": "```\nSELECT [ * ]\n[ FROM <Collection> ]\n[ WHERE <Condition>* ]\n[ ORDER BY (<Field> [ ASC|DESC ])* ]\n[ LIMIT <MaxRecords> ]\n[ OFFSET <SkipRecords> ]\n```\n",
										"returns": "\n  A promise that will be resolved with the query results.\n"
									},
									"parameters": [
										{
											"id": 7012,
											"name": "query",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The query string to use to look up the model.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 553,
												"typeArguments": [
													{
														"type": "reference",
														"id": 4577,
														"name": "ModelResult"
													}
												],
												"name": "PagedData"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 423,
									"character": 14
								}
							]
						},
						{
							"id": 7028,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7029,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes an existing model by id.",
										"returns": "\n  A Promise that is resolved when the model is successfully removed.\n"
									},
									"parameters": [
										{
											"id": 7030,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The id of the model to remove.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 550,
									"character": 21
								}
							]
						},
						{
							"id": 7200,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7201,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 7205,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7206,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 7207,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 7208,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 7202,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7203,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 7204,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 7006,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7007,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "\n The ConvergenceSession attached to this domain.\n"
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 396,
									"character": 16
								}
							]
						},
						{
							"id": 7043,
							"name": "setOfflineSubscription",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7044,
									"name": "setOfflineSubscription",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the total set of models that will be proactively downloaded and\nmade available offline. Any models currently subscribed to that do\nnot appear in the supplied list of ids will be unsubscribe and\nimmediately removed from the offline store.",
										"returns": "\n  An empty Promise that will be resolved upon successful\n  subscription.\n",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"parameters": [
										{
											"id": 7045,
											"name": "modelIds",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 709,
									"character": 31
								}
							]
						},
						{
							"id": 7037,
							"name": "subscribeOffline",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7038,
									"name": "subscribeOffline",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a model or a list of models to the set of models that will be\nproactively downloaded and made available offline. Note that duplicates\nwill simply be ignored.",
										"returns": "\n  An empty Promise that will be resolved upon successful\n  subscription.\n",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"parameters": [
										{
											"id": 7039,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  A string or string array containing the unique ids of the models to\n  be added to the current offline subscription list.\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 669,
									"character": 25
								}
							]
						},
						{
							"id": 7040,
							"name": "unsubscribeOffline",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 7041,
									"name": "unsubscribeOffline",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a model or a list of models to the set of models that will be\nproactively downloaded and made available offline. If a model is\ncurrently stored offline, and it is unsubscribed it will be purged\nfrom the offline store.",
										"returns": "\n  An empty Promise that will be resolved upon successful\n  unsubscription.\n",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"parameters": [
										{
											"id": 7042,
											"name": "modelId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  A string or string array containing the unique ids of the models to\n  be removed from the current offline subscription list.\n"
											},
											"type": {
												"type": "union",
												"types": [
													{
														"type": "intrinsic",
														"name": "string"
													},
													{
														"type": "array",
														"elementType": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												]
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 690,
									"character": 27
								}
							]
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6982
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								7188,
								7025,
								7213,
								7048,
								7046,
								7031,
								7013,
								7016,
								7008,
								7209,
								7192,
								7196,
								7019,
								7022,
								7034,
								7010,
								7028,
								7200,
								7205,
								7202,
								7006,
								7043,
								7037,
								7040
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/ModelService.ts",
							"line": 258,
							"character": 25
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 426,
									"name": "IConvergenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					]
				},
				{
					"id": 4077,
					"name": "NumberDeltaEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when arithmetic is performed on a [[RealTimeNumber]].",
						"text": "When the value of a [[RealTimeNumber]] is directly set\n(with e.g. `rtNumber.value(23)`), a [[NumberSetValueEvent]] is emitted.\n"
					},
					"children": [
						{
							"id": 4081,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeNumber]] or [[HistoricalNumber]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberDeltaEvent.ts",
									"line": 49,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 2348,
								"name": "ObservableNumber"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4084,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberDeltaEvent.ts",
									"line": 64,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4079,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberDeltaEvent.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "NumberDeltaEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4083,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberDeltaEvent.ts",
									"line": 59,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4082,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberDeltaEvent.ts",
									"line": 54,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4085,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The new value of the number"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberDeltaEvent.ts",
									"line": 69,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4078,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberDeltaEvent.ts",
									"line": 28,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "delta"
							},
							"defaultValue": "\"delta\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4081,
								4084,
								4079,
								4083,
								4082,
								4085,
								4078
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/NumberDeltaEvent.ts",
							"line": 27,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4063,
					"name": "NumberSetValueEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the [[RealTimeNumber.value]] of a [[RealTimeNumber]] is set."
					},
					"children": [
						{
							"id": 4067,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeNumber]] or [[HistoricalNumber]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberSetValueEvent.ts",
									"line": 45,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 2348,
								"name": "ObservableNumber"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4070,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberSetValueEvent.ts",
									"line": 60,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4065,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberSetValueEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "NumberSetValueEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4069,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberSetValueEvent.ts",
									"line": 55,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4068,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberSetValueEvent.ts",
									"line": 50,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4064,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/NumberSetValueEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "value"
							},
							"defaultValue": "\"value\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4067,
								4070,
								4065,
								4069,
								4068,
								4064
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/NumberSetValueEvent.ts",
							"line": 24,
							"character": 32
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 3983,
					"name": "ObjectRemoveEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a key-value pair is removed from a [[RealTimeObject]]."
					},
					"children": [
						{
							"id": 3987,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the [[RealTimeObject]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
									"line": 48,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1324,
								"name": "ObservableObject"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 3991,
							"name": "key",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The key of the key-value pair that was removed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
									"line": 68,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 3990,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
									"line": 63,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 3985,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ObjectRemoveEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 3992,
							"name": "oldValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the value of the key-value-pair that was removed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
									"line": 73,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 3989,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
									"line": 58,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 3988,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
									"line": 53,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 3984,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "remove"
							},
							"defaultValue": "\"remove\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3987,
								3991,
								3990,
								3985,
								3992,
								3989,
								3988,
								3984
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ObjectRemoveEvent.ts",
							"line": 25,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4001,
					"name": "ObjectSetEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a key-value pair is set on a [[RealTimeObject]]."
					},
					"children": [
						{
							"id": 4005,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the [[RealTimeObject]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 49,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1324,
								"name": "ObservableObject"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4009,
							"name": "key",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The new key that was added."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 69,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4008,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 64,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4003,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ObjectSetEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4011,
							"name": "oldValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The detached [[RealTimeElement]] that used to be `key`'s value, or [[RealTimeUndefined]]\nif this is a new key-value pair."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 80,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 4007,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 59,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4006,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 54,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4010,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the value that was added."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 74,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 4002,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "set"
							},
							"defaultValue": "\"set\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4005,
								4009,
								4008,
								4003,
								4011,
								4007,
								4006,
								4010,
								4002
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ObjectSetEvent.ts",
							"line": 25,
							"character": 27
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4021,
					"name": "ObjectSetValueEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the entire [[RealTimeObject.value]] of a [[RealTimeObject]] is set,\nmeaning its entire contents were replaced, or set initially."
					},
					"children": [
						{
							"id": 4025,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A read-only representation of the [[RealTimeObject]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetValueEvent.ts",
									"line": 46,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 1324,
								"name": "ObservableObject"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4028,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetValueEvent.ts",
									"line": 61,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4023,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetValueEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ObjectSetValueEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4027,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetValueEvent.ts",
									"line": 56,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4026,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetValueEvent.ts",
									"line": 51,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4022,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ObjectSetValueEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "value"
							},
							"defaultValue": "\"value\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4025,
								4028,
								4023,
								4027,
								4026,
								4022
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ObjectSetValueEvent.ts",
							"line": 25,
							"character": 32
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4506,
					"name": "OfflineModelDeletedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] is subscribed to for offline availability\nhas been deleted.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4510,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the model that was deleted."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelDeletedEvent.ts",
									"line": 42,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4508,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelDeletedEvent.ts",
									"line": 32,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelDeletedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4507,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelDeletedEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_deleted"
							},
							"defaultValue": "\"offline_model_deleted\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4510,
								4508,
								4507
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelDeletedEvent.ts",
							"line": 26,
							"character": 37
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4466,
					"name": "OfflineModelDownloadedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] is subscribed to for offline availability\nand a new version has been downloaded.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4470,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the model that was updated."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelDownloadedEvent.ts",
									"line": 42,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4468,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelDownloadedEvent.ts",
									"line": 32,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelDownloadedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4472,
							"name": "permissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelDownloadedEvent.ts",
									"line": 44,
									"character": 31
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "reference",
										"id": 4219,
										"name": "ModelPermissions"
									},
									{
										"type": "intrinsic",
										"name": "null"
									}
								]
							}
						},
						{
							"id": 4471,
							"name": "version",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelDownloadedEvent.ts",
									"line": 43,
									"character": 27
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "intrinsic",
										"name": "number"
									},
									{
										"type": "intrinsic",
										"name": "null"
									}
								]
							}
						},
						{
							"id": 4467,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelDownloadedEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_downloaded"
							},
							"defaultValue": "\"offline_model_downloaded\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4470,
								4468,
								4472,
								4471,
								4467
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelDownloadedEvent.ts",
							"line": 26,
							"character": 40
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4514,
					"name": "OfflineModelPermissionsRevokedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] is subscribed to for offline availability\nand the user no longer has permissions to read the model.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4518,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the model from which permissions were revoked."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelPermissionsRevokedEvent.ts",
									"line": 42,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4516,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelPermissionsRevokedEvent.ts",
									"line": 32,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelPermissionsRevokedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4515,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelPermissionsRevokedEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_permissions_revoked"
							},
							"defaultValue": "\"offline_model_permissions_revoked\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4518,
								4516,
								4515
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelPermissionsRevokedEvent.ts",
							"line": 26,
							"character": 48
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4490,
					"name": "OfflineModelStatusChangedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] is subscribed to for offline availability\nand a new version has been downloaded.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4496,
							"name": "available",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "If he model is available locally."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelStatusChangedEvent.ts",
									"line": 49,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4494,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the model that was updated."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelStatusChangedEvent.ts",
									"line": 41,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4498,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "If this model was created locally, and has not yet been pushed to\nthe server."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelStatusChangedEvent.ts",
									"line": 58,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4492,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelStatusChangedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelStatusChangedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4495,
							"name": "subscribed",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "If the model is currently subscribed to for proactive downloading."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelStatusChangedEvent.ts",
									"line": 45,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4497,
							"name": "synchronized",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "If is fully stored on the server."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelStatusChangedEvent.ts",
									"line": 53,
									"character": 32
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4491,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelStatusChangedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_status_changed"
							},
							"defaultValue": "\"offline_model_status_changed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4496,
								4494,
								4498,
								4492,
								4495,
								4497,
								4491
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelStatusChangedEvent.ts",
							"line": 25,
							"character": 43
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4446,
					"name": "OfflineModelSyncCompletedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a specific model complete it synchronization process.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4450,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the model that completed its sync."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncCompletedEvent.ts",
									"line": 41,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4448,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncCompletedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelSyncCompletedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4447,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncCompletedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_completed"
							},
							"defaultValue": "\"offline_model_sync_completed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4450,
								4448,
								4447
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelSyncCompletedEvent.ts",
							"line": 25,
							"character": 43
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4454,
					"name": "OfflineModelSyncErrorEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when there is an error synchronizing offline changes for\na particular model up to th Convergence Server.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4459,
							"name": "message",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A message describing the error."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncErrorEvent.ts",
									"line": 46,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4460,
							"name": "model",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model the error originated form, if it was resyncing.  This will be\nundefined, if the model was only being deleted. If present it can be\nused to capture the data from the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncErrorEvent.ts",
									"line": 53,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							}
						},
						{
							"id": 4458,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the model that caused the error."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncErrorEvent.ts",
									"line": 42,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4456,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncErrorEvent.ts",
									"line": 32,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelSyncErrorEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4455,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncErrorEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_error"
							},
							"defaultValue": "\"offline_model_sync_error\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4459,
								4460,
								4458,
								4456,
								4455
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelSyncErrorEvent.ts",
							"line": 26,
							"character": 39
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4438,
					"name": "OfflineModelSyncStartedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a specific model starts it synchronization process.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4442,
							"name": "modelId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the model that started to sync."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncStartedEvent.ts",
									"line": 41,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4440,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncStartedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelSyncStartedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4439,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelSyncStartedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_started"
							},
							"defaultValue": "\"offline_model_sync_started\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4442,
								4440,
								4439
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelSyncStartedEvent.ts",
							"line": 25,
							"character": 41
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4478,
					"name": "OfflineModelUpdatedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] is subscribed to for offline availability\nand a new version has been downloaded.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4482,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The id of the model that was updated."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelUpdatedEvent.ts",
									"line": 42,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4480,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelUpdatedEvent.ts",
									"line": 32,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelUpdatedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4484,
							"name": "permissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelUpdatedEvent.ts",
									"line": 44,
									"character": 31
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "reference",
										"id": 4219,
										"name": "ModelPermissions"
									},
									{
										"type": "intrinsic",
										"name": "null"
									}
								]
							}
						},
						{
							"id": 4483,
							"name": "version",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelUpdatedEvent.ts",
									"line": 43,
									"character": 27
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "intrinsic",
										"name": "number"
									},
									{
										"type": "intrinsic",
										"name": "null"
									}
								]
							}
						},
						{
							"id": 4479,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelUpdatedEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_updated"
							},
							"defaultValue": "\"offline_model_updated\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4482,
								4480,
								4484,
								4483,
								4479
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelUpdatedEvent.ts",
							"line": 26,
							"character": 37
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4381,
					"name": "OfflineModelsDownloadStartedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a change to the subscription for offline models changes and\nthe change results in new models needing to be downloaded.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4385,
							"name": "modelsToDownload",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of models left to download."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStartedEvent.ts",
									"line": 41,
									"character": 36
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4383,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStartedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelsDownloadStartedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4382,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStartedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_started"
							},
							"defaultValue": "\"offline_models_download_started\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4385,
								4383,
								4382
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelsDownloadStartedEvent.ts",
							"line": 25,
							"character": 46
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4389,
					"name": "OfflineModelsDownloadStatusChangedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the number of models needing to be downloaded changes either\nbecause the subscriptions changed or because a model downloaded.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4393,
							"name": "modelsToDownload",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of models left to download."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStatusChangedEvent.ts",
									"line": 41,
									"character": 36
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4391,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStatusChangedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelsDownloadStatusChangedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4394,
							"name": "trigger",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Indicates what triggered the change to the download status."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStatusChangedEvent.ts",
									"line": 45,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 4398,
								"name": "OfflineModelDownloadStatusChangeTrigger"
							}
						},
						{
							"id": 4390,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStatusChangedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_status_changed"
							},
							"defaultValue": "\"offline_models_download_status_changed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4393,
								4391,
								4394,
								4390
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelsDownloadStatusChangedEvent.ts",
							"line": 25,
							"character": 52
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4400,
					"name": "OfflineModelsDownloadStoppedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a change to the subscription for offline models changes and\nthe change results in new models needing to be downloaded.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4402,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStoppedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelsDownloadStoppedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4401,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsDownloadStoppedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_stopped"
							},
							"defaultValue": "\"offline_models_download_stopped\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4402,
								4401
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelsDownloadStoppedEvent.ts",
							"line": 25,
							"character": 46
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4428,
					"name": "OfflineModelsSyncAbortedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the synchronizing of offline changes for\nmodels is aborted.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4433,
							"name": "code",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A machine readable code."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncAbortedEvent.ts",
									"line": 46,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4430,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncAbortedEvent.ts",
									"line": 32,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelsSyncAbortedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4432,
							"name": "reason",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The reason the process was aborted."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncAbortedEvent.ts",
									"line": 42,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4429,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncAbortedEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_aborted"
							},
							"defaultValue": "\"offline_models_sync_aborted\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4433,
								4430,
								4432,
								4429
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelsSyncAbortedEvent.ts",
							"line": 26,
							"character": 42
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4422,
					"name": "OfflineModelsSyncCompletedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when local offline changes have successfully synchronized\nwith the Convergence Server.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4424,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncCompletedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelsSyncCompletedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4423,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncCompletedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_completed"
							},
							"defaultValue": "\"offline_models_sync_completed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4424,
								4423
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelsSyncCompletedEvent.ts",
							"line": 25,
							"character": 44
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4414,
					"name": "OfflineModelsSyncProgressEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when as offline synchronization progresses. It informs the\nconsumer as to how many models still need to sync to the server.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4418,
							"name": "modelsToSync",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of models that must sync up to the server."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncProgressEvent.ts",
									"line": 41,
									"character": 32
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4416,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncProgressEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelsSyncProgressEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4415,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncProgressEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_progress"
							},
							"defaultValue": "\"offline_models_sync_progress\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4418,
								4416,
								4415
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelsSyncProgressEvent.ts",
							"line": 25,
							"character": 43
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4406,
					"name": "OfflineModelsSyncStartedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when local offline changes have started to sync up to the\nConvergence Server.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4410,
							"name": "modelsToSync",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The number of models that must sync up to the server."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncStartedEvent.ts",
									"line": 41,
									"character": 32
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4408,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncStartedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "OfflineModelsSyncStartedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4407,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/OfflineModelsSyncStartedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_started"
							},
							"defaultValue": "\"offline_models_sync_started\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4410,
								4408,
								4407
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelsSyncStartedEvent.ts",
							"line": 25,
							"character": 42
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 3724,
					"name": "PropertyReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents one or more properties in a [[RealTimeObject]] that must be adjusted while\nthe data is changing.  See the\n[developer guide](https://docs.convergence.io/guide/models/references/realtimeobject.html)\nfor some examples."
					},
					"children": [
						{
							"id": 3778,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3779,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3780,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3781,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 3803,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3804,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 3758,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3759,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3321,
										"name": "ModelReference.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 215,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3321,
								"name": "ModelReference.isDisposed"
							}
						},
						{
							"id": 3752,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3753,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference was created locally."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3315,
										"name": "ModelReference.isLocal"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 194,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3315,
								"name": "ModelReference.isLocal"
							}
						},
						{
							"id": 3766,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3767,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3329,
										"name": "ModelReference.isSet"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 248,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3329,
								"name": "ModelReference.isSet"
							}
						},
						{
							"id": 3748,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3749,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3311,
										"name": "ModelReference.key"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 180,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3311,
								"name": "ModelReference.key"
							}
						},
						{
							"id": 3799,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3800,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3801,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3802,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 3782,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3783,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3784,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3785,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 3786,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3787,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3788,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3789,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 3790,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3791,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 3795,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3796,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3797,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3798,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 3792,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3793,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3794,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 3756,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3757,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3319,
										"name": "ModelReference.sessionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 208,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3319,
								"name": "ModelReference.sessionId"
							}
						},
						{
							"id": 3750,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3751,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3313,
										"name": "ModelReference.source"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 187,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3313,
								"name": "ModelReference.source"
							}
						},
						{
							"id": 3746,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3747,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3309,
										"name": "ModelReference.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 173,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3309,
								"name": "ModelReference.type"
							}
						},
						{
							"id": 3754,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3755,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3317,
										"name": "ModelReference.user"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 201,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3317,
								"name": "ModelReference.user"
							}
						},
						{
							"id": 3762,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3763,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3325,
										"name": "ModelReference.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 234,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3325,
								"name": "ModelReference.value"
							}
						},
						{
							"id": 3764,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3765,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "string"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3327,
										"name": "ModelReference.values"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3327,
								"name": "ModelReference.values"
							}
						},
						{
							"id": 3736,
							"name": "Events",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this instance could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nreference.on(ModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"children": [
								{
									"id": 3738,
									"name": "CLEARED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 87,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceClearedEvent.NAME"
								},
								{
									"id": 3739,
									"name": "DISPOSED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 88,
											"character": 12
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceDisposedEvent.NAME"
								},
								{
									"id": 3737,
									"name": "SET",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 86,
											"character": 7
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceSetEvent.NAME"
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										3738,
										3739,
										3737
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 85,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3282,
								"name": "ModelReference.Events"
							}
						},
						{
							"id": 3740,
							"name": "Types",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "All the types of references available on the various [[RealTimeElement]]s."
							},
							"children": [
								{
									"id": 3744,
									"name": "ELEMENT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 98,
											"character": 11
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "element"
									},
									"defaultValue": "\"element\""
								},
								{
									"id": 3741,
									"name": "INDEX",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 95,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "index"
									},
									"defaultValue": "\"index\""
								},
								{
									"id": 3743,
									"name": "PROPERTY",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 97,
											"character": 12
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "property"
									},
									"defaultValue": "\"property\""
								},
								{
									"id": 3742,
									"name": "RANGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 96,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "range"
									},
									"defaultValue": "\"range\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										3744,
										3741,
										3743,
										3742
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 94,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3286,
								"name": "ModelReference.Types"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								3778,
								3803,
								3758,
								3752,
								3766,
								3748,
								3799,
								3782,
								3786,
								3790,
								3795,
								3792,
								3756,
								3750,
								3746,
								3754,
								3762,
								3764
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								3736,
								3740
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/PropertyReference.ts",
							"line": 28,
							"character": 30
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3280,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "string"
								}
							],
							"name": "ModelReference"
						}
					]
				},
				{
					"id": 3620,
					"name": "RangeReference",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a range of text in a [[RealTimeString]] that must be adjusted while\nthe data is changing.  See the\n[developer guide](https://docs.convergence.io/guide/models/references/realtimestring.html)\nfor some examples."
					},
					"children": [
						{
							"id": 3688,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3689,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3690,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3691,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 3713,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3714,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 3668,
							"name": "isDisposed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3669,
									"name": "isDisposed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference has already been disposed (cleaned up)."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3321,
										"name": "ModelReference.isDisposed"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 215,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3321,
								"name": "ModelReference.isDisposed"
							}
						},
						{
							"id": 3662,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3663,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this reference was created locally."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3315,
										"name": "ModelReference.isLocal"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 194,
									"character": 16
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3315,
								"name": "ModelReference.isLocal"
							}
						},
						{
							"id": 3676,
							"name": "isSet",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3677,
									"name": "isSet",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value is currenly set on the reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3329,
										"name": "ModelReference.isSet"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 248,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3329,
								"name": "ModelReference.isSet"
							}
						},
						{
							"id": 3658,
							"name": "key",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3659,
									"name": "key",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the unique key corresponding to this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3311,
										"name": "ModelReference.key"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 180,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3311,
								"name": "ModelReference.key"
							}
						},
						{
							"id": 3709,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3710,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3711,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3712,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 3692,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3693,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3694,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3695,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 3696,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3697,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3698,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3699,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 3700,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3701,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 3705,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3706,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3707,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3708,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 3702,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3703,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3704,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 3666,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3667,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the session ID of the user session that created this reference."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3319,
										"name": "ModelReference.sessionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 208,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3319,
								"name": "ModelReference.sessionId"
							}
						},
						{
							"id": 3660,
							"name": "source",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3661,
									"name": "source",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the element or model on which this reference was created."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 5521,
												"name": "RealTimeElement"
											},
											{
												"type": "reference",
												"id": 5183,
												"name": "RealTimeModel"
											}
										]
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3313,
										"name": "ModelReference.source"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 187,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3313,
								"name": "ModelReference.source"
							}
						},
						{
							"id": 3656,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3657,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string indicating the type of reference this is."
									},
									"type": {
										"type": "reference",
										"id": 1271,
										"name": "ReferenceType"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3309,
										"name": "ModelReference.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 173,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3309,
								"name": "ModelReference.type"
							}
						},
						{
							"id": 3664,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3665,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the user that created this reference."
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3317,
										"name": "ModelReference.user"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 201,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3317,
								"name": "ModelReference.user"
							}
						},
						{
							"id": 3672,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3673,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first value of the underlying reference."
									},
									"type": {
										"type": "reference",
										"id": 3617,
										"name": "IndexRange"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3325,
										"name": "ModelReference.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 234,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3325,
								"name": "ModelReference.value"
							}
						},
						{
							"id": 3674,
							"name": "values",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3675,
									"name": "values",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns all values of the underlying reference."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3617,
											"name": "IndexRange"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 3327,
										"name": "ModelReference.values"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 3327,
								"name": "ModelReference.values"
							}
						},
						{
							"id": 3646,
							"name": "Events",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this instance could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nreference.on(ModelReference.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"children": [
								{
									"id": 3648,
									"name": "CLEARED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 87,
											"character": 11
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceClearedEvent.NAME"
								},
								{
									"id": 3649,
									"name": "DISPOSED",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 88,
											"character": 12
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceDisposedEvent.NAME"
								},
								{
									"id": 3647,
									"name": "SET",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 86,
											"character": 7
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"defaultValue": "ReferenceSetEvent.NAME"
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										3648,
										3649,
										3647
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 85,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3282,
								"name": "ModelReference.Events"
							}
						},
						{
							"id": 3650,
							"name": "Types",
							"kind": 2097152,
							"kindString": "Object literal",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "All the types of references available on the various [[RealTimeElement]]s."
							},
							"children": [
								{
									"id": 3654,
									"name": "ELEMENT",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 98,
											"character": 11
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "element"
									},
									"defaultValue": "\"element\""
								},
								{
									"id": 3651,
									"name": "INDEX",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 95,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "index"
									},
									"defaultValue": "\"index\""
								},
								{
									"id": 3653,
									"name": "PROPERTY",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 97,
											"character": 12
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "property"
									},
									"defaultValue": "\"property\""
								},
								{
									"id": 3652,
									"name": "RANGE",
									"kind": 32,
									"kindString": "Variable",
									"flags": {
										"isExported": true
									},
									"sources": [
										{
											"fileName": "src/main/model/reference/ModelReference.ts",
											"line": 96,
											"character": 9
										}
									],
									"type": {
										"type": "stringLiteral",
										"value": "range"
									},
									"defaultValue": "\"range\""
								}
							],
							"groups": [
								{
									"title": "Variables",
									"kind": 32,
									"children": [
										3654,
										3651,
										3653,
										3652
									]
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 94,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "object"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3286,
								"name": "ModelReference.Types"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								3688,
								3713,
								3668,
								3662,
								3676,
								3658,
								3709,
								3692,
								3696,
								3700,
								3705,
								3702,
								3666,
								3660,
								3656,
								3664,
								3672,
								3674
							]
						},
						{
							"title": "Object literals",
							"kind": 2097152,
							"children": [
								3646,
								3650
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/RangeReference.ts",
							"line": 47,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3280,
							"typeArguments": [
								{
									"type": "reference",
									"id": 3617,
									"name": "IndexRange"
								}
							],
							"name": "ModelReference"
						}
					]
				},
				{
					"id": 1856,
					"name": "RealTimeArray",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A distributed Array. This mimics the native Javascript Array API, but has additional\nfunctionality for e.g. emitting events for remote changes.",
						"text": "See [[RealTimeArrayEvents]] for the events that may be emitted on remote changes\nto this object.\n\nAlso see the [developer guide](https://docs.convergence.io/guide/models/data/real-time-array.html)\nfor more information.\n"
					},
					"children": [
						{
							"id": 1857,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this array could emit to each event's unique name.\nUse this to refer an event name, e.g.",
								"text": "```typescript\nrtArray.on(RealTimeArray.Events.INSERT, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 71,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 1847,
								"name": "RealTimeArrayEvents"
							},
							"defaultValue": "ObservableArrayEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 5523,
								"name": "RealTimeElement.Events"
							}
						},
						{
							"id": 1983,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1984,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1985,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1986,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1615,
										"name": "RealTimeContainerElement.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1614,
								"name": "RealTimeContainerElement.addListener"
							}
						},
						{
							"id": 1932,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1933,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Given a search path, returns the [[RealTimeElement]] at that path, or null if\nno such element exists. Scoped to this array, so the first element in the given\npath should be an array index.",
										"returns": "The [[RealTimeElement]] at the given path, or null if no such element exists\n"
									},
									"parameters": [
										{
											"id": 1934,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the search path for accessing a node within this model's data\n"
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1585,
										"name": "RealTimeContainerElement.elementAt"
									}
								},
								{
									"id": 1935,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1936,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1587,
										"name": "RealTimeContainerElement.elementAt"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 476,
									"character": 18
								},
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 477,
									"character": 18
								},
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 478,
									"character": 18
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1584,
								"name": "RealTimeContainerElement.elementAt"
							}
						},
						{
							"id": 2008,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2009,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1640,
										"name": "RealTimeContainerElement.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1639,
								"name": "RealTimeContainerElement.events"
							}
						},
						{
							"id": 1904,
							"name": "every",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1905,
									"name": "every",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if *every* item in this array passes the provided test function.\nAnalagous to the javascript\n[array.every](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every) method.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nlet allMatched = rtArray.every(rtString => {\n   return rtString.value().startsWith('r');\n})\nconsole.log(allMatched) // false\n\nallMatched = rtArray.every(rtString => {\n   return rtString.length() > 2;\n})\nconsole.log(allMatched) // true\n```\n",
										"returns": "true if every item in the array passes the provided test function\n"
									},
									"parameters": [
										{
											"id": 1906,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a test function returning a truthy value\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 1907,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 1908,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 1909,
																	"name": "element",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 5521,
																		"name": "RealTimeElement"
																	}
																},
																{
																	"id": 1910,
																	"name": "index",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/rt/RealTimeArray.ts",
															"line": 373,
															"character": 24
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 373,
									"character": 14
								}
							]
						},
						{
							"id": 1911,
							"name": "find",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1912,
									"name": "find",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the first item in this array that passes the provided test function.\nAnalagous to the javascript\n[array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) method.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nlet match = rtArray.find(rtString => {\n   return rtString.value().startsWith('g');\n})\nmatch.value() // false\n\nmatch = rtArray.find(rtString => {\n   return rtString.length() < 3;\n})\nconsole.log(match) // undefined\n```\n",
										"returns": "a [[RealTimeElement]] wrapping the first item that passed the provided\ntest function, or `undefined` if there were no matches.\n"
									},
									"parameters": [
										{
											"id": 1913,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a test function returning a truthy value\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 1914,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 1915,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 1916,
																	"name": "element",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 5521,
																		"name": "RealTimeElement"
																	}
																},
																{
																	"id": 1917,
																	"name": "index",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/rt/RealTimeArray.ts",
															"line": 402,
															"character": 23
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 402,
									"character": 13
								}
							]
						},
						{
							"id": 1918,
							"name": "findIndex",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1919,
									"name": "findIndex",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the index of the first item in this array that passes the provided test\nfunction. Analagous to the javascript\n[array.findIndex](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex)\nmethod.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nlet foundIndex = rtArray.findIndex(rtString => {\n   return rtString.value().startsWith('g');\n})\nconsole.log(foundIndex) // 1\n\nfoundIndex = rtArray.find(rtString => {\n   return rtString.length() < 3;\n})\nconsole.log(foundIndex) // -1\n```\n",
										"returns": "the index of the first item in this array which passes the given\ntest function, or `-1` if there were no matches.\n"
									},
									"parameters": [
										{
											"id": 1920,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a test function returning a truthy value\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 1921,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 1922,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 1923,
																	"name": "element",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 5521,
																		"name": "RealTimeElement"
																	}
																},
																{
																	"id": 1924,
																	"name": "index",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/rt/RealTimeArray.ts",
															"line": 438,
															"character": 28
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 438,
									"character": 18
								}
							]
						},
						{
							"id": 1925,
							"name": "forEach",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1926,
									"name": "forEach",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Synchronously calls the provided callback function for each item in this array.\nAnalagous to the javascript\n[array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)\nmethod.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nrtArray.forEach(rtString => {\n   console.log(rtString.value(), 'has', rtString.length(), 'characters')\n})\n// red has 3 characters\n// green has 5 characters\n```\n"
									},
									"parameters": [
										{
											"id": 1927,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a function to be called for each item in this array\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 1928,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 1929,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 1930,
																	"name": "value",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 5521,
																		"name": "RealTimeElement"
																	}
																},
																{
																	"id": 1931,
																	"name": "index",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/rt/RealTimeArray.ts",
															"line": 461,
															"character": 26
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 461,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1665,
								"name": "ObservableArray.forEach"
							}
						},
						{
							"id": 1867,
							"name": "get",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1868,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the [[RealTimeElement]] at the given index. Analogous to the array accessor\nsyntax in javascript, e.g. `users[0]` would be the same as `rtUsers.get(0)`."
									},
									"parameters": [
										{
											"id": 1869,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the 0-based index of the desired element.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1661,
										"name": "ObservableArray.get"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 123,
									"character": 12
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1660,
								"name": "ObservableArray.get"
							}
						},
						{
							"id": 1947,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1948,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1947,
										"name": "RealTimeElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1593,
										"name": "RealTimeContainerElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1947,
								"name": "RealTimeElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1592,
								"name": "RealTimeContainerElement.id"
							}
						},
						{
							"id": 1874,
							"name": "insert",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1875,
									"name": "insert",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Inserts the given value at the given index.  Analagous to the Javascript\n`[splice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)` function,\nbut without the second parameter. Any existing subsequent items in the array\nwill be shifted to the right.",
										"text": "Values should be javascript primitives supported by Convergence, NOT\n`RealTimeElements`.\n\n```typescript\nrtArray.value() // ['red', 'green']\nlet rtString = rtArray.insert(1, 'yellow')\nrtArray.value() // ['red', 'yellow', 'green']\nrtString.value() // 'yellow'\n```\n\nOn a successful `insert`, an [[ArrayInsertEvent]] will be emitted to any remote users.\n",
										"returns": "a [[RealTimeElement]] wrapping the just-inserted `value`\n"
									},
									"parameters": [
										{
											"id": 1876,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the index at which to insert the new value"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 1877,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value, which must be a data type supported by Convergence\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 178,
									"character": 15
								}
							]
						},
						{
							"id": 1961,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1962,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1961,
										"name": "RealTimeElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1605,
										"name": "RealTimeContainerElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1961,
								"name": "RealTimeElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1604,
								"name": "RealTimeContainerElement.isAttached"
							}
						},
						{
							"id": 1959,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1960,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1959,
										"name": "RealTimeElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1603,
										"name": "RealTimeContainerElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1959,
								"name": "RealTimeElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1602,
								"name": "RealTimeContainerElement.isDetached"
							}
						},
						{
							"id": 1895,
							"name": "length",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1896,
									"name": "length",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the total count of items in this array.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nrtArray.length() // 2\n```\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1664,
										"name": "ObservableArray.length"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 323,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1663,
								"name": "ObservableArray.length"
							}
						},
						{
							"id": 1945,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1946,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1945,
										"name": "RealTimeElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1609,
										"name": "RealTimeContainerElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1945,
								"name": "RealTimeElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1608,
								"name": "RealTimeContainerElement.model"
							}
						},
						{
							"id": 2004,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2005,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2006,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2007,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1636,
										"name": "RealTimeContainerElement.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1635,
								"name": "RealTimeContainerElement.off"
							}
						},
						{
							"id": 1987,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1988,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1989,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1990,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1619,
										"name": "RealTimeContainerElement.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1618,
								"name": "RealTimeContainerElement.on"
							}
						},
						{
							"id": 1991,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1992,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1993,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1994,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1623,
										"name": "RealTimeContainerElement.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1622,
								"name": "RealTimeContainerElement.once"
							}
						},
						{
							"id": 1953,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1954,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"name": "RealTimeContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1953,
										"name": "RealTimeElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1601,
										"name": "RealTimeContainerElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 189,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1953,
								"name": "RealTimeElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1600,
								"name": "RealTimeContainerElement.parent"
							}
						},
						{
							"id": 1951,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1952,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data.\nFor instance, with model data",
										"text": "```json\n{\n  user: {\n    age: 32\n  }\n}\n```\n\nThe [[RealTimeNumber]] representing `32` would have path `['user', 'age']`.\n"
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1951,
										"name": "RealTimeElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1597,
										"name": "RealTimeContainerElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 180,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1951,
								"name": "RealTimeElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1596,
								"name": "RealTimeContainerElement.path"
							}
						},
						{
							"id": 1888,
							"name": "pop",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1889,
									"name": "pop",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes and returns the last value in this [[RealTimeArray]].  Analagous to the javascript\n[array.pop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop)\nmethod.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nlet rtString = rtArray.pop()\nrtArray.value() // ['red']\nrtString.value() // 'green'\nrtString.isDetached() // true\n```\n\nOn a successful `pop`, an [[ArrayRemoveEvent]] will be emitted to any remote users.\n",
										"returns": "a `RealTimeElement` wrapping the just-removed value, in detached mode.\n"
									},
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 267,
									"character": 12
								}
							]
						},
						{
							"id": 1885,
							"name": "push",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1886,
									"name": "push",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Appends the given value to this Array.  Analagous to the javascript\n[array.push](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push)\nmethod.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nrtArray.push('yellow')\nrtArray.value() // ['red', 'green', 'yellow']\n```\n\nOn a successful `push`, an [[ArrayInsertEvent]] will be emitted to any remote users.\n",
										"returns": "a `RealTimeElement` wrapping the newly-inserted value.\n"
									},
									"parameters": [
										{
											"id": 1887,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value, which must be a data type supported by Convergence\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 245,
									"character": 13
								}
							]
						},
						{
							"id": 1969,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1970,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 1971,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1972,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1969,
										"name": "RealTimeElement.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1969,
								"name": "RealTimeElement.reference"
							}
						},
						{
							"id": 1973,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1974,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 1975,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1973,
										"name": "RealTimeElement.references"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1973,
								"name": "RealTimeElement.references"
							}
						},
						{
							"id": 1955,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1956,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1955,
										"name": "RealTimeElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1599,
										"name": "RealTimeContainerElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 222,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1955,
								"name": "RealTimeElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1598,
								"name": "RealTimeContainerElement.relativePath"
							}
						},
						{
							"id": 1878,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1879,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the value at the given index.  Any subsequent existing items in the\narray are shifted to the left.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nlet rtString = rtArray.remove(0)\nrtArray.value() // ['green']\nrtString.value() // 'red'\nrtString.isAttached() // false\n```\n\nOn a successful `remove`, an [[ArrayRemoveEvent]] will be emitted to any remote users.\n",
										"returns": "The RealTimeElement that *was* at `index`, in detached mode.\n"
									},
									"parameters": [
										{
											"id": 1880,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The index whose value will be removed.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 201,
									"character": 15
								}
							]
						},
						{
							"id": 1995,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1996,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1627,
										"name": "RealTimeContainerElement.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1626,
								"name": "RealTimeContainerElement.removeAllListeners"
							}
						},
						{
							"id": 1957,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1958,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "A convenience function to delete this element. Throws an error if this is\nthe root object in a model."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1957,
										"name": "RealTimeElement.removeFromParent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 235,
									"character": 25
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1957,
								"name": "RealTimeElement.removeFromParent"
							}
						},
						{
							"id": 2000,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2001,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2002,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2003,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1632,
										"name": "RealTimeContainerElement.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1631,
								"name": "RealTimeContainerElement.removeListener"
							}
						},
						{
							"id": 1997,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1998,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1999,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1629,
										"name": "RealTimeContainerElement.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1628,
								"name": "RealTimeContainerElement.removeListeners"
							}
						},
						{
							"id": 1881,
							"name": "reorder",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1882,
									"name": "reorder",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Moves the value at `fromIndex` to `toIndex` atomically. Other elements in the array\nwill be automatically shifted as needed. `toIndex` must be an existing index.",
										"text": "```typescript\nrtArray.value() // ['red', 'green', 'yellow', 'blue']\nrtArray.reorder(3, 1)\nrtArray.value() // ['red', 'blue', 'yellow', 'green']\nrtArray.reorder(0, 4) // Error: toIndex must be < the length of the array: 4\n```\n\nOn a successful `reorder`, an [[ArrayReorderEvent]] will be emitted to any remote users.\n"
									},
									"parameters": [
										{
											"id": 1883,
											"name": "fromIndex",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the index whose value will be moved"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 1884,
											"name": "toIndex",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the index to which this value will be moved. Must be an index with\n               an existing value.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 223,
									"character": 16
								}
							]
						},
						{
							"id": 1870,
							"name": "set",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1871,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given index to be the given value. An existing value at the index will\nbe replaced.  Note that unlike a javascript array, if you pass in an index\nthat doesn't yet exist, an error will be thrown. Use [[push]] or [[unshift]] to\nadd new values.",
										"text": "Values should be javascript primitives supported by Convergence, NOT\n`RealTimeElements`.\n\n```typescript\nrtArray.value() // ['red', 'green']\nrtArray.set(1, 'yellow')\nrtArray.value() // ['red', 'yellow']\nrtArray.set(2, 'blue') // Error: index must be < the length of the array: 2\n```\n\nOn a successful `set`, an [[ArraySetEvent]] will be emitted to any remote users.\n",
										"returns": "a [[RealTimeElement]] wrapping the newly-set `value`\n"
									},
									"parameters": [
										{
											"id": 1872,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the index at which to place the value"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 1873,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value, which must be a data type supported by Convergence\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 150,
									"character": 12
								}
							]
						},
						{
							"id": 1893,
							"name": "shift",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1894,
									"name": "shift",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes and returns the first value in this [[RealTimeArray]].  Analagous to the javascript\n[array.shift](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift)\nmethod.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nlet rtString = rtArray.shift()\nrtArray.value() // ['green']\nrtString.value() // 'red'\nrtString.isDetached() // true\n```\n\nOn a successful `shift`, an [[ArrayRemoveEvent]] will be emitted to any remote users.\n",
										"returns": "a `RealTimeElement` wrapping the just-removed value, in detached mode.\n"
									},
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 310,
									"character": 14
								}
							]
						},
						{
							"id": 1897,
							"name": "some",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1898,
									"name": "some",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Tests if there exists at least one item which passes the provided test function.\nAnalagous to the javascript\n[array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some) method.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nlet matched = rtArray.some((rtString) => {\n   return rtString.value().startsWith('r');\n})\nconsole.log(matched) // true\n```\n",
										"returns": "true if there was at least item in this array for which the given function\ntest passed.\n"
									},
									"parameters": [
										{
											"id": 1899,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a test function returning a truthy value\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 1900,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 1901,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 1902,
																	"name": "element",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 5521,
																		"name": "RealTimeElement"
																	}
																},
																{
																	"id": 1903,
																	"name": "index",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "boolean"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/rt/RealTimeArray.ts",
															"line": 345,
															"character": 23
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 345,
									"character": 13
								}
							]
						},
						{
							"id": 1967,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1968,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1967,
										"name": "RealTimeElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1611,
										"name": "RealTimeContainerElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1967,
								"name": "RealTimeElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1610,
								"name": "RealTimeContainerElement.toJSON"
							}
						},
						{
							"id": 1949,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1950,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1949,
										"name": "RealTimeElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1595,
										"name": "RealTimeContainerElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1949,
								"name": "RealTimeElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1594,
								"name": "RealTimeContainerElement.type"
							}
						},
						{
							"id": 1890,
							"name": "unshift",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1891,
									"name": "unshift",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Inserts a value to the beginning of this [[RealTimeArray]].  Analagous to the javascript\n[array.unshift](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift)\nmethod.",
										"text": "```typescript\nrtArray.value() // ['red', 'green']\nlet rtString = rtArray.unshift('yellow')\nrtArray.value() // ['yellow', 'red', 'green']\nrtString.value() // 'yellow'\n```\n\nOn a successful `unshift`, an [[ArrayInsertEvent]] will be emitted for any remote users.\n",
										"returns": "a `RealTimeElement` wrapping the just-inserted value\n"
									},
									"parameters": [
										{
											"id": 1892,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeArray.ts",
									"line": 288,
									"character": 16
								}
							]
						},
						{
							"id": 1963,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1964,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "any"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1607,
										"name": "RealTimeContainerElement.value"
									}
								},
								{
									"id": 1965,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 1966,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1963,
								"name": "RealTimeElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1606,
								"name": "RealTimeContainerElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1857
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1983,
								1932,
								2008,
								1904,
								1911,
								1918,
								1925,
								1867,
								1947,
								1874,
								1961,
								1959,
								1895,
								1945,
								2004,
								1987,
								1991,
								1953,
								1951,
								1888,
								1885,
								1969,
								1973,
								1955,
								1878,
								1995,
								1957,
								2000,
								1997,
								1881,
								1870,
								1893,
								1897,
								1967,
								1949,
								1890,
								1963
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeArray.ts",
							"line": 59,
							"character": 26
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5521,
							"typeArguments": [
								{
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "RealTimeElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 1659,
							"name": "ObservableArray"
						},
						{
							"type": "reference",
							"id": 1582,
							"typeArguments": [
								{
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "RealTimeContainerElement"
						}
					]
				},
				{
					"id": 2089,
					"name": "RealTimeBoolean",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A distributed boolean.  This wraps a native javascript `boolean` primitive.",
						"text": "See [[RealTimeBooleanEvents]] for the events that can be emitted on remote\nchanges to this object.\n\nCommon use cases are documented in the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-boolean.html).\n"
					},
					"children": [
						{
							"id": 2090,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this array could emit to each event's unique name.\nUse this to refer an event name, e.g.",
								"text": "```typescript\nrtBoolean.on(RealTimeBoolean.Events.VALUE, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeBoolean.ts",
									"line": 61,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 2084,
								"name": "RealTimeBooleanEvents"
							},
							"defaultValue": "ObservableBooleanEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 5523,
								"name": "RealTimeElement.Events"
							}
						},
						{
							"id": 2143,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2144,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2145,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2146,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2048,
										"name": "ObservableBoolean.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2047,
								"name": "ObservableBoolean.addListener"
							}
						},
						{
							"id": 2168,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2169,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2073,
										"name": "ObservableBoolean.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2072,
								"name": "ObservableBoolean.events"
							}
						},
						{
							"id": 2107,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2108,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1947,
										"name": "RealTimeElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2026,
										"name": "ObservableBoolean.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1947,
								"name": "RealTimeElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2025,
								"name": "ObservableBoolean.id"
							}
						},
						{
							"id": 2121,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2122,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1961,
										"name": "RealTimeElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2038,
										"name": "ObservableBoolean.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1961,
								"name": "RealTimeElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2037,
								"name": "ObservableBoolean.isAttached"
							}
						},
						{
							"id": 2119,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2120,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1959,
										"name": "RealTimeElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2036,
										"name": "ObservableBoolean.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1959,
								"name": "RealTimeElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2035,
								"name": "ObservableBoolean.isDetached"
							}
						},
						{
							"id": 2105,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2106,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1945,
										"name": "RealTimeElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2042,
										"name": "ObservableBoolean.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1945,
								"name": "RealTimeElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2041,
								"name": "ObservableBoolean.model"
							}
						},
						{
							"id": 2164,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2165,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2166,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2167,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2069,
										"name": "ObservableBoolean.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2068,
								"name": "ObservableBoolean.off"
							}
						},
						{
							"id": 2147,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2148,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2149,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2150,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2052,
										"name": "ObservableBoolean.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2051,
								"name": "ObservableBoolean.on"
							}
						},
						{
							"id": 2151,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2152,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2153,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2154,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2056,
										"name": "ObservableBoolean.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2055,
								"name": "ObservableBoolean.once"
							}
						},
						{
							"id": 2113,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2114,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"name": "RealTimeContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1953,
										"name": "RealTimeElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2034,
										"name": "ObservableBoolean.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 189,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1953,
								"name": "RealTimeElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2033,
								"name": "ObservableBoolean.parent"
							}
						},
						{
							"id": 2111,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2112,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data.\nFor instance, with model data",
										"text": "```json\n{\n  user: {\n    age: 32\n  }\n}\n```\n\nThe [[RealTimeNumber]] representing `32` would have path `['user', 'age']`.\n"
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1951,
										"name": "RealTimeElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2030,
										"name": "ObservableBoolean.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 180,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1951,
								"name": "RealTimeElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2029,
								"name": "ObservableBoolean.path"
							}
						},
						{
							"id": 2129,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2130,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 2131,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2132,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1969,
										"name": "RealTimeElement.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1969,
								"name": "RealTimeElement.reference"
							}
						},
						{
							"id": 2133,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2134,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 2135,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1973,
										"name": "RealTimeElement.references"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1973,
								"name": "RealTimeElement.references"
							}
						},
						{
							"id": 2115,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2116,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1955,
										"name": "RealTimeElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2032,
										"name": "ObservableBoolean.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 222,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1955,
								"name": "RealTimeElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2031,
								"name": "ObservableBoolean.relativePath"
							}
						},
						{
							"id": 2155,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2156,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2060,
										"name": "ObservableBoolean.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2059,
								"name": "ObservableBoolean.removeAllListeners"
							}
						},
						{
							"id": 2117,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2118,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "A convenience function to delete this element. Throws an error if this is\nthe root object in a model."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1957,
										"name": "RealTimeElement.removeFromParent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 235,
									"character": 25
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1957,
								"name": "RealTimeElement.removeFromParent"
							}
						},
						{
							"id": 2160,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2161,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2162,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2163,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2065,
										"name": "ObservableBoolean.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2064,
								"name": "ObservableBoolean.removeListener"
							}
						},
						{
							"id": 2157,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2158,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2159,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2062,
										"name": "ObservableBoolean.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2061,
								"name": "ObservableBoolean.removeListeners"
							}
						},
						{
							"id": 2127,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2128,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1967,
										"name": "RealTimeElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2044,
										"name": "ObservableBoolean.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1967,
								"name": "RealTimeElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2043,
								"name": "ObservableBoolean.toJSON"
							}
						},
						{
							"id": 2109,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2110,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1949,
										"name": "RealTimeElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2028,
										"name": "ObservableBoolean.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1949,
								"name": "RealTimeElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2027,
								"name": "ObservableBoolean.type"
							}
						},
						{
							"id": 2123,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2124,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2040,
										"name": "ObservableBoolean.value"
									}
								},
								{
									"id": 2125,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 2126,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1963,
								"name": "RealTimeElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2039,
								"name": "ObservableBoolean.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								2090
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2143,
								2168,
								2107,
								2121,
								2119,
								2105,
								2164,
								2147,
								2151,
								2113,
								2111,
								2129,
								2133,
								2115,
								2155,
								2117,
								2160,
								2157,
								2127,
								2109,
								2123
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeBoolean.ts",
							"line": 49,
							"character": 28
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5521,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "boolean"
								}
							],
							"name": "RealTimeElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "boolean"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2024,
							"name": "ObservableBoolean"
						}
					]
				},
				{
					"id": 2948,
					"name": "RealTimeDate",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A distributed date.  This is provided to give dates and timestamps first-class\nsupport, as opposed to just using an epoch number or standard ISO string.",
						"text": "The underlying value is a native Javascript\n[Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date).\n\nSee [[RealTimeDateEvents]] for the events that can be emitted on remote\nchanges to this object.\n\nSee the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-date.html)\nfor the most common use cases.\n"
					},
					"children": [
						{
							"id": 2949,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeDate.ts",
									"line": 56,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 2943,
								"name": "RealTimeDateEvents"
							},
							"defaultValue": "ObservableDateEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 5523,
								"name": "RealTimeElement.Events"
							}
						},
						{
							"id": 3002,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3003,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3004,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3005,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2907,
										"name": "ObservableDate.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2906,
								"name": "ObservableDate.addListener"
							}
						},
						{
							"id": 3027,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3028,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2932,
										"name": "ObservableDate.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2931,
								"name": "ObservableDate.events"
							}
						},
						{
							"id": 2966,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2967,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1947,
										"name": "RealTimeElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2885,
										"name": "ObservableDate.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1947,
								"name": "RealTimeElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2884,
								"name": "ObservableDate.id"
							}
						},
						{
							"id": 2980,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2981,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1961,
										"name": "RealTimeElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2897,
										"name": "ObservableDate.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1961,
								"name": "RealTimeElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2896,
								"name": "ObservableDate.isAttached"
							}
						},
						{
							"id": 2978,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2979,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1959,
										"name": "RealTimeElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2895,
										"name": "ObservableDate.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1959,
								"name": "RealTimeElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2894,
								"name": "ObservableDate.isDetached"
							}
						},
						{
							"id": 2964,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2965,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1945,
										"name": "RealTimeElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2901,
										"name": "ObservableDate.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1945,
								"name": "RealTimeElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2900,
								"name": "ObservableDate.model"
							}
						},
						{
							"id": 3023,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3024,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3025,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3026,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2928,
										"name": "ObservableDate.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2927,
								"name": "ObservableDate.off"
							}
						},
						{
							"id": 3006,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3007,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3008,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3009,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2911,
										"name": "ObservableDate.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2910,
								"name": "ObservableDate.on"
							}
						},
						{
							"id": 3010,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3011,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3012,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3013,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2915,
										"name": "ObservableDate.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2914,
								"name": "ObservableDate.once"
							}
						},
						{
							"id": 2972,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2973,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"name": "RealTimeContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1953,
										"name": "RealTimeElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2893,
										"name": "ObservableDate.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 189,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1953,
								"name": "RealTimeElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2892,
								"name": "ObservableDate.parent"
							}
						},
						{
							"id": 2970,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2971,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data.\nFor instance, with model data",
										"text": "```json\n{\n  user: {\n    age: 32\n  }\n}\n```\n\nThe [[RealTimeNumber]] representing `32` would have path `['user', 'age']`.\n"
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1951,
										"name": "RealTimeElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2889,
										"name": "ObservableDate.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 180,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1951,
								"name": "RealTimeElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2888,
								"name": "ObservableDate.path"
							}
						},
						{
							"id": 2988,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2989,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 2990,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2991,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1969,
										"name": "RealTimeElement.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1969,
								"name": "RealTimeElement.reference"
							}
						},
						{
							"id": 2992,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2993,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 2994,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1973,
										"name": "RealTimeElement.references"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1973,
								"name": "RealTimeElement.references"
							}
						},
						{
							"id": 2974,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2975,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1955,
										"name": "RealTimeElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2891,
										"name": "ObservableDate.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 222,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1955,
								"name": "RealTimeElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2890,
								"name": "ObservableDate.relativePath"
							}
						},
						{
							"id": 3014,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3015,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2919,
										"name": "ObservableDate.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2918,
								"name": "ObservableDate.removeAllListeners"
							}
						},
						{
							"id": 2976,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2977,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "A convenience function to delete this element. Throws an error if this is\nthe root object in a model."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1957,
										"name": "RealTimeElement.removeFromParent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 235,
									"character": 25
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1957,
								"name": "RealTimeElement.removeFromParent"
							}
						},
						{
							"id": 3019,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3020,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3021,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3022,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2924,
										"name": "ObservableDate.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2923,
								"name": "ObservableDate.removeListener"
							}
						},
						{
							"id": 3016,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3017,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3018,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2921,
										"name": "ObservableDate.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2920,
								"name": "ObservableDate.removeListeners"
							}
						},
						{
							"id": 2986,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2987,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1967,
										"name": "RealTimeElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2903,
										"name": "ObservableDate.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1967,
								"name": "RealTimeElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2902,
								"name": "ObservableDate.toJSON"
							}
						},
						{
							"id": 2968,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2969,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1949,
										"name": "RealTimeElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2887,
										"name": "ObservableDate.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1949,
								"name": "RealTimeElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2886,
								"name": "ObservableDate.type"
							}
						},
						{
							"id": 2982,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2983,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2899,
										"name": "ObservableDate.value"
									}
								},
								{
									"id": 2984,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 2985,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "reference",
												"name": "Date"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1963,
								"name": "RealTimeElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2898,
								"name": "ObservableDate.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								2949
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								3002,
								3027,
								2966,
								2980,
								2978,
								2964,
								3023,
								3006,
								3010,
								2972,
								2970,
								2988,
								2992,
								2974,
								3014,
								2976,
								3019,
								3016,
								2986,
								2968,
								2982
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeDate.ts",
							"line": 54,
							"character": 25
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5521,
							"typeArguments": [
								{
									"type": "reference",
									"name": "Date"
								}
							],
							"name": "RealTimeElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "reference",
									"name": "Date"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2883,
							"name": "ObservableDate"
						}
					]
				},
				{
					"id": 5521,
					"name": "RealTimeElement",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true,
						"isAbstract": true
					},
					"comment": {
						"shortText": "This is an abstract representation of a particular node in a [[RealTimeModel]]'s\ncontents.  If you think of the contents of a model as a JSON tree, this could be the\nroot object, an array, or any other element. This provides utilities common to\nall data elements, like getting the element's [[value]], a unique [[id]], its\n[[path]] within the complete data tree, and much more.",
						"text": "See the [developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor a more in-depth analysis of the potential types of data this could wrap.\n\nUse [[value]] to get the current actual value of this element.\n"
					},
					"typeParameter": [
						{
							"id": 5522,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The underlying javascript data type of this element.\nFor instance, T would be `number` for a [[RealTimeNumber]] and `string` for a [[RealTimeString]].\nThis is the type that [[value]] returns.\n"
							}
						}
					],
					"children": [
						{
							"id": 5523,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "An interface enumerating the different events that could be fired on this\n[[RealTimeElement]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 71,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 5516,
								"name": "RealTimeElementEvents"
							},
							"defaultValue": "ObservableElementEventConstants"
						},
						{
							"id": 5581,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5582,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5583,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5584,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1477,
										"name": "ObservableElement.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1476,
								"name": "ObservableElement.addListener"
							}
						},
						{
							"id": 5606,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5607,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1502,
										"name": "ObservableElement.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1501,
								"name": "ObservableElement.events"
							}
						},
						{
							"id": 5539,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5540,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1455,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1454,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 5553,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5554,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1467,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1466,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 5551,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5552,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1465,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1464,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 5537,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5538,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1471,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1470,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 5602,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5603,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5604,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5605,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1498,
										"name": "ObservableElement.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1497,
								"name": "ObservableElement.off"
							}
						},
						{
							"id": 5585,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5586,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5587,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5588,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1481,
										"name": "ObservableElement.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1480,
								"name": "ObservableElement.on"
							}
						},
						{
							"id": 5589,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5590,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5591,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5592,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1485,
										"name": "ObservableElement.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1484,
								"name": "ObservableElement.once"
							}
						},
						{
							"id": 5545,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5546,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"name": "RealTimeContainerElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1463,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 189,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1462,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 5543,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5544,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data.\nFor instance, with model data",
										"text": "```json\n{\n  user: {\n    age: 32\n  }\n}\n```\n\nThe [[RealTimeNumber]] representing `32` would have path `['user', 'age']`.\n"
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1459,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 180,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1458,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 5561,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5562,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 5563,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5564,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							]
						},
						{
							"id": 5565,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5566,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 5567,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							]
						},
						{
							"id": 5547,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5548,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1461,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 222,
									"character": 21
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1460,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 5593,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5594,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1489,
										"name": "ObservableElement.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1488,
								"name": "ObservableElement.removeAllListeners"
							}
						},
						{
							"id": 5549,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5550,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "A convenience function to delete this element. Throws an error if this is\nthe root object in a model."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 235,
									"character": 25
								}
							]
						},
						{
							"id": 5598,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5599,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5600,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5601,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1494,
										"name": "ObservableElement.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1493,
								"name": "ObservableElement.removeListener"
							}
						},
						{
							"id": 5595,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5596,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5597,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1491,
										"name": "ObservableElement.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1490,
								"name": "ObservableElement.removeListeners"
							}
						},
						{
							"id": 5559,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5560,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1473,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1472,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 5541,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5542,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1457,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1456,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 5555,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5556,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "typeParameter",
										"name": "T",
										"default": {
											"type": "intrinsic",
											"name": "any"
										}
									},
									"implementationOf": {
										"type": "reference",
										"id": 1469,
										"name": "ObservableElement.value"
									}
								},
								{
									"id": 5557,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 5558,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "typeParameter",
												"name": "T",
												"default": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1468,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								5523
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								5581,
								5606,
								5539,
								5553,
								5551,
								5537,
								5602,
								5585,
								5589,
								5545,
								5543,
								5561,
								5565,
								5547,
								5593,
								5549,
								5598,
								5595,
								5559,
								5541,
								5555
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeElement.ts",
							"line": 64,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 426,
									"name": "IConvergenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 1856,
							"name": "RealTimeArray"
						},
						{
							"type": "reference",
							"id": 2089,
							"name": "RealTimeBoolean"
						},
						{
							"type": "reference",
							"id": 2249,
							"name": "RealTimeNull"
						},
						{
							"type": "reference",
							"id": 2415,
							"name": "RealTimeNumber"
						},
						{
							"type": "reference",
							"id": 2596,
							"name": "RealTimeString"
						},
						{
							"type": "reference",
							"id": 2782,
							"name": "RealTimeUndefined"
						},
						{
							"type": "reference",
							"id": 2948,
							"name": "RealTimeDate"
						},
						{
							"type": "reference",
							"id": 3061,
							"name": "RealTimeObject"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "typeParameter",
									"name": "T",
									"default": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "ObservableElement"
						}
					]
				},
				{
					"id": 5183,
					"name": "RealTimeModel",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This is the core construct for dealing with distributed data in Convergence.\nIt is essentially a distributed data model: Anybody in the same domain with permissions\nto this model can open it at the same time, be notified of remote changes, and modify\nthe data within, which is itself synchronized in the same way between all participants.\nAny co-modification conflicts are resolved automatically and consistently\nfor all connected users so that everybody sees the same thing.",
						"text": "See [this page](https://docs.convergence.io/guide/models/overview.html) in the\ndeveloper guide for a few of the interesting things you can do with a [[RealTimeModel]].\n\nAny data that can be represented with JSON can be stored in a [[RealTimeModel]].  This\nallows a huge range of applications to sync data instantly and seamlessly with Convergence.\n\nTo work with the data within (reading and writing):\n* [[root]] to get the root object\n* [[elementAt]] to query for a particular node within the data\n\nSee [[RealTimeModelEvents]] for the events that may be emitted on this model.\n"
					},
					"children": [
						{
							"id": 5184,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this model could emit to each event's unique name.\nUse this to refer an event name:",
								"text": "```typescript\nrtModel.on(RealTimeModel.Events.COLLABORATOR_OPENED, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 290,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 5165,
								"name": "RealTimeModelEvents"
							},
							"defaultValue": "RealTimeModelEventConstants"
						},
						{
							"id": 5474,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5475,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5476,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5477,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 5299,
							"name": "batchSize",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5300,
									"name": "batchSize",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the number of model changes that have accumulated since [[startBatch]]\nwas called."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 832,
									"character": 18
								}
							]
						},
						{
							"id": 5301,
							"name": "cancelBatch",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5302,
									"name": "cancelBatch",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Cancels the batch job.  Note that calling this once changes have occurred\non this model since the batch was started (that is, `batchSize() > 0`) will\nresult in an error."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 841,
									"character": 20
								}
							]
						},
						{
							"id": 5287,
							"name": "close",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5288,
									"name": "close",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Closes the model, emitting the appropriate events to any other participants\nand cleaning up any opened resources."
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 753,
									"character": 14
								}
							]
						},
						{
							"id": 5250,
							"name": "collaborators",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5251,
									"name": "collaborators",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns an array of collaborators, or other users who currently have this model\nopen.",
										"returns": "an array of collaborators\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3238,
											"name": "ModelCollaborator"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 590,
									"character": 22
								}
							]
						},
						{
							"id": 5254,
							"name": "collaboratorsAsObservable",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5255,
									"name": "collaboratorsAsObservable",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns an [observable](https://docs.convergence.io/guide/overview/events-and-observables.html)\nwhich emits whenever a collaborator opens or closes this model.  This is useful\nfor keeping an up-to-date listing of current collaborators.",
										"text": "Also see the [[PresenceService]] for a more robust mechanism for keeping tabs\non who is available for participation within the domain.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 3238,
													"name": "ModelCollaborator"
												}
											}
										],
										"name": "Observable"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 624,
									"character": 34
								}
							]
						},
						{
							"id": 5256,
							"name": "collectionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5257,
									"name": "collectionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The collection ID to which this model belongs."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1420,
										"name": "ObservableModel.collectionId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 631,
									"character": 21
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1419,
								"name": "ObservableModel.collectionId"
							}
						},
						{
							"id": 5297,
							"name": "completeBatch",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5298,
									"name": "completeBatch",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sends any accumulated model changes to the server as one atomic operation.\nThis also removes the batch flag such that subsequent individual changes are immediately\nprocessed and sent as normal."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 823,
									"character": 22
								}
							]
						},
						{
							"id": 5266,
							"name": "createdTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5267,
									"name": "createdTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The timestamp at which this model was first created."
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1430,
										"name": "ObservableModel.createdTime"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 666,
									"character": 20
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1429,
								"name": "ObservableModel.createdTime"
							}
						},
						{
							"id": 5278,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5279,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Given a search path, returns the [[RealTimeElement]] at that path, or null if\nno such element exists."
									},
									"parameters": [
										{
											"id": 5280,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the search path for accessing a node within this model's data\n"
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								},
								{
									"id": 5281,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Given an array of search path elements, returns the [[RealTimeElement]] at\nthat path, or null if no such element exists."
									},
									"parameters": [
										{
											"id": 5282,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"comment": {
												"text": "an array of search path elements (which in totality are a [[Path]])\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 715,
									"character": 18
								},
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 723,
									"character": 18
								},
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 724,
									"character": 18
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1439,
								"name": "ObservableModel.elementAt"
							}
						},
						{
							"id": 5305,
							"name": "elementReference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5306,
									"name": "elementReference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates an [Element Reference](https://docs.convergence.io/guide/models/references/realtimemodel.html),\nwhich is a [Reference](https://docs.convergence.io/guide/models/references/references.html)\nbound to one more [elements](#elementat) in this model's data.",
										"returns": "An empty `LocalElementReference` which can then be bound to one or more elements.\n"
									},
									"parameters": [
										{
											"id": 5307,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a unique name for this ElementReference\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5710,
										"name": "LocalElementReference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 864,
									"character": 25
								}
							]
						},
						{
							"id": 5246,
							"name": "emitLocalEvents",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5247,
									"name": "emitLocalEvents",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if local changes to this model are being emitted.",
										"text": "FIXME inconsistent with isOpen()\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								},
								{
									"id": 5248,
									"name": "emitLocalEvents",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Toggles the `emitLocalEvents` setting.  If set to `true`, whenever any data\nwithin this model is mutated, the same events will be emitted as if the mutation\nhappened remotely.  This is useful for handling change events in one place,\nswitching on the [[IConvergenceModelValueEvent]].local field."
									},
									"parameters": [
										{
											"id": 5249,
											"name": "emit",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "true if local changes to this model should emit\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 564,
									"character": 24
								},
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 574,
									"character": 24
								},
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 575,
									"character": 24
								}
							]
						},
						{
							"id": 5295,
							"name": "endBatch",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5296,
									"name": "endBatch",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"tags": [
											{
												"tag": "deprecated",
												"text": ""
											}
										]
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 814,
									"character": 17
								}
							]
						},
						{
							"id": 5499,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5500,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 5303,
							"name": "isBatchStarted",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5304,
									"name": "isBatchStarted",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this model is currently in batch mode, that is, `startBatch`\nwas called and the batch was not completed or cancelled.",
										"returns": "True if a batch is in progress, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 851,
									"character": 23
								}
							]
						},
						{
							"id": 5289,
							"name": "isClosing",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5290,
									"name": "isClosing",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Informs clients if the model is closing.",
										"returns": "True if the model is closing.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 783,
									"character": 18
								}
							]
						},
						{
							"id": 5274,
							"name": "isCommitted",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5275,
									"name": "isCommitted",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if all local changes (if any) have been committed by the\nserver.",
										"returns": "true if the model has no unacknowledged changes, false otherwise.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 697,
									"character": 20
								}
							]
						},
						{
							"id": 5285,
							"name": "isLocal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5286,
									"name": "isLocal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines is this model is a model that was created offline,\nand has not been synced to the server yet.",
										"returns": "\n  True if the model was created locally and has not synced to the server,\n  false otherwise.\n",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 745,
									"character": 16
								}
							]
						},
						{
							"id": 5283,
							"name": "isOpen",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5284,
									"name": "isOpen",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this model is currently open."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 731,
									"character": 15
								}
							]
						},
						{
							"id": 5319,
							"name": "isSubscribedOffline",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5320,
									"name": "isSubscribedOffline",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if this model is marked to be made available offline.",
										"returns": "True if the model is marked for offline availability,\n  false otherwise.\n",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 943,
									"character": 28
								}
							]
						},
						{
							"id": 5264,
							"name": "maxTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5265,
									"name": "maxTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Alias of [[time]]"
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1428,
										"name": "ObservableModel.maxTime"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 659,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1427,
								"name": "ObservableModel.maxTime"
							}
						},
						{
							"id": 5272,
							"name": "maxVersion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5273,
									"name": "maxVersion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Alias for [[version]]"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1436,
										"name": "ObservableModel.maxVersion"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 687,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1435,
								"name": "ObservableModel.maxVersion"
							}
						},
						{
							"id": 5262,
							"name": "minTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5263,
									"name": "minTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Alias of [[createdTime]]"
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1426,
										"name": "ObservableModel.minTime"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 652,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1425,
								"name": "ObservableModel.minTime"
							}
						},
						{
							"id": 5270,
							"name": "minVersion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5271,
									"name": "minVersion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The first version of the model (`0`)."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1434,
										"name": "ObservableModel.minVersion"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 680,
									"character": 19
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1433,
								"name": "ObservableModel.minVersion"
							}
						},
						{
							"id": 5258,
							"name": "modelId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5259,
									"name": "modelId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This model's ID, unique in the Domain."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1422,
										"name": "ObservableModel.modelId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 638,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1421,
								"name": "ObservableModel.modelId"
							}
						},
						{
							"id": 5495,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5496,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5497,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5498,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 5478,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5479,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5480,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5481,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 5482,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5483,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5484,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5485,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 5240,
							"name": "permissions",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5241,
									"name": "permissions",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the permissions the current user has on this model."
									},
									"type": {
										"type": "reference",
										"id": 4219,
										"name": "ModelPermissions"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 540,
									"character": 20
								}
							]
						},
						{
							"id": 5242,
							"name": "permissionsManager",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5243,
									"name": "permissionsManager",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a permission manager that can be used to manage global or per-user\npermissions on this model. Requires the `manage` permission."
									},
									"type": {
										"type": "reference",
										"id": 4629,
										"name": "ModelPermissionManager"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 548,
									"character": 27
								}
							]
						},
						{
							"id": 5308,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5309,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n",
										"returns": "A model reference for thee specified sessionId and key.\n"
									},
									"parameters": [
										{
											"id": 5310,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5311,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ModelReference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 898,
									"character": 18
								}
							]
						},
						{
							"id": 5312,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5313,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 5314,
											"name": "filter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"typeArguments": [
												{
													"type": "intrinsic",
													"name": "any"
												}
											],
											"name": "ModelReference"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 913,
									"character": 19
								}
							]
						},
						{
							"id": 5486,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5487,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 5491,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5492,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5493,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 5494,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 5488,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5489,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 5490,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 5252,
							"name": "resynchronizingCollaborators",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5253,
									"name": "resynchronizingCollaborators",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns an array of collaborators, or other users who currently have this model\nopen.",
										"returns": "an array of collaborators\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3238,
											"name": "ModelCollaborator"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 606,
									"character": 37
								}
							]
						},
						{
							"id": 5276,
							"name": "root",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5277,
									"name": "root",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a [[RealTimeObject]] wrapping the root node of this model's data.  From here\none can view or modify all or any part of the subtree at any level of granularity."
									},
									"type": {
										"type": "reference",
										"id": 3061,
										"name": "RealTimeObject"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1438,
										"name": "ObservableModel.root"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 705,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1437,
								"name": "ObservableModel.root"
							}
						},
						{
							"id": 5244,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5245,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The session associated with this opened model."
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1418,
										"name": "ObservableModel.session"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 555,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1417,
								"name": "ObservableModel.session"
							}
						},
						{
							"id": 5293,
							"name": "startBatch",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5294,
									"name": "startBatch",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets a flag on this model to indicate that any subsequent changes will be batched into\none atomic operation.  See [Batch Changes](https://docs.convergence.io/guide/models/batch-changes.html)\nin the developer guide.",
										"text": "Note that a single batch operation must be fully encompassed in a single JS\nevent loop (\"tick\").  This is to guarantee that no incoming events can conflict with\nthe batch job.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 804,
									"character": 19
								}
							]
						},
						{
							"id": 5315,
							"name": "subscribeOffline",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5316,
									"name": "subscribeOffline",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Marks this model to be available offline.",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 922,
									"character": 25
								}
							]
						},
						{
							"id": 5260,
							"name": "time",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5261,
									"name": "time",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The timestamp at which this model was last modified."
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1424,
										"name": "ObservableModel.time"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 645,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1423,
								"name": "ObservableModel.time"
							}
						},
						{
							"id": 5317,
							"name": "unsubscribeOffline",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5318,
									"name": "unsubscribeOffline",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Marks this model no longer needs to be available offline.",
										"tags": [
											{
												"tag": "experimental",
												"text": "\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 931,
									"character": 27
								}
							]
						},
						{
							"id": 5268,
							"name": "version",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5269,
									"name": "version",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The current version of the model."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1432,
										"name": "ObservableModel.version"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 673,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1431,
								"name": "ObservableModel.version"
							}
						},
						{
							"id": 5291,
							"name": "whenClosed",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 5292,
									"name": "whenClosed",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "A promise the will be resolved when the model is closed. If\nthe model is already closed, the promise will be immediately resolved.\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "void"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 791,
									"character": 19
								}
							]
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								5184
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								5474,
								5299,
								5301,
								5287,
								5250,
								5254,
								5256,
								5297,
								5266,
								5278,
								5305,
								5246,
								5295,
								5499,
								5303,
								5289,
								5274,
								5285,
								5283,
								5319,
								5264,
								5272,
								5262,
								5270,
								5258,
								5495,
								5478,
								5482,
								5240,
								5242,
								5308,
								5312,
								5486,
								5491,
								5488,
								5252,
								5276,
								5244,
								5293,
								5315,
								5260,
								5317,
								5268,
								5291
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeModel.ts",
							"line": 278,
							"character": 26
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 426,
									"name": "IConvergenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1416,
							"name": "ObservableModel"
						}
					]
				},
				{
					"id": 2249,
					"name": "RealTimeNull",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This is a convenience object that wraps a javascript `null`. These are returned\nwhen a [[RealTimeObject]] or [[RealTimeArray]] contains a null value. The `value()`\nof this is always `null` and cannot be changed.",
						"text": "See [[RealTimeNullEvents]] for the events that can be emitted on remote\nchanges to this object.\n\nMore information is in the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-null.html).\n"
					},
					"children": [
						{
							"id": 2250,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeNull.ts",
									"line": 45,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 2244,
								"name": "RealTimeNullEvents"
							},
							"defaultValue": "ObservableNullEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 5523,
								"name": "RealTimeElement.Events"
							}
						},
						{
							"id": 2306,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2307,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2308,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2309,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2208,
										"name": "ObservableNull.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2207,
								"name": "ObservableNull.addListener"
							}
						},
						{
							"id": 2331,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2332,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2233,
										"name": "ObservableNull.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2232,
								"name": "ObservableNull.events"
							}
						},
						{
							"id": 2267,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2268,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1947,
										"name": "RealTimeElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2186,
										"name": "ObservableNull.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1947,
								"name": "RealTimeElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2185,
								"name": "ObservableNull.id"
							}
						},
						{
							"id": 2281,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2282,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1961,
										"name": "RealTimeElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2198,
										"name": "ObservableNull.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1961,
								"name": "RealTimeElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2197,
								"name": "ObservableNull.isAttached"
							}
						},
						{
							"id": 2279,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2280,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1959,
										"name": "RealTimeElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2196,
										"name": "ObservableNull.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1959,
								"name": "RealTimeElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2195,
								"name": "ObservableNull.isDetached"
							}
						},
						{
							"id": 2265,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2266,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1945,
										"name": "RealTimeElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2202,
										"name": "ObservableNull.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1945,
								"name": "RealTimeElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2201,
								"name": "ObservableNull.model"
							}
						},
						{
							"id": 2327,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2328,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2329,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2330,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2229,
										"name": "ObservableNull.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2228,
								"name": "ObservableNull.off"
							}
						},
						{
							"id": 2310,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2311,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2312,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2313,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2212,
										"name": "ObservableNull.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2211,
								"name": "ObservableNull.on"
							}
						},
						{
							"id": 2314,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2315,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2316,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2317,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2216,
										"name": "ObservableNull.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2215,
								"name": "ObservableNull.once"
							}
						},
						{
							"id": 2273,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2274,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"name": "RealTimeContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1953,
										"name": "RealTimeElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2194,
										"name": "ObservableNull.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 189,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1953,
								"name": "RealTimeElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2193,
								"name": "ObservableNull.parent"
							}
						},
						{
							"id": 2271,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2272,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data.\nFor instance, with model data",
										"text": "```json\n{\n  user: {\n    age: 32\n  }\n}\n```\n\nThe [[RealTimeNumber]] representing `32` would have path `['user', 'age']`.\n"
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1951,
										"name": "RealTimeElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2190,
										"name": "ObservableNull.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 180,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1951,
								"name": "RealTimeElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2189,
								"name": "ObservableNull.path"
							}
						},
						{
							"id": 2289,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2290,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 2291,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2292,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1969,
										"name": "RealTimeElement.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1969,
								"name": "RealTimeElement.reference"
							}
						},
						{
							"id": 2293,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2294,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 2295,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1973,
										"name": "RealTimeElement.references"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1973,
								"name": "RealTimeElement.references"
							}
						},
						{
							"id": 2275,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2276,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1955,
										"name": "RealTimeElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2192,
										"name": "ObservableNull.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 222,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1955,
								"name": "RealTimeElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2191,
								"name": "ObservableNull.relativePath"
							}
						},
						{
							"id": 2318,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2319,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2220,
										"name": "ObservableNull.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2219,
								"name": "ObservableNull.removeAllListeners"
							}
						},
						{
							"id": 2277,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2278,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "A convenience function to delete this element. Throws an error if this is\nthe root object in a model."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1957,
										"name": "RealTimeElement.removeFromParent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 235,
									"character": 25
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1957,
								"name": "RealTimeElement.removeFromParent"
							}
						},
						{
							"id": 2323,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2324,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2325,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2326,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2225,
										"name": "ObservableNull.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2224,
								"name": "ObservableNull.removeListener"
							}
						},
						{
							"id": 2320,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2321,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2322,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2222,
										"name": "ObservableNull.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2221,
								"name": "ObservableNull.removeListeners"
							}
						},
						{
							"id": 2287,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2288,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1967,
										"name": "RealTimeElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2204,
										"name": "ObservableNull.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1967,
								"name": "RealTimeElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2203,
								"name": "ObservableNull.toJSON"
							}
						},
						{
							"id": 2269,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2270,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1949,
										"name": "RealTimeElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2188,
										"name": "ObservableNull.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1949,
								"name": "RealTimeElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2187,
								"name": "ObservableNull.type"
							}
						},
						{
							"id": 2283,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2284,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2200,
										"name": "ObservableNull.value"
									}
								},
								{
									"id": 2285,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 2286,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1963,
								"name": "RealTimeElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2199,
								"name": "ObservableNull.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								2250
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2306,
								2331,
								2267,
								2281,
								2279,
								2265,
								2327,
								2310,
								2314,
								2273,
								2271,
								2289,
								2293,
								2275,
								2318,
								2277,
								2323,
								2320,
								2287,
								2269,
								2283
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeNull.ts",
							"line": 43,
							"character": 25
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5521,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "RealTimeElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2184,
							"name": "ObservableNull"
						}
					]
				},
				{
					"id": 2415,
					"name": "RealTimeNumber",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This is a distributed number that wraps a native javascript `number`.  It provides\na few convenience functions for doing arithmetic and incrementing/decrementing.",
						"text": "See [[RealTimeNumberEvents]] for the events that can be emitted on remote\nchanges to this object.\n\nSee the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-number.html)\nfor the most common use cases.\n"
					},
					"children": [
						{
							"id": 2416,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this array could emit to each event's unique name.\nUse this to refer an event name, e.g.",
								"text": "```typescript\nrtNum.on(RealTimeNumber.Events.DELTA, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeNumber.ts",
									"line": 58,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 2409,
								"name": "RealTimeNumberEvents"
							},
							"defaultValue": "ObservableNumberEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 5523,
								"name": "RealTimeElement.Events"
							}
						},
						{
							"id": 2424,
							"name": "add",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2425,
									"name": "add",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds the given number to this object's underlying number.",
										"text": "```typescript\nrtNumber.value() // 13\nrtNumber.add(4)\nrtNumber.value() // 17\n```\n\nOn a successful `add`, a [[NumberDeltaEvent]] will be emitted for any remote users.\n"
									},
									"parameters": [
										{
											"id": 2426,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the addend to be added\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeNumber.ts",
									"line": 97,
									"character": 12
								}
							]
						},
						{
							"id": 2479,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2480,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2481,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2482,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2372,
										"name": "ObservableNumber.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2371,
								"name": "ObservableNumber.addListener"
							}
						},
						{
							"id": 2432,
							"name": "decrement",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2433,
									"name": "decrement",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Decrements the underlying number by 1.  Equivalent to `subtract(1)`",
										"text": "```typescript\nrtNumber.value() // 13\nrtNumber.decrement()\nrtNumber.value() // 12\n```\n\nOn a successful `decrement`, a [[NumberDeltaEvent]] will be emitted for any remote users.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeNumber.ts",
									"line": 147,
									"character": 18
								}
							]
						},
						{
							"id": 2504,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2505,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2397,
										"name": "ObservableNumber.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2396,
								"name": "ObservableNumber.events"
							}
						},
						{
							"id": 2443,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2444,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1947,
										"name": "RealTimeElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2350,
										"name": "ObservableNumber.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1947,
								"name": "RealTimeElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2349,
								"name": "ObservableNumber.id"
							}
						},
						{
							"id": 2430,
							"name": "increment",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2431,
									"name": "increment",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Increments the underlying number by 1.  Equivalent to `add(1)`",
										"text": "```typescript\nrtNumber.value() // 13\nrtNumber.increment()\nrtNumber.value() // 14\n```\n\nOn a successful `increment`, a [[NumberDeltaEvent]] will be emitted for any remote users.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeNumber.ts",
									"line": 131,
									"character": 18
								}
							]
						},
						{
							"id": 2457,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2458,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1961,
										"name": "RealTimeElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2362,
										"name": "ObservableNumber.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1961,
								"name": "RealTimeElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2361,
								"name": "ObservableNumber.isAttached"
							}
						},
						{
							"id": 2455,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2456,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1959,
										"name": "RealTimeElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2360,
										"name": "ObservableNumber.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1959,
								"name": "RealTimeElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2359,
								"name": "ObservableNumber.isDetached"
							}
						},
						{
							"id": 2441,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2442,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1945,
										"name": "RealTimeElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2366,
										"name": "ObservableNumber.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1945,
								"name": "RealTimeElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2365,
								"name": "ObservableNumber.model"
							}
						},
						{
							"id": 2500,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2501,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2502,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2503,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2393,
										"name": "ObservableNumber.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2392,
								"name": "ObservableNumber.off"
							}
						},
						{
							"id": 2483,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2484,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2485,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2486,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2376,
										"name": "ObservableNumber.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2375,
								"name": "ObservableNumber.on"
							}
						},
						{
							"id": 2487,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2488,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2489,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2490,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2380,
										"name": "ObservableNumber.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2379,
								"name": "ObservableNumber.once"
							}
						},
						{
							"id": 2449,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2450,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"name": "RealTimeContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1953,
										"name": "RealTimeElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2358,
										"name": "ObservableNumber.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 189,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1953,
								"name": "RealTimeElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2357,
								"name": "ObservableNumber.parent"
							}
						},
						{
							"id": 2447,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2448,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data.\nFor instance, with model data",
										"text": "```json\n{\n  user: {\n    age: 32\n  }\n}\n```\n\nThe [[RealTimeNumber]] representing `32` would have path `['user', 'age']`.\n"
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1951,
										"name": "RealTimeElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2354,
										"name": "ObservableNumber.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 180,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1951,
								"name": "RealTimeElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2353,
								"name": "ObservableNumber.path"
							}
						},
						{
							"id": 2465,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2466,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 2467,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2468,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1969,
										"name": "RealTimeElement.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1969,
								"name": "RealTimeElement.reference"
							}
						},
						{
							"id": 2469,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2470,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 2471,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1973,
										"name": "RealTimeElement.references"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1973,
								"name": "RealTimeElement.references"
							}
						},
						{
							"id": 2451,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2452,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1955,
										"name": "RealTimeElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2356,
										"name": "ObservableNumber.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 222,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1955,
								"name": "RealTimeElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2355,
								"name": "ObservableNumber.relativePath"
							}
						},
						{
							"id": 2491,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2492,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2384,
										"name": "ObservableNumber.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2383,
								"name": "ObservableNumber.removeAllListeners"
							}
						},
						{
							"id": 2453,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2454,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "A convenience function to delete this element. Throws an error if this is\nthe root object in a model."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1957,
										"name": "RealTimeElement.removeFromParent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 235,
									"character": 25
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1957,
								"name": "RealTimeElement.removeFromParent"
							}
						},
						{
							"id": 2496,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2497,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2498,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2499,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2389,
										"name": "ObservableNumber.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2388,
								"name": "ObservableNumber.removeListener"
							}
						},
						{
							"id": 2493,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2494,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2495,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2386,
										"name": "ObservableNumber.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2385,
								"name": "ObservableNumber.removeListeners"
							}
						},
						{
							"id": 2427,
							"name": "subtract",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2428,
									"name": "subtract",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Subtracts the given number from this object's underlying number.",
										"text": "```typescript\nrtNumber.value() // 13\nrtNumber.subtract(4)\nrtNumber.value() // 9\n```\n\nOn a successful `subtract`, a [[NumberDeltaEvent]] will be emitted for any remote users.\n"
									},
									"parameters": [
										{
											"id": 2429,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the subtrahend to be subtracted\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeNumber.ts",
									"line": 115,
									"character": 17
								}
							]
						},
						{
							"id": 2463,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2464,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1967,
										"name": "RealTimeElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2368,
										"name": "ObservableNumber.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1967,
								"name": "RealTimeElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2367,
								"name": "ObservableNumber.toJSON"
							}
						},
						{
							"id": 2445,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2446,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1949,
										"name": "RealTimeElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2352,
										"name": "ObservableNumber.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1949,
								"name": "RealTimeElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2351,
								"name": "ObservableNumber.type"
							}
						},
						{
							"id": 2459,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2460,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2364,
										"name": "ObservableNumber.value"
									}
								},
								{
									"id": 2461,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 2462,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1963,
								"name": "RealTimeElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2363,
								"name": "ObservableNumber.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								2416
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2424,
								2479,
								2432,
								2504,
								2443,
								2430,
								2457,
								2455,
								2441,
								2500,
								2483,
								2487,
								2449,
								2447,
								2465,
								2469,
								2451,
								2491,
								2453,
								2496,
								2493,
								2427,
								2463,
								2445,
								2459
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeNumber.ts",
							"line": 46,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5521,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "number"
								}
							],
							"name": "RealTimeElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "number"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2348,
							"name": "ObservableNumber"
						}
					]
				},
				{
					"id": 3061,
					"name": "RealTimeObject",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A distributed Object (in Javascript, a set of key-value pairs).  This extends the\nfunctionality of the\n[Javascript Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)\nprototype methods.",
						"text": "See [[RealTimeObjectEvents]] for the many events that may be emitted on remote changes\nto this underlying data of this object.\n\nAlso see the [developer guide](https://docs.convergence.io/guide/models/data/real-time-object.html)\nfor examples of some of the most common use cases.\n"
					},
					"children": [
						{
							"id": 3062,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this array could emit to each event's unique name.\nUse this to refer an event name, e.g.",
								"text": "```typescript\nrtObj.on(RealTimeObject.Events.SET, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 75,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 3054,
								"name": "RealTimeObjectEvents"
							},
							"defaultValue": "ObservableObjectEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 5523,
								"name": "RealTimeElement.Events"
							}
						},
						{
							"id": 3157,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3158,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3159,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3160,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1374,
										"name": "ObservableObject.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1373,
								"name": "ObservableObject.addListener"
							}
						},
						{
							"id": 3092,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3093,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Given a search path, returns the [[RealTimeElement]] at that path, or null if\nno such element exists. Scoped to this object, so the first element in the given\npath should be a string (representing an existing key)",
										"returns": "The [[RealTimeElement]] at the given path, or null if no such element exists\n"
									},
									"parameters": [
										{
											"id": 3094,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the search path for accessing a node within this object\n"
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1347,
										"name": "ObservableObject.elementAt"
									}
								},
								{
									"id": 3095,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 3096,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1349,
										"name": "ObservableObject.elementAt"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 228,
									"character": 18
								},
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 229,
									"character": 18
								},
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 230,
									"character": 18
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1346,
								"name": "ObservableObject.elementAt"
							}
						},
						{
							"id": 3182,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3183,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1399,
										"name": "ObservableObject.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1398,
								"name": "ObservableObject.events"
							}
						},
						{
							"id": 3085,
							"name": "forEach",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3086,
									"name": "forEach",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Synchronously calls the provided callback function for each key-value pair in\nthis object. Curiously, no such method is provided in native Javascript.",
										"text": "```typescript\nrtObj.value() // {'firstName': 'Jimbo', 'lastName': 'McGee'}\nrtObj.forEach((rtString, key) => {\n   console.log('My', key, 'is', rtString.value())\n})\n// My firstName is Jimbo\n// My lastName is McGee\n```\n"
									},
									"parameters": [
										{
											"id": 3087,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a function to be called for each key-value pair in this object\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 3088,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 3089,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 3090,
																	"name": "model",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 5521,
																		"name": "RealTimeElement"
																	}
																},
																{
																	"id": 3091,
																	"name": "key",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/rt/RealTimeObject.ts",
															"line": 213,
															"character": 26
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 213,
									"character": 16
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1333,
								"name": "ObservableObject.forEach"
							}
						},
						{
							"id": 3070,
							"name": "get",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3071,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the [[RealTimeElement]] at the given key.  Analogous to the object accessor\nsyntax in javascript, e.g. `users['firstName']` would be the same as `rtUsers.get('firstName')`."
									},
									"parameters": [
										{
											"id": 3072,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the key whose value is desired\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1326,
										"name": "ObservableObject.get"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 99,
									"character": 12
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1325,
								"name": "ObservableObject.get"
							}
						},
						{
							"id": 3082,
							"name": "hasKey",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3083,
									"name": "hasKey",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if a value exists at the given key, even if the value is `null`.\nAnalagous to the Javascript object\n[hasOwnProperty](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)\nmethod.",
										"text": "```typescript\nrtObj.value() // {'firstName': 'Jimbo', 'title': null}\nrtObj.hasKey('firstName') // true\nrtObj.hasKey('title') // true\nrtObj.hasKey('age') // false\n```\n",
										"returns": "true if a value exists\n"
									},
									"parameters": [
										{
											"id": 3084,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the key whose existence is being requested\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1331,
										"name": "ObservableObject.hasKey"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 194,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1330,
								"name": "ObservableObject.hasKey"
							}
						},
						{
							"id": 3118,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3119,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1947,
										"name": "RealTimeElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1352,
										"name": "ObservableObject.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1947,
								"name": "RealTimeElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableObject.id"
							}
						},
						{
							"id": 3132,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3133,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1961,
										"name": "RealTimeElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1364,
										"name": "ObservableObject.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1961,
								"name": "RealTimeElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableObject.isAttached"
							}
						},
						{
							"id": 3130,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3131,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1959,
										"name": "RealTimeElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1362,
										"name": "ObservableObject.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1959,
								"name": "RealTimeElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableObject.isDetached"
							}
						},
						{
							"id": 3080,
							"name": "keys",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3081,
									"name": "keys",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns an array consisting of all this object's keys. Analogous to the Javascript\n[Object.keys](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)\nmethod.",
										"text": "```typescript\nrtObj.value() // {'firstName': 'Jimbo', 'lastName': 'McGee'}\nrtObj.keys() // ['firstName', 'lastName']\n```\n",
										"returns": "an array with all of this object's keys\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "string"
										}
									},
									"implementationOf": {
										"type": "reference",
										"id": 1329,
										"name": "ObservableObject.keys"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 171,
									"character": 13
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 1328,
								"name": "ObservableObject.keys"
							}
						},
						{
							"id": 3116,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3117,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1945,
										"name": "RealTimeElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1368,
										"name": "ObservableObject.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1945,
								"name": "RealTimeElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableObject.model"
							}
						},
						{
							"id": 3178,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3179,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3180,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3181,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1395,
										"name": "ObservableObject.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1394,
								"name": "ObservableObject.off"
							}
						},
						{
							"id": 3161,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3162,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3163,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3164,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1378,
										"name": "ObservableObject.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1377,
								"name": "ObservableObject.on"
							}
						},
						{
							"id": 3165,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3166,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3167,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3168,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1382,
										"name": "ObservableObject.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1381,
								"name": "ObservableObject.once"
							}
						},
						{
							"id": 3124,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3125,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"name": "RealTimeContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1953,
										"name": "RealTimeElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1360,
										"name": "ObservableObject.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 189,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1953,
								"name": "RealTimeElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableObject.parent"
							}
						},
						{
							"id": 3122,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3123,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data.\nFor instance, with model data",
										"text": "```json\n{\n  user: {\n    age: 32\n  }\n}\n```\n\nThe [[RealTimeNumber]] representing `32` would have path `['user', 'age']`.\n"
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1951,
										"name": "RealTimeElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1356,
										"name": "ObservableObject.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 180,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1951,
								"name": "RealTimeElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableObject.path"
							}
						},
						{
							"id": 3097,
							"name": "propertyReference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3098,
									"name": "propertyReference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates a [[LocalPropertyReference]] bound to this object.  Once it's created,\nyou can `set` the property to which the reference can be bound.",
										"text": "See the [developer guide](https://docs.convergence.io/guide/models/references/realtimeobject.html)\nfor more information and examples.\n",
										"returns": "A local property reference anchored to this object\n"
									},
									"parameters": [
										{
											"id": 3099,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a unique name for the property reference\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5874,
										"name": "LocalPropertyReference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 245,
									"character": 26
								}
							]
						},
						{
							"id": 3140,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3141,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 3142,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3143,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1969,
										"name": "RealTimeElement.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1969,
								"name": "RealTimeElement.reference"
							}
						},
						{
							"id": 3144,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3145,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 3146,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1973,
										"name": "RealTimeElement.references"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1973,
								"name": "RealTimeElement.references"
							}
						},
						{
							"id": 3126,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3127,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1955,
										"name": "RealTimeElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1358,
										"name": "ObservableObject.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 222,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1955,
								"name": "RealTimeElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableObject.relativePath"
							}
						},
						{
							"id": 3077,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3078,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes the value at the given key. If the key doesn't exist, nothing happens.",
										"text": "```typescript\nrtObject.value() // {'firstName': 'Jimbo'}\nrtObject.remove('lastName')\nrtObject.value() // {'firstName': 'Jimbo'}\nlet rtStr = rtObject.remove('firstName')\nrtObject.value() // {}\nrtStr.value() // \"Jimbo\"\nrtStr.isDetached() // true\n```\n\nOn a successful `remove`, an [[ObjectRemoveEvent]] will be emitted to any remote users.\n",
										"returns": "The RealTimeElement that *was* at `key`, in detached mode. If no `key` was\nfound, returns a [[RealTimeUndefined]].\n"
									},
									"parameters": [
										{
											"id": 3079,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The key whose value will be removed.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 154,
									"character": 15
								}
							]
						},
						{
							"id": 3169,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3170,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1386,
										"name": "ObservableObject.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1385,
								"name": "ObservableObject.removeAllListeners"
							}
						},
						{
							"id": 3128,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3129,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "A convenience function to delete this element. Throws an error if this is\nthe root object in a model."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1957,
										"name": "RealTimeElement.removeFromParent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 235,
									"character": 25
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1957,
								"name": "RealTimeElement.removeFromParent"
							}
						},
						{
							"id": 3174,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3175,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3176,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3177,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1391,
										"name": "ObservableObject.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1390,
								"name": "ObservableObject.removeListener"
							}
						},
						{
							"id": 3171,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3172,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 3173,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1388,
										"name": "ObservableObject.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1387,
								"name": "ObservableObject.removeListeners"
							}
						},
						{
							"id": 3073,
							"name": "set",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3074,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the given key to be the given value. An existing value at the key will\nbe replaced, otherwise a new key-value pair will be added.",
										"text": "Values should be javascript primitives supported by Convergence, NOT\n`RealTimeElements`.\n\n```typescript\nrtObject.value() // {'firstName': 'Jimbo'}\nrtObject.set('lastName', 'McGee')\nrtObject.value() // {'firstName': 'Jimbo', 'lastName': 'McGee'}\n```\n\nOn a successful `set`, an [[ObjectSetEvent]] will be emitted for any remote users.\n",
										"returns": "a [[RealTimeElement]] wrapping the newly-set `value`\n"
									},
									"parameters": [
										{
											"id": 3075,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the key at which to place the value"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 3076,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value, which must be a data type supported by Convergence\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeObject.ts",
									"line": 123,
									"character": 12
								}
							]
						},
						{
							"id": 3138,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3139,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1967,
										"name": "RealTimeElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1370,
										"name": "ObservableObject.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1967,
								"name": "RealTimeElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableObject.toJSON"
							}
						},
						{
							"id": 3120,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3121,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1949,
										"name": "RealTimeElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1354,
										"name": "ObservableObject.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1949,
								"name": "RealTimeElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableObject.type"
							}
						},
						{
							"id": 3134,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 3135,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 3109,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {
												"isExported": true
											},
											"indexSignature": [
												{
													"id": 3110,
													"name": "__index",
													"kind": 8192,
													"kindString": "Index signature",
													"flags": {
														"isExported": true
													},
													"parameters": [
														{
															"id": 3111,
															"name": "key",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "any"
													}
												}
											],
											"sources": [
												{
													"fileName": "src/main/model/rt/RealTimeObject.ts",
													"line": 62,
													"character": 52
												}
											]
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 1366,
										"name": "ObservableObject.value"
									}
								},
								{
									"id": 3136,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 3137,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 3109,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"indexSignature": [
														{
															"id": 3110,
															"name": "__index",
															"kind": 8192,
															"kindString": "Index signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 3111,
																	"name": "key",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "any"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/rt/RealTimeObject.ts",
															"line": 62,
															"character": 52
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1963,
								"name": "RealTimeElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableObject.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3062
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								3157,
								3092,
								3182,
								3085,
								3070,
								3082,
								3118,
								3132,
								3130,
								3080,
								3116,
								3178,
								3161,
								3165,
								3124,
								3122,
								3097,
								3140,
								3144,
								3126,
								3077,
								3169,
								3128,
								3174,
								3171,
								3073,
								3138,
								3120,
								3134
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeObject.ts",
							"line": 62,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5521,
							"typeArguments": [
								{
									"type": "reflection",
									"declaration": {
										"id": 3106,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {
											"isExported": true
										},
										"indexSignature": [
											{
												"id": 3107,
												"name": "__index",
												"kind": 8192,
												"kindString": "Index signature",
												"flags": {
													"isExported": true
												},
												"parameters": [
													{
														"id": 3108,
														"name": "key",
														"kind": 32768,
														"kindString": "Parameter",
														"flags": {
															"isExported": true
														},
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										],
										"sources": [
											{
												"fileName": "src/main/model/rt/RealTimeObject.ts",
												"line": 62,
												"character": 52
											}
										]
									}
								}
							],
							"name": "RealTimeElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "reflection",
									"declaration": {
										"id": 3109,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {
											"isExported": true
										},
										"indexSignature": [
											{
												"id": 3110,
												"name": "__index",
												"kind": 8192,
												"kindString": "Index signature",
												"flags": {
													"isExported": true
												},
												"parameters": [
													{
														"id": 3111,
														"name": "key",
														"kind": 32768,
														"kindString": "Parameter",
														"flags": {
															"isExported": true
														},
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										],
										"sources": [
											{
												"fileName": "src/main/model/rt/RealTimeObject.ts",
												"line": 62,
												"character": 52
											}
										]
									}
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 1582,
							"typeArguments": [
								{
									"type": "reflection",
									"declaration": {
										"id": 3192,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {
											"isExported": true
										},
										"indexSignature": [
											{
												"id": 3193,
												"name": "__index",
												"kind": 8192,
												"kindString": "Index signature",
												"flags": {
													"isExported": true
												},
												"parameters": [
													{
														"id": 3194,
														"name": "key",
														"kind": 32768,
														"kindString": "Parameter",
														"flags": {
															"isExported": true
														},
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										],
										"sources": [
											{
												"fileName": "src/main/model/rt/RealTimeObject.ts",
												"line": 63,
												"character": 38
											}
										]
									}
								}
							],
							"name": "RealTimeContainerElement"
						},
						{
							"type": "reference",
							"id": 1324,
							"name": "ObservableObject"
						}
					]
				},
				{
					"id": 2596,
					"name": "RealTimeString",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This is a distributed string that wraps a native javascript `string`.  Most often,\nthese objects are mutated with the [[insert]] and [[remove]] methods which can operate\non either individual characters or substrings.",
						"text": "See [[RealTimeStringEvents]] for the events that can be emitted on remote\nchanges to this object.\n\nConvergence supports two types of\n[references](https://docs.convergence.io/guide/models/references/realtimestring.html)\nunique to [[RealTimeString]]s.  These are useful for rendering remote cursors and\nselections.\n\nSee the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-string.html)\nfor the most common use cases.\n"
					},
					"children": [
						{
							"id": 2597,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A mapping of the events this array could emit to each event's unique name.\nUse this to refer an event name, e.g.",
								"text": "```typescript\nrtStr.on(RealTimeString.Events.INSERT, function listener(e) {\n  // ...\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeString.ts",
									"line": 80,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 2588,
								"name": "RealTimeStringEvents"
							},
							"defaultValue": "ObservableStringEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 5523,
								"name": "RealTimeElement.Events"
							}
						},
						{
							"id": 2676,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2677,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2678,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2679,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2549,
										"name": "ObservableString.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2548,
								"name": "ObservableString.addListener"
							}
						},
						{
							"id": 2701,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2702,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2574,
										"name": "ObservableString.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2573,
								"name": "ObservableString.events"
							}
						},
						{
							"id": 2637,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2638,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1947,
										"name": "RealTimeElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2527,
										"name": "ObservableString.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1947,
								"name": "RealTimeElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2526,
								"name": "ObservableString.id"
							}
						},
						{
							"id": 2620,
							"name": "indexReference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2621,
									"name": "indexReference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates an [IndexReference](LocalIndexReference) anchored to this string. Its index\nis automatically updated on all local and remote changes.",
										"text": "See the [developer guide](https://docs.convergence.io/guide/models/references/realtimestring.html)\nfor more information.\n",
										"returns": "A local index reference anchored to this string\n"
									},
									"parameters": [
										{
											"id": 2622,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a unique name for the reference\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5792,
										"name": "LocalIndexReference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeString.ts",
									"line": 208,
									"character": 23
								}
							]
						},
						{
							"id": 2605,
							"name": "insert",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2606,
									"name": "insert",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Inserts a substring of zero or more characters into this string at the provided\nindex. Subsequent characters are shifted to the right appropriately.",
										"text": "```typescript\nrtString.value() // \"Hello world\"\nrtString.insert(6, 'magical ');\nrtString.value() // \"Hello magical world\"\n```\n\nOn a successful `insert`, a [[StringInsertEvent]] will be emitted to any remote users.\n"
									},
									"parameters": [
										{
											"id": 2607,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the zero-based index at which to being inserting the new `value`"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 2608,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the single character or substring to be inserted\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeString.ts",
									"line": 114,
									"character": 15
								}
							]
						},
						{
							"id": 2651,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2652,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1961,
										"name": "RealTimeElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2539,
										"name": "ObservableString.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1961,
								"name": "RealTimeElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2538,
								"name": "ObservableString.isAttached"
							}
						},
						{
							"id": 2649,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2650,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1959,
										"name": "RealTimeElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2537,
										"name": "ObservableString.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1959,
								"name": "RealTimeElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2536,
								"name": "ObservableString.isDetached"
							}
						},
						{
							"id": 2618,
							"name": "length",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2619,
									"name": "length",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Just like the `string.length` Javascript property. Returns the number of characters\nin this string.",
										"text": "```typescript\nrtString.value() // \"Hello world\"\nrtString.length() // 11\n```\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2525,
										"name": "ObservableString.length"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeString.ts",
									"line": 189,
									"character": 15
								}
							],
							"implementationOf": {
								"type": "reference",
								"id": 2524,
								"name": "ObservableString.length"
							}
						},
						{
							"id": 2635,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2636,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1945,
										"name": "RealTimeElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2543,
										"name": "ObservableString.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1945,
								"name": "RealTimeElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2542,
								"name": "ObservableString.model"
							}
						},
						{
							"id": 2697,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2698,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2699,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2700,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2570,
										"name": "ObservableString.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2569,
								"name": "ObservableString.off"
							}
						},
						{
							"id": 2680,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2681,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2682,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2683,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2553,
										"name": "ObservableString.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2552,
								"name": "ObservableString.on"
							}
						},
						{
							"id": 2684,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2685,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2686,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2687,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2557,
										"name": "ObservableString.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2556,
								"name": "ObservableString.once"
							}
						},
						{
							"id": 2643,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2644,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the parent of this element within the model.",
										"returns": "the parent of this element, or `this` if this is the root element\n"
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"name": "RealTimeContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1953,
										"name": "RealTimeElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2535,
										"name": "ObservableString.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 189,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1953,
								"name": "RealTimeElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2534,
								"name": "ObservableString.parent"
							}
						},
						{
							"id": 2641,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2642,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The [[Path]] representing this element's location in the containing model's data.\nFor instance, with model data",
										"text": "```json\n{\n  user: {\n    age: 32\n  }\n}\n```\n\nThe [[RealTimeNumber]] representing `32` would have path `['user', 'age']`.\n"
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1951,
										"name": "RealTimeElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2531,
										"name": "ObservableString.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 180,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1951,
								"name": "RealTimeElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2530,
								"name": "ObservableString.path"
							}
						},
						{
							"id": 2623,
							"name": "rangeReference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2624,
									"name": "rangeReference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates a [[LocalRangeReference]] bound to this object.  Its index bounds are\nautomatically updated on all local and remote changes.",
										"text": "See the [developer guide](https://docs.convergence.io/guide/models/references/realtimestring.html)\nfor more information.\n",
										"returns": "A local range reference anchored to this string\n"
									},
									"parameters": [
										{
											"id": 2625,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a unique name for the range reference\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5956,
										"name": "LocalRangeReference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeString.ts",
									"line": 241,
									"character": 23
								}
							]
						},
						{
							"id": 2659,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2660,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 2661,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2662,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1969,
										"name": "RealTimeElement.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1969,
								"name": "RealTimeElement.reference"
							}
						},
						{
							"id": 2663,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2664,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 2665,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1973,
										"name": "RealTimeElement.references"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1973,
								"name": "RealTimeElement.references"
							}
						},
						{
							"id": 2645,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2646,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This returns the [[PathElement]] representing this element's location relevant\nto its parent. For example, given a model with contents",
										"text": "```json\n{\n  obj: {\n    with: 1,\n    stuff: ['a', 'string']\n  }\n}\n````\n\n```typescript\nlet rtNumber = rtModel.elementAt(['obj', 'with']);\nrtNumber.value() // 1\nrtNumber.relativePath() // 'with'\n\nlet rtString = rtModel.elementAt(['obj', 'stuff', 0]);\nrtString.value() // 'a'\nrtString.relativePath() // 0\n```\n",
										"returns": "a PathElement representing this node's location relative to its parent,\nor null if it has no parent.\n"
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1955,
										"name": "RealTimeElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2533,
										"name": "ObservableString.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 222,
									"character": 21
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1955,
								"name": "RealTimeElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2532,
								"name": "ObservableString.relativePath"
							}
						},
						{
							"id": 2609,
							"name": "remove",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2610,
									"name": "remove",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes `length` characters from this string, starting at `index`.  Subsequent\ncharacters are left-shifted appropriately.",
										"text": "On a successful `remove`, a [[StringRemoveEvent]] will be emitted to any remote users.\n\n```typescript\nrtString.value() // \"Hello world\"\nrtString.remove(0, 6);\nrtString.value() // \"world\"\n```\n"
									},
									"parameters": [
										{
											"id": 2611,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the zero-based index at which to start removing characters"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 2612,
											"name": "length",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the number of characters to remove\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeString.ts",
									"line": 134,
									"character": 15
								}
							]
						},
						{
							"id": 2688,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2689,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2561,
										"name": "ObservableString.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2560,
								"name": "ObservableString.removeAllListeners"
							}
						},
						{
							"id": 2647,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2648,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "A convenience function to delete this element. Throws an error if this is\nthe root object in a model."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1957,
										"name": "RealTimeElement.removeFromParent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 235,
									"character": 25
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1957,
								"name": "RealTimeElement.removeFromParent"
							}
						},
						{
							"id": 2693,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2694,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2695,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2696,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2566,
										"name": "ObservableString.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2565,
								"name": "ObservableString.removeListener"
							}
						},
						{
							"id": 2690,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2691,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2692,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2563,
										"name": "ObservableString.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2562,
								"name": "ObservableString.removeListeners"
							}
						},
						{
							"id": 2613,
							"name": "splice",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2614,
									"name": "splice",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Replaces a portion of the string with a new value at `index`. The splice\nmethod will remove `deleteCount` characters at `index` (inclusive) and then\ninsert `insertValue` at `index`.Subsequent characters are shifted left or right\nbased on if more characters are inserted or removed.",
										"text": "Note that it is possible to perform a remove, without inserting a new value.\nLikewise, it is possible to insert a new string without removing any\nexisting characters.  In this way, splice can be used to model both an\ninsert and a remove.  The `insert` and `remove` methods are provide a\nsimplifications.\n\nOn a successful `splice`, one of three events will be emitted base on how\nthe method was called (and the effect change that will be made to the string\nafter any remote conflicts are resolved) as follows:\n\n1. A [[StringInsertEvent]] will be emitted to any remote users if\n   `deleteCount` equals 0 and `insertValue` is a non-empty string.\n2. A [[StringRemoveEvent]] will be emitted to any remote users if\n   `deleteCount` is greater than zero and `insertValue` is an\n   empty string.\n3. A [[StringSpliceEvent]] will be emitted to any remote users if\n   `deleteCount` is greater than zero and `insertValue` is non-\n   empty string.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\nconsole.log(rtString.value());      // \"Hello world\"\nrtString.splice(6, 5, \"everyone\");\nconsole.log(rtString.value());      // \"Hello everyone\"\n```\n"
											}
										]
									},
									"parameters": [
										{
											"id": 2615,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the zero-based index at which to start removing characters"
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 2616,
											"name": "deleteCount",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the number of characters to remove in the current string."
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										},
										{
											"id": 2617,
											"name": "insertValue",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The value to insert at the index.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeString.ts",
									"line": 175,
									"character": 15
								}
							]
						},
						{
							"id": 2657,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2658,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1967,
										"name": "RealTimeElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2545,
										"name": "ObservableString.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1967,
								"name": "RealTimeElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2544,
								"name": "ObservableString.toJSON"
							}
						},
						{
							"id": 2639,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2640,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1949,
										"name": "RealTimeElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2529,
										"name": "ObservableString.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1949,
								"name": "RealTimeElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2528,
								"name": "ObservableString.type"
							}
						},
						{
							"id": 2653,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2654,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2541,
										"name": "ObservableString.value"
									}
								},
								{
									"id": 2655,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 2656,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1963,
								"name": "RealTimeElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2540,
								"name": "ObservableString.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								2597
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2676,
								2701,
								2637,
								2620,
								2605,
								2651,
								2649,
								2618,
								2635,
								2697,
								2680,
								2684,
								2643,
								2641,
								2623,
								2659,
								2663,
								2645,
								2609,
								2688,
								2647,
								2693,
								2690,
								2613,
								2657,
								2639,
								2653
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeString.ts",
							"line": 68,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5521,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "string"
								}
							],
							"name": "RealTimeElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "string"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2523,
							"name": "ObservableString"
						}
					]
				},
				{
					"id": 2782,
					"name": "RealTimeUndefined",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This is a convenience object that represents the absence of a value.  These\nare not actually part of the model, but can be returned in instances where\nthe requested element does not exist.",
						"text": "More information is in the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-undefined.html).\n"
					},
					"children": [
						{
							"id": 2783,
							"name": "Events",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeUndefined.ts",
									"line": 48,
									"character": 31
								}
							],
							"type": {
								"type": "reference",
								"id": 2777,
								"name": "RealTimeUndefinedEvents"
							},
							"defaultValue": "ObservableUndefinedEventConstants",
							"overwrites": {
								"type": "reference",
								"id": 5523,
								"name": "RealTimeElement.Events"
							}
						},
						{
							"id": 2842,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2843,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2844,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2845,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2741,
										"name": "ObservableUndefined.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2740,
								"name": "ObservableUndefined.addListener"
							}
						},
						{
							"id": 2867,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2868,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2766,
										"name": "ObservableUndefined.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2765,
								"name": "ObservableUndefined.events"
							}
						},
						{
							"id": 2811,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2812,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Each node within a [[RealTimeModel]] has a system-generated ID that is unique\nwithin this model's contents.",
										"returns": "a unique (to the model) ID for this element\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1947,
										"name": "RealTimeElement.id"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2719,
										"name": "ObservableUndefined.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 155,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1947,
								"name": "RealTimeElement.id"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2718,
								"name": "ObservableUndefined.id"
							}
						},
						{
							"id": 2817,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2818,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is currently set up to synchronize with the server."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1961,
										"name": "RealTimeElement.isAttached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2731,
										"name": "ObservableUndefined.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 260,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1961,
								"name": "RealTimeElement.isAttached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2730,
								"name": "ObservableUndefined.isAttached"
							}
						},
						{
							"id": 2815,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2816,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "True if the element is no longer synchronizing with the server.  See the\n[developer guide](https://docs.convergence.io/guide/models/data/real-time-elements.html)\nfor more information."
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1959,
										"name": "RealTimeElement.isDetached"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2729,
										"name": "ObservableUndefined.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 253,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1959,
								"name": "RealTimeElement.isDetached"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2728,
								"name": "ObservableUndefined.isDetached"
							}
						},
						{
							"id": 2809,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2810,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the model to which this element belongs."
									},
									"type": {
										"type": "reference",
										"id": 5183,
										"name": "RealTimeModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1945,
										"name": "RealTimeElement.model"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2735,
										"name": "ObservableUndefined.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 145,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1945,
								"name": "RealTimeElement.model"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2734,
								"name": "ObservableUndefined.model"
							}
						},
						{
							"id": 2863,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2864,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2865,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2866,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2762,
										"name": "ObservableUndefined.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2761,
								"name": "ObservableUndefined.off"
							}
						},
						{
							"id": 2846,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2847,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2848,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2849,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2745,
										"name": "ObservableUndefined.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2744,
								"name": "ObservableUndefined.on"
							}
						},
						{
							"id": 2850,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2851,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2852,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2853,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2749,
										"name": "ObservableUndefined.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2748,
								"name": "ObservableUndefined.once"
							}
						},
						{
							"id": 2795,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2796,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1582,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "RealTimeContainerElement"
									},
									"overwrites": {
										"type": "reference",
										"id": 1953,
										"name": "RealTimeElement.parent"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2727,
										"name": "ObservableUndefined.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeUndefined.ts",
									"line": 72,
									"character": 15
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 1953,
								"name": "RealTimeElement.parent"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2726,
								"name": "ObservableUndefined.parent"
							}
						},
						{
							"id": 2791,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2792,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"overwrites": {
										"type": "reference",
										"id": 1951,
										"name": "RealTimeElement.path"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2723,
										"name": "ObservableUndefined.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeUndefined.ts",
									"line": 64,
									"character": 13
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 1951,
								"name": "RealTimeElement.path"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2722,
								"name": "ObservableUndefined.path"
							}
						},
						{
							"id": 2825,
							"name": "reference",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2826,
									"name": "reference",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the remote [[ModelReference]] created by the given `sessionId` with\nthe unique name `key`, or `undefined` if no such reference exists.",
										"text": "See [Remote References](https://docs.convergence.io/guide/models/references/remote-references.html)\nin the developer guide.\n"
									},
									"parameters": [
										{
											"id": 2827,
											"name": "sessionId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The session ID that created the reference"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2828,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the reference's unique key\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3280,
										"name": "ModelReference"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1969,
										"name": "RealTimeElement.reference"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 315,
									"character": 18
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1969,
								"name": "RealTimeElement.reference"
							}
						},
						{
							"id": 2829,
							"name": "references",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2830,
									"name": "references",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns any remote references that match the given filter.  You can provide\na single `key` which could return references from multiple users, `sessionId`\nwhich would return all of a particular user session's references, or both,\nwhich is really just the same as using the [[reference]] method.",
										"returns": "An array of remote [[ModelReference]]s, or an empty array if there\nwere no matches.\n"
									},
									"parameters": [
										{
											"id": 2831,
											"name": "referenceFilter",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isOptional": true
											},
											"comment": {
												"text": "an object containing either a `sessionId`, `key`, or both\n"
											},
											"type": {
												"type": "reference",
												"id": 3377,
												"name": "ReferenceFilter"
											}
										}
									],
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 3280,
											"name": "ModelReference"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1973,
										"name": "RealTimeElement.references"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 330,
									"character": 19
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1973,
								"name": "RealTimeElement.references"
							}
						},
						{
							"id": 2793,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2794,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"overwrites": {
										"type": "reference",
										"id": 1955,
										"name": "RealTimeElement.relativePath"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2725,
										"name": "ObservableUndefined.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeUndefined.ts",
									"line": 68,
									"character": 21
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 1955,
								"name": "RealTimeElement.relativePath"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2724,
								"name": "ObservableUndefined.relativePath"
							}
						},
						{
							"id": 2854,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2855,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2753,
										"name": "ObservableUndefined.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2752,
								"name": "ObservableUndefined.removeAllListeners"
							}
						},
						{
							"id": 2797,
							"name": "removeFromParent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2798,
									"name": "removeFromParent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"overwrites": {
										"type": "reference",
										"id": 1957,
										"name": "RealTimeElement.removeFromParent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeUndefined.ts",
									"line": 76,
									"character": 25
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 1957,
								"name": "RealTimeElement.removeFromParent"
							}
						},
						{
							"id": 2859,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2860,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2861,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2862,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2758,
										"name": "ObservableUndefined.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2757,
								"name": "ObservableUndefined.removeListener"
							}
						},
						{
							"id": 2856,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2857,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2858,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2755,
										"name": "ObservableUndefined.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2754,
								"name": "ObservableUndefined.removeListeners"
							}
						},
						{
							"id": 2823,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2824,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a JSON-compatible representation of this element."
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1967,
										"name": "RealTimeElement.toJSON"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2737,
										"name": "ObservableUndefined.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 301,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1967,
								"name": "RealTimeElement.toJSON"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2736,
								"name": "ObservableUndefined.toJSON"
							}
						},
						{
							"id": 2813,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2814,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This element's type.  See [[ModelElementType]] for an enumeration of types."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1949,
										"name": "RealTimeElement.type"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2721,
										"name": "ObservableUndefined.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 162,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1949,
								"name": "RealTimeElement.type"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2720,
								"name": "ObservableUndefined.type"
							}
						},
						{
							"id": 2819,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2820,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns the current underlying value of this element.  Note that the return value\nwill not be kept up to date automatically; rather, this function will need to\nbe called each time the most up-to-date value is required."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									},
									"implementationOf": {
										"type": "reference",
										"id": 2733,
										"name": "ObservableUndefined.value"
									}
								},
								{
									"id": 2821,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets the value of this element, whose type must be the underlying type of this\nobject.",
										"text": "On a successful `value` call, the appropriate [[IValueChangedEvent]] will be emitted\nto any remote users. This will be one of:\n\n* [[ArraySetValueEvent]]\n* [[BooleanSetValueEvent]]\n* [[DateSetValueEvent]]\n* [[NumberSetValueEvent]]\n* [[ObjectSetValueEvent]]\n* [[StringSetValueEvent]]\n"
									},
									"parameters": [
										{
											"id": 2822,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the new value for this object.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "void"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1963,
										"name": "RealTimeElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 269,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 287,
									"character": 14
								},
								{
									"fileName": "src/main/model/rt/RealTimeElement.ts",
									"line": 288,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1963,
								"name": "RealTimeElement.value"
							},
							"implementationOf": {
								"type": "reference",
								"id": 2732,
								"name": "ObservableUndefined.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								2783
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2842,
								2867,
								2811,
								2817,
								2815,
								2809,
								2863,
								2846,
								2850,
								2795,
								2791,
								2825,
								2829,
								2793,
								2854,
								2797,
								2859,
								2856,
								2823,
								2813,
								2819
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeUndefined.ts",
							"line": 46,
							"character": 30
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5521,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "RealTimeElement"
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "ObservableElement"
						},
						{
							"type": "reference",
							"id": 2717,
							"name": "ObservableUndefined"
						}
					]
				},
				{
					"id": 3214,
					"name": "ReferenceClearedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ModelReference]]'s value is explicitly cleared."
					},
					"typeParameter": [
						{
							"id": 3215,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 3219,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 3222,
									"name": "new ReferenceClearedEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 3223,
											"name": "src",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 3280,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "ModelReference"
											}
										},
										{
											"id": 3224,
											"name": "oldValues",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "typeParameter",
													"name": "T"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3214,
										"name": "ReferenceClearedEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceClearedEvent.ts",
									"line": 34,
									"character": 30
								}
							]
						},
						{
							"id": 3217,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceClearedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ReferenceClearedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 3218,
							"name": "oldValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The first previous value (if there were multiple) of the reference."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceClearedEvent.ts",
									"line": 34,
									"character": 26
								}
							],
							"type": {
								"type": "typeParameter",
								"name": "T"
							}
						},
						{
							"id": 3221,
							"name": "oldValues",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The previous values of the reference."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceClearedEvent.ts",
									"line": 45,
									"character": 29
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "typeParameter",
									"name": "T"
								}
							}
						},
						{
							"id": 3220,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The underlying reference that was cleared."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceClearedEvent.ts",
									"line": 40,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 3280,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ModelReference"
							}
						},
						{
							"id": 3216,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceClearedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "cleared"
							},
							"defaultValue": "\"cleared\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								3219
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3217,
								3218,
								3221,
								3220,
								3216
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/events/ReferenceClearedEvent.ts",
							"line": 23,
							"character": 34
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 3226,
					"name": "ReferenceDisposedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ModelReference]] is disposed."
					},
					"children": [
						{
							"id": 3229,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 3231,
									"name": "new ReferenceDisposedEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 3232,
											"name": "src",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 3280,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "ModelReference"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3226,
										"name": "ReferenceDisposedEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceDisposedEvent.ts",
									"line": 29,
									"character": 61
								}
							]
						},
						{
							"id": 3228,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceDisposedEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ReferenceDisposedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 3230,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The underlying reference that was disposed."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceDisposedEvent.ts",
									"line": 35,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 3280,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ModelReference"
							}
						},
						{
							"id": 3227,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceDisposedEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "disposed"
							},
							"defaultValue": "\"disposed\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								3229
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3228,
								3230,
								3227
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/events/ReferenceDisposedEvent.ts",
							"line": 23,
							"character": 35
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 3196,
					"name": "ReferenceSetEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[ModelReference]]'s value is set."
					},
					"typeParameter": [
						{
							"id": 3197,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 3201,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 3207,
									"name": "new ReferenceSetEvent",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 3208,
											"name": "src",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 3280,
												"typeArguments": [
													{
														"type": "intrinsic",
														"name": "any"
													}
												],
												"name": "ModelReference"
											}
										},
										{
											"id": 3209,
											"name": "oldValues",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "typeParameter",
													"name": "T"
												}
											}
										},
										{
											"id": 3210,
											"name": "addedValues",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "typeParameter",
													"name": "T"
												}
											}
										},
										{
											"id": 3211,
											"name": "removedValues",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "typeParameter",
													"name": "T"
												}
											}
										},
										{
											"id": 3212,
											"name": "synthetic",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "boolean"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 3196,
										"name": "ReferenceSetEvent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 34,
									"character": 30
								}
							]
						},
						{
							"id": 3204,
							"name": "addedValues",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "All newly-added values. That is, values that were not in the set of old values."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 50,
									"character": 31
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "typeParameter",
									"name": "T"
								}
							}
						},
						{
							"id": 3199,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 29,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ReferenceSetEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 3200,
							"name": "oldValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The first (if there were multiple) previous value of the reference."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 34,
									"character": 26
								}
							],
							"type": {
								"type": "typeParameter",
								"name": "T"
							}
						},
						{
							"id": 3203,
							"name": "oldValues",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The previous values of the reference."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 45,
									"character": 29
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "typeParameter",
									"name": "T"
								}
							}
						},
						{
							"id": 3205,
							"name": "removedValues",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "All just-removed values.  That is, old values not in the set of new values."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 55,
									"character": 33
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "typeParameter",
									"name": "T"
								}
							}
						},
						{
							"id": 3202,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The underlying reference that changed."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 40,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 3280,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ModelReference"
							}
						},
						{
							"id": 3206,
							"name": "synthetic",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "true if this event was emitted by the system, as opposed to an explicit e.g.\n[[LocalModelReference.set]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 61,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 3198,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
									"line": 24,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "set"
							},
							"defaultValue": "\"set\""
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								3201
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3204,
								3199,
								3200,
								3203,
								3205,
								3202,
								3206,
								3198
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/events/ReferenceSetEvent.ts",
							"line": 23,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4309,
					"name": "RemoteReferenceCreatedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[RemoteReferenceCreatedEvent]] is fired by an [[ObservableModel]] when\na remote reference is created."
					},
					"children": [
						{
							"id": 4315,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The element to which this reference is bound to, or `undefined` if it is not yet bound"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteReferenceCreatedEvent.ts",
									"line": 55,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 5521,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "RealTimeElement"
							}
						},
						{
							"id": 4314,
							"name": "model",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteReferenceCreatedEvent.ts",
									"line": 50,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							}
						},
						{
							"id": 4311,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteReferenceCreatedEvent.ts",
									"line": 31,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "RemoteReferenceCreatedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4313,
							"name": "reference",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The reference that was just created"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteReferenceCreatedEvent.ts",
									"line": 45,
									"character": 29
								}
							],
							"type": {
								"type": "reference",
								"id": 3280,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ModelReference"
							}
						},
						{
							"id": 4310,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteReferenceCreatedEvent.ts",
									"line": 26,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "reference"
							},
							"defaultValue": "\"reference\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4315,
								4314,
								4311,
								4313,
								4310
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/RemoteReferenceCreatedEvent.ts",
							"line": 25,
							"character": 40
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4333,
					"name": "RemoteResyncCompletedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[RemoteResyncCompletedEvent]] is fired when a remote client has\ncompleted a resynchronization process after being offline.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4337,
							"name": "model",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model for which the remote client has completed a resync."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncCompletedEvent.ts",
									"line": 43,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							}
						},
						{
							"id": 4335,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncCompletedEvent.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "RemoteResyncCompletedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4338,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the remote client."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncCompletedEvent.ts",
									"line": 47,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4339,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user of the remote client."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncCompletedEvent.ts",
									"line": 51,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 4334,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncCompletedEvent.ts",
									"line": 28,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "remote_resync_completed"
							},
							"defaultValue": "\"remote_resync_completed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4337,
								4335,
								4338,
								4339,
								4334
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/RemoteResyncCompletedEvent.ts",
							"line": 27,
							"character": 39
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4321,
					"name": "RemoteResyncStartedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[RemoteResyncStartedEvent]] is fired when a remote client has\nstarted a resynchronization process after being offline.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4325,
							"name": "model",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The model for which the remote client has started a resync."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncStartedEvent.ts",
									"line": 43,
									"character": 25
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							}
						},
						{
							"id": 4323,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncStartedEvent.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "RemoteResyncStartedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 4326,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The session id of the remote client."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncStartedEvent.ts",
									"line": 48,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4327,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user of the remote client."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncStartedEvent.ts",
									"line": 53,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						},
						{
							"id": 4322,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/RemoteResyncStartedEvent.ts",
									"line": 28,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "remote_resync_started"
							},
							"defaultValue": "\"remote_resync_started\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4325,
								4323,
								4326,
								4327,
								4322
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/RemoteResyncStartedEvent.ts",
							"line": 27,
							"character": 37
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					]
				},
				{
					"id": 4291,
					"name": "ResyncCompletedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] reconnects to the server and when the\nresynchronization process completes.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"children": [
						{
							"id": 4293,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of this event type.  This can be used to filter when using the\n[[ConvergenceEventEmitter.events]] stream."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncCompletedEvent.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ResyncCompletedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4295,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] that just completed the resync"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncCompletedEvent.ts",
									"line": 43,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4292,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncCompletedEvent.ts",
									"line": 27,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "resync_completed"
							},
							"defaultValue": "\"resync_completed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4293,
								4295,
								4292
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ResyncCompletedEvent.ts",
							"line": 26,
							"character": 33
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4299,
					"name": "ResyncErrorEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] reconnects to the server and when the\nresynchronization process starts."
					},
					"children": [
						{
							"id": 4304,
							"name": "message",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "A message describing the error."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncErrorEvent.ts",
									"line": 47,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4301,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of this event type.  This can be used to filter when using the\n[[ConvergenceEventEmitter.events]] stream.",
								"tags": [
									{
										"tag": "experimental",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncErrorEvent.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ResyncErrorEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4303,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] that encountered the resync error."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncErrorEvent.ts",
									"line": 43,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4300,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncErrorEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "resync_error"
							},
							"defaultValue": "\"resync_error\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4304,
								4301,
								4303,
								4300
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ResyncErrorEvent.ts",
							"line": 24,
							"character": 29
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4283,
					"name": "ResyncStartedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]] reconnects to the server and when the\nresynchronization process starts."
					},
					"children": [
						{
							"id": 4285,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of this event type.  This can be used to filter when using the\n[[ConvergenceEventEmitter.events]] stream.",
								"tags": [
									{
										"tag": "experimentals",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncStartedEvent.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ResyncStartedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4287,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] that started to resync"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncStartedEvent.ts",
									"line": 43,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 5183,
								"name": "RealTimeModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4284,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/ResyncStartedEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "resync_started"
							},
							"defaultValue": "\"resync_started\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4285,
								4287,
								4284
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/ResyncStartedEvent.ts",
							"line": 24,
							"character": 31
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 4093,
					"name": "StringInsertEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when one or more characters are added to a [[RealTimeString]]."
					},
					"children": [
						{
							"id": 4097,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeString]] or [[HistoricalString]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringInsertEvent.ts",
									"line": 47,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 2523,
								"name": "ObservableString"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4101,
							"name": "index",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The index at which the insertion happened"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringInsertEvent.ts",
									"line": 67,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4100,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringInsertEvent.ts",
									"line": 62,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4095,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringInsertEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "StringInsertEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4099,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringInsertEvent.ts",
									"line": 57,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4098,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringInsertEvent.ts",
									"line": 52,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4102,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The substring that was inserted"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringInsertEvent.ts",
									"line": 72,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4094,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringInsertEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "insert"
							},
							"defaultValue": "\"insert\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4097,
								4101,
								4100,
								4095,
								4099,
								4098,
								4102,
								4094
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/StringInsertEvent.ts",
							"line": 24,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4111,
					"name": "StringRemoveEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when one or more characters were removed from a [[RealTimeString]].\nSee [[RealTimeString.remove]]",
						"text": "In this example, note the properties that get printed out in the event subscription:\n\n```typescript\nmodel.emitLocalEvents(true);\n\nlet rtStr = model.elementAt('foo');\nrtStr.value() // \"bar\"\n\nrtStr.events().subscribe(function(e) {\n  console.log('event name:', e.name);\n  console.log('event local?', e.local);\n  console.log('removed at index', e.index);\n  console.log('removed value:', e.value);\n});\n\nrtStr.remove(1, 2);\n// event name: \"remove\"\n// event local? true\n// removed at index 1\n// removed value: \"ar\"\n```\n"
					},
					"children": [
						{
							"id": 4115,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeString]] or [[HistoricalString]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringRemoveEvent.ts",
									"line": 70,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 2523,
								"name": "ObservableString"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4119,
							"name": "index",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The index at which the character(s) were removed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringRemoveEvent.ts",
									"line": 90,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4118,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringRemoveEvent.ts",
									"line": 85,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4113,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringRemoveEvent.ts",
									"line": 53,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "StringRemoveEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4117,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringRemoveEvent.ts",
									"line": 80,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4116,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringRemoveEvent.ts",
									"line": 75,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4120,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The actual substring that was removed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringRemoveEvent.ts",
									"line": 95,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4112,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringRemoveEvent.ts",
									"line": 48,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "remove"
							},
							"defaultValue": "\"remove\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4115,
								4119,
								4118,
								4113,
								4117,
								4116,
								4120,
								4112
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/StringRemoveEvent.ts",
							"line": 47,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4149,
					"name": "StringSetValueEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when the [[RealTimeString.value]] of a [[RealTimeString]] is set."
					},
					"children": [
						{
							"id": 4153,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeString]] or [[HistoricalString]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSetValueEvent.ts",
									"line": 45,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 2523,
								"name": "ObservableString"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4156,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSetValueEvent.ts",
									"line": 60,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4151,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSetValueEvent.ts",
									"line": 30,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "StringSetValueEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4155,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSetValueEvent.ts",
									"line": 55,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4154,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSetValueEvent.ts",
									"line": 50,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4150,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSetValueEvent.ts",
									"line": 25,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "value"
							},
							"defaultValue": "\"value\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4153,
								4156,
								4151,
								4155,
								4154,
								4150
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/StringSetValueEvent.ts",
							"line": 24,
							"character": 32
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4129,
					"name": "StringSpliceEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a portion a [[RealTimeString]] we replaced.",
						"text": "See [[RealTimeString.splice]]\n\nIn this example, note the properties that get printed out in the event subscription:\n\n```typescript\nmodel.emitLocalEvents(true);\n\nlet rtStr = model.elementAt('hello world');\nconsole.log(rtStr.value()); // \"hello world\"\n\nrtStr.events().subscribe(function(e) {\n  console.log('event name:', e.name);\n  console.log('event local:', e.local);\n  console.log('splice index:', e.index);\n  console.log('delete count:', e.deleteCount);\n  console.log('inserted value:', e.insertValue);\n});\n\nrtStr.splice(6, 5, \"everyone\");\n// event name: \"splice\"\n// event local: true\n// splice at index: 1\n// delete count: 5\n// inserted value: \"everyone\"\n```\n"
					},
					"children": [
						{
							"id": 4138,
							"name": "deleteCount",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The the number of characters from the string that\nwere removed, if any."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 95,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4133,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeString]] or [[HistoricalString]] which was modified"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 74,
									"character": 27
								}
							],
							"type": {
								"type": "reference",
								"id": 2523,
								"name": "ObservableString"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3891,
								"name": "IValueChangedEvent.element"
							}
						},
						{
							"id": 4137,
							"name": "index",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The index at which the character(s) were removed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 90,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4139,
							"name": "insertValue",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The value that was inserted into the string at\nthe index, if any."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 100,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 4136,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 86,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3892,
								"name": "IValueChangedEvent.local"
							}
						},
						{
							"id": 4131,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 56,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "StringSpliceEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3893,
								"name": "IValueChangedEvent.name"
							}
						},
						{
							"id": 4135,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 82,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3890,
								"name": "IValueChangedEvent.sessionId"
							}
						},
						{
							"id": 4134,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 78,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3889,
								"name": "IValueChangedEvent.user"
							}
						},
						{
							"id": 4130,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/StringSpliceEvent.ts",
									"line": 51,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "splice"
							},
							"defaultValue": "\"splice\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4138,
								4133,
								4137,
								4139,
								4136,
								4131,
								4135,
								4134,
								4130
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/StringSpliceEvent.ts",
							"line": 50,
							"character": 30
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					]
				},
				{
					"id": 4249,
					"name": "VersionChangedEvent",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Emitted when a [[RealTimeModel]]'s version changes.  Subscribe to this directly\non a [[RealTimeModel]] rather than a [[RealTimeElement]] within.",
						"text": "Note that on a local change, this won't be fired until the version is updated on the\nserver and a response message sent back to the client.\n"
					},
					"children": [
						{
							"id": 4251,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/VersionChangedEvent.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "VersionChangedEvent.NAME",
							"implementationOf": {
								"type": "reference",
								"id": 3881,
								"name": "IModelEvent.name"
							}
						},
						{
							"id": 4253,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] or [[HistoricalModel]] whose version just changed"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/VersionChangedEvent.ts",
									"line": 46,
									"character": 23
								}
							],
							"type": {
								"type": "reference",
								"id": 1416,
								"name": "ObservableModel"
							},
							"implementationOf": {
								"type": "reference",
								"id": 3880,
								"name": "IModelEvent.src"
							}
						},
						{
							"id": 4254,
							"name": "version",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/VersionChangedEvent.ts",
									"line": 51,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 4250,
							"name": "NAME",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/events/VersionChangedEvent.ts",
									"line": 28,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "version_changed"
							},
							"defaultValue": "\"version_changed\""
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4251,
								4253,
								4254,
								4250
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/VersionChangedEvent.ts",
							"line": 27,
							"character": 32
						}
					],
					"implementedTypes": [
						{
							"type": "reference",
							"id": 3879,
							"name": "IModelEvent"
						}
					]
				},
				{
					"id": 6829,
					"name": "HistoricalArrayEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6835,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6830,
							"name": "INSERT",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a new value is [[RealTimeArray.insert|insert]]ed into a [[RealTimeArray]].\nThe emitted event is an [[ArrayInsertEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 30,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1651,
								"name": "ObservableArrayEvents.INSERT"
							}
						},
						{
							"id": 6836,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6837,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6831,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when an existing value is [[RealTimeArray.remove|removed]] from a [[RealTimeArray]].\nSee [[ArrayRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 38,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1652,
								"name": "ObservableArrayEvents.REMOVE"
							}
						},
						{
							"id": 6833,
							"name": "REORDER",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeArray.reorder|ordering]] of a [[RealTimeArray]] changes.\nSee [[ArrayReorderEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 54,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1654,
								"name": "ObservableArrayEvents.REORDER"
							}
						},
						{
							"id": 6832,
							"name": "SET",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a value is [[RealTimeArray.set|set]] on an [[RealTimeArray]].\nSee [[ArraySetEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 46,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1653,
								"name": "ObservableArrayEvents.SET"
							}
						},
						{
							"id": 6834,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeArray.value|value]] of a [[RealTimeArray]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[ArraySetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 63,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1655,
								"name": "ObservableArrayEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6835,
								6830,
								6836,
								6837,
								6831,
								6833,
								6832,
								6834
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalArray.ts",
							"line": 26,
							"character": 38
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1650,
							"name": "ObservableArrayEvents"
						}
					]
				},
				{
					"id": 6319,
					"name": "HistoricalBooleanEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6321,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6322,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6323,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6320,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeBoolean.value|value]] of a [[RealTimeBoolean]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[BooleanSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableBoolean.ts",
									"line": 31,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2020,
								"name": "ObservableBooleanEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6321,
								6322,
								6323,
								6320
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalBoolean.ts",
							"line": 28,
							"character": 40
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2019,
							"name": "ObservableBooleanEvents"
						}
					]
				},
				{
					"id": 6057,
					"name": "HistoricalContainerElement",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An abstraction representing a unified type for an [[HistoricalObject]] and [[HistoricalArray]]."
					},
					"typeParameter": [
						{
							"id": 6058,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 6086,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6087,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6088,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6089,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 6059,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6060,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "See [[HistoricalModel.elementAt]]"
									},
									"parameters": [
										{
											"id": 6061,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the query instructions leading to the desired element\n"
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									},
									"overwrites": {
										"type": "reference",
										"id": 1346,
										"name": "ObservableContainerElement.elementAt"
									}
								},
								{
									"id": 6062,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 6063,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 6762,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "HistoricalElement"
									},
									"overwrites": {
										"type": "reference",
										"id": 1346,
										"name": "ObservableContainerElement.elementAt"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalContainerElement.ts",
									"line": 30,
									"character": 11
								},
								{
									"fileName": "src/main/model/historical/HistoricalContainerElement.ts",
									"line": 31,
									"character": 11
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 1346,
								"name": "ObservableContainerElement.elementAt"
							}
						},
						{
							"id": 6111,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6112,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 6064,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6065,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 6076,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6077,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 6074,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6075,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 6080,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6081,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 6107,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6108,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6109,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6110,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 6090,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6091,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6092,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6093,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 6094,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6095,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6096,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6097,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 6072,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6073,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 6068,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6069,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 6070,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6071,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 6098,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6099,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 6103,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6104,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6105,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 6106,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 6100,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 6101,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 6102,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 6082,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6083,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 6066,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6067,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 6078,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 6079,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "typeParameter",
										"name": "T"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								6086,
								6059,
								6111,
								6064,
								6076,
								6074,
								6080,
								6107,
								6090,
								6094,
								6072,
								6068,
								6070,
								6098,
								6103,
								6100,
								6082,
								6066,
								6078
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalContainerElement.ts",
							"line": 24,
							"character": 43
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1517,
							"typeArguments": [
								{
									"type": "typeParameter",
									"name": "T"
								}
							],
							"name": "ObservableContainerElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6838,
							"name": "HistoricalArray"
						},
						{
							"type": "reference",
							"id": 6225,
							"name": "HistoricalObject"
						}
					]
				},
				{
					"id": 6675,
					"name": "HistoricalDateEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6677,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6678,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6679,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6676,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeDate.value|value]] of a [[RealTimeDate]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[DateSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableDate.ts",
									"line": 31,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2879,
								"name": "ObservableDateEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6677,
								6678,
								6679,
								6676
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalDate.ts",
							"line": 28,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2878,
							"name": "ObservableDateEvents"
						}
					]
				},
				{
					"id": 6757,
					"name": "HistoricalElementEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6759,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6760,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6761,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6758,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6759,
								6760,
								6761,
								6758
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalElement.ts",
							"line": 31,
							"character": 40
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					]
				},
				{
					"id": 6127,
					"name": "HistoricalModelEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6131,
							"name": "CLOSED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a model is closed locally. The actual event emitted is a [[ModelClosedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 30,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1413,
								"name": "ObservableModelEvents.CLOSED"
							}
						},
						{
							"id": 6132,
							"name": "DELETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a model is deleted. The actual event emitted is a [[ModelDeletedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 37,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1414,
								"name": "ObservableModelEvents.DELETED"
							}
						},
						{
							"id": 6133,
							"name": "VERSION_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the version of this model changes.  This could happen from\na local or remote change to this model. The actual emitted event is a [[VersionChangedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 45,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1415,
								"name": "ObservableModelEvents.VERSION_CHANGED"
							}
						},
						{
							"id": 6128,
							"name": "TARGET_VERSION_CHANGED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 47,
									"character": 33
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 6130,
							"name": "TRANSITION_END",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 49,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 6129,
							"name": "TRANSITION_START",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/historical/HistoricalModel.ts",
									"line": 48,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6131,
								6132,
								6133
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6128,
								6130,
								6129
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalModel.ts",
							"line": 46,
							"character": 38
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1412,
							"name": "ObservableModelEvents"
						}
					]
				},
				{
					"id": 6389,
					"name": "HistoricalNullEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6391,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6392,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6393,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6390,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6391,
								6392,
								6393,
								6390
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalNull.ts",
							"line": 28,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2179,
							"name": "ObservableNullEvents"
						}
					]
				},
				{
					"id": 6459,
					"name": "HistoricalNumberEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6460,
							"name": "DELTA",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the value of this number changes\n(but not explicitly set, listen to [[RealTimeNumberEvents.VALUE]] for that).\nThe emitted event is an [[NumberDeltaEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableNumber.ts",
									"line": 30,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2343,
								"name": "ObservableNumberEvents.DELTA"
							}
						},
						{
							"id": 6462,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6463,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6464,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6461,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeNumber.value|value]] of a [[RealTimeNumber]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[NumberSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableNumber.ts",
									"line": 39,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2344,
								"name": "ObservableNumberEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6460,
								6462,
								6463,
								6464,
								6461
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalNumber.ts",
							"line": 28,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2342,
							"name": "ObservableNumberEvents"
						}
					]
				},
				{
					"id": 6218,
					"name": "HistoricalObjectEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6222,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6223,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6224,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6220,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a key-value pair is [[RealTimeObject.remove|removed]] from a [[RealTimeObject]].\nSee [[ObjectRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 38,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1319,
								"name": "ObservableObjectEvents.REMOVE"
							}
						},
						{
							"id": 6219,
							"name": "SET",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a value is [[RealTimeObject.set|initially set or replaced]] on a [[RealTimeObject]].\nSee [[ObjectSetEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 30,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1318,
								"name": "ObservableObjectEvents.SET"
							}
						},
						{
							"id": 6221,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeObject.value|value]] of a [[RealTimeObject]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[ObjectSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 47,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1320,
								"name": "ObservableObjectEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6222,
								6223,
								6224,
								6220,
								6219,
								6221
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalObject.ts",
							"line": 30,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1317,
							"name": "ObservableObjectEvents"
						}
					]
				},
				{
					"id": 6530,
					"name": "HistoricalStringEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6535,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6531,
							"name": "INSERT",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when zero or more characters are [[RealTimeString.insert|inserted]] into a [[RealTimeString]].\nSee [[StringInsertEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 29,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2516,
								"name": "ObservableStringEvents.INSERT"
							}
						},
						{
							"id": 6536,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6537,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6532,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when characters are [[RealTimeString.remove|removed]] on a [[RealTimeString]].\nSee [[StringRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 37,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2517,
								"name": "ObservableStringEvents.REMOVE"
							}
						},
						{
							"id": 6533,
							"name": "SPLICE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when characters are [[RealTimeString.splice|spliced]] on a [[RealTimeString]].\nSee [[StringSpliceEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 45,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2518,
								"name": "ObservableStringEvents.SPLICE"
							}
						},
						{
							"id": 6534,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeString.value|value]] of a [[RealTimeString]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[StringSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 54,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2519,
								"name": "ObservableStringEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6535,
								6531,
								6536,
								6537,
								6532,
								6533,
								6534
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalString.ts",
							"line": 28,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2515,
							"name": "ObservableStringEvents"
						}
					]
				},
				{
					"id": 6605,
					"name": "HistoricalUndefinedEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 6607,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 6608,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 6609,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 6606,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6607,
								6608,
								6609,
								6606
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/historical/HistoricalUndefined.ts",
							"line": 28,
							"character": 42
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2712,
							"name": "ObservableUndefinedEvents"
						}
					]
				},
				{
					"id": 1256,
					"name": "IArrayValue",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a array value within a RealTimeModel."
					},
					"children": [
						{
							"id": 1259,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique identifier of this object within the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 24,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1230,
								"name": "IDataValue.id"
							}
						},
						{
							"id": 1257,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 131,
									"character": 6
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "array"
							},
							"overwrites": {
								"type": "reference",
								"id": 1231,
								"name": "IDataValue.type"
							}
						},
						{
							"id": 1258,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 136,
									"character": 7
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "reference",
									"id": 1229,
									"name": "IDataValue"
								}
							},
							"overwrites": {
								"type": "reference",
								"id": 1232,
								"name": "IDataValue.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1259,
								1257,
								1258
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/dataValue.ts",
							"line": 127,
							"character": 28
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1229,
							"name": "IDataValue"
						}
					]
				},
				{
					"id": 6942,
					"name": "IAutoCreateModelOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The configuration that is available when creating a model using the\n[[ModelService.openAutoCreate]] method."
					},
					"children": [
						{
							"id": 6944,
							"name": "collection",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The collection in which this model will live."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 30,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 5153,
								"name": "ICreateModelOptions.collection"
							}
						},
						{
							"id": 6946,
							"name": "data",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "The initial contents of the model, either provided directly or as the result\nof a callback function.  This data should be easily serializable."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 43,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"id": 5150,
								"name": "ModelDataInitializer"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 5155,
								"name": "ICreateModelOptions.data"
							}
						},
						{
							"id": 6943,
							"name": "ephemeral",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/model/IAutoCreateModelOptions.ts",
									"line": 24,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 6945,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "The model's ID.  If not provided, a UUID will be generated.",
								"text": "Note that model IDs must be unique *even across collections*!\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 37,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 5154,
								"name": "ICreateModelOptions.id"
							}
						},
						{
							"id": 6947,
							"name": "overrideCollectionWorldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Set to true if the permissions set in this object should override those set\nin the parent collection."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 49,
									"character": 36
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 5156,
								"name": "ICreateModelOptions.overrideCollectionWorldPermissions"
							}
						},
						{
							"id": 6949,
							"name": "userPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Per-user permissions can be set here, where the key is an existing user's username."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 59,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"id": 971,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4213,
										"name": "IModelPermissions"
									}
								],
								"name": "DomainUserMapping"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 5158,
								"name": "ICreateModelOptions.userPermissions"
							}
						},
						{
							"id": 6948,
							"name": "worldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Generic permissions for this model for all users."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 54,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 4213,
								"name": "IModelPermissions"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 5157,
								"name": "ICreateModelOptions.worldPermissions"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								6944,
								6946,
								6943,
								6945,
								6947,
								6949,
								6948
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/IAutoCreateModelOptions.ts",
							"line": 23,
							"character": 40
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 5152,
							"name": "ICreateModelOptions"
						}
					]
				},
				{
					"id": 1245,
					"name": "IBooleanValue",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a boolean value within a RealTimeModel."
					},
					"children": [
						{
							"id": 1248,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique identifier of this object within the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 24,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1230,
								"name": "IDataValue.id"
							}
						},
						{
							"id": 1246,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 97,
									"character": 6
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "boolean"
							},
							"overwrites": {
								"type": "reference",
								"id": 1231,
								"name": "IDataValue.type"
							}
						},
						{
							"id": 1247,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 102,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"overwrites": {
								"type": "reference",
								"id": 1232,
								"name": "IDataValue.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1248,
								1246,
								1247
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/dataValue.ts",
							"line": 93,
							"character": 30
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1229,
							"name": "IDataValue"
						}
					]
				},
				{
					"id": 3883,
					"name": "IConvergenceModelValueEvent",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[IConvergenceModelValueEvent]] is the parent interface of all events\nrepresenting changes to model values."
					},
					"children": [
						{
							"id": 3884,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeElement]] or [[HistoricalElement]] whose contents changed."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/IConvergenceModelValueEvent.ts",
									"line": 29,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							}
						},
						{
							"id": 3885,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if the change occurred locally (within the current session)"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/IConvergenceModelValueEvent.ts",
									"line": 34,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 3886,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/util/IConvergenceEvent.ts",
									"line": 30,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3884,
								3885,
								3886
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/IConvergenceModelValueEvent.ts",
							"line": 24,
							"character": 44
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 3888,
							"name": "IValueChangedEvent"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 4171,
							"name": "ModelChangedEvent"
						}
					]
				},
				{
					"id": 5152,
					"name": "ICreateModelOptions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The configuration available when creating a model with the\n[[ModelService.create]] or [[ModelService.openAutoCreate]] methods."
					},
					"children": [
						{
							"id": 5153,
							"name": "collection",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The collection in which this model will live."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 30,
									"character": 12
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5155,
							"name": "data",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "The initial contents of the model, either provided directly or as the result\nof a callback function.  This data should be easily serializable."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 43,
									"character": 6
								}
							],
							"type": {
								"type": "reference",
								"id": 5150,
								"name": "ModelDataInitializer"
							}
						},
						{
							"id": 5154,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "The model's ID.  If not provided, a UUID will be generated.",
								"text": "Note that model IDs must be unique *even across collections*!\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 37,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5156,
							"name": "overrideCollectionWorldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Set to true if the permissions set in this object should override those set\nin the parent collection."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 49,
									"character": 36
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 5158,
							"name": "userPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Per-user permissions can be set here, where the key is an existing user's username."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 59,
									"character": 17
								}
							],
							"type": {
								"type": "reference",
								"id": 971,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4213,
										"name": "IModelPermissions"
									}
								],
								"name": "DomainUserMapping"
							}
						},
						{
							"id": 5157,
							"name": "worldPermissions",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "Generic permissions for this model for all users."
							},
							"sources": [
								{
									"fileName": "src/main/model/ICreateModelOptions.ts",
									"line": 54,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 4213,
								"name": "IModelPermissions"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								5153,
								5155,
								5154,
								5156,
								5158,
								5157
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/ICreateModelOptions.ts",
							"line": 26,
							"character": 36
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 6942,
							"name": "IAutoCreateModelOptions"
						}
					]
				},
				{
					"id": 1229,
					"name": "IDataValue",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a value in a real time model."
					},
					"children": [
						{
							"id": 1230,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique identifier of this object within the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 24,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1231,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The type of this data value."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 29,
									"character": 6
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "stringLiteral",
										"value": "object"
									},
									{
										"type": "stringLiteral",
										"value": "array"
									},
									{
										"type": "stringLiteral",
										"value": "string"
									},
									{
										"type": "stringLiteral",
										"value": "number"
									},
									{
										"type": "stringLiteral",
										"value": "boolean"
									},
									{
										"type": "stringLiteral",
										"value": "null"
									},
									{
										"type": "stringLiteral",
										"value": "date"
									}
								]
							}
						},
						{
							"id": 1232,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The underlying value of this element of the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 34,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "any"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1230,
								1231,
								1232
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/dataValue.ts",
							"line": 20,
							"character": 27
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 1233,
							"name": "INullValue"
						},
						{
							"type": "reference",
							"id": 1237,
							"name": "IStringValue"
						},
						{
							"type": "reference",
							"id": 1241,
							"name": "INumberValue"
						},
						{
							"type": "reference",
							"id": 1245,
							"name": "IBooleanValue"
						},
						{
							"type": "reference",
							"id": 1249,
							"name": "IObjectValue"
						},
						{
							"type": "reference",
							"id": 1256,
							"name": "IArrayValue"
						},
						{
							"type": "reference",
							"id": 1260,
							"name": "IDateValue"
						}
					]
				},
				{
					"id": 1260,
					"name": "IDateValue",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a date value within a RealTimeModel."
					},
					"children": [
						{
							"id": 1263,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique identifier of this object within the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 24,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1230,
								"name": "IDataValue.id"
							}
						},
						{
							"id": 1261,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 149,
									"character": 6
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "date"
							},
							"overwrites": {
								"type": "reference",
								"id": 1231,
								"name": "IDataValue.type"
							}
						},
						{
							"id": 1262,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 154,
									"character": 7
								}
							],
							"type": {
								"type": "reference",
								"name": "Date"
							},
							"overwrites": {
								"type": "reference",
								"id": 1232,
								"name": "IDataValue.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1263,
								1261,
								1262
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/dataValue.ts",
							"line": 144,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1229,
							"name": "IDataValue"
						}
					]
				},
				{
					"id": 3879,
					"name": "IModelEvent",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A parent interface indicating an event that occurred on a [[RealTimeModel]]."
					},
					"children": [
						{
							"id": 3881,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/util/IConvergenceEvent.ts",
									"line": 30,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 3880,
							"name": "src",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeModel]] or [[HistoricalModel]] on which this event occurred."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/IModelEvent.ts",
									"line": 28,
									"character": 14
								}
							],
							"type": {
								"type": "reference",
								"id": 1416,
								"name": "ObservableModel"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3881,
								3880
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/IModelEvent.ts",
							"line": 23,
							"character": 28
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 426,
							"name": "IConvergenceEvent"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 4355,
							"name": "CollaboratorClosedEvent"
						},
						{
							"type": "reference",
							"id": 4345,
							"name": "CollaboratorOpenedEvent"
						},
						{
							"type": "reference",
							"id": 4189,
							"name": "ModelClosedEvent"
						},
						{
							"type": "reference",
							"id": 4365,
							"name": "ModelCommittedEvent"
						},
						{
							"type": "reference",
							"id": 4201,
							"name": "ModelDeletedEvent"
						},
						{
							"type": "reference",
							"id": 4373,
							"name": "ModelModifiedEvent"
						},
						{
							"type": "reference",
							"id": 4267,
							"name": "ModelOfflineEvent"
						},
						{
							"type": "reference",
							"id": 4259,
							"name": "ModelOnlineEvent"
						},
						{
							"type": "reference",
							"id": 4275,
							"name": "ModelReconnectingEvent"
						},
						{
							"type": "reference",
							"id": 4291,
							"name": "ResyncCompletedEvent"
						},
						{
							"type": "reference",
							"id": 4299,
							"name": "ResyncErrorEvent"
						},
						{
							"type": "reference",
							"id": 4283,
							"name": "ResyncStartedEvent"
						},
						{
							"type": "reference",
							"id": 4249,
							"name": "VersionChangedEvent"
						}
					]
				},
				{
					"id": 4213,
					"name": "IModelPermissions",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A pure JSON representation of ModelPermissions."
					},
					"children": [
						{
							"id": 4217,
							"name": "manage",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Set to true to permit managing the permissions on a model."
							},
							"sources": [
								{
									"fileName": "src/main/model/IModelPermissions.ts",
									"line": 39,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4214,
							"name": "read",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Set to true to allow read access to a model."
							},
							"sources": [
								{
									"fileName": "src/main/model/IModelPermissions.ts",
									"line": 24,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4216,
							"name": "remove",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Set to true to permit deleting a model."
							},
							"sources": [
								{
									"fileName": "src/main/model/IModelPermissions.ts",
									"line": 34,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 4215,
							"name": "write",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Set to true to allow write access to a model."
							},
							"sources": [
								{
									"fileName": "src/main/model/IModelPermissions.ts",
									"line": 29,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								4217,
								4214,
								4216,
								4215
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/IModelPermissions.ts",
							"line": 20,
							"character": 34
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 4219,
							"name": "ModelPermissions"
						}
					]
				},
				{
					"id": 6966,
					"name": "IModelServiceEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The complete list of events that could be emitted by the [[ModelService]]."
					},
					"children": [
						{
							"id": 6976,
							"name": "OFFLINE_MODELS_DOWNLOAD_COMPLETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when all models have been downloaded after a subscription change\nthat required additional models to be downloaded.",
								"text": "The event emitted will be an [[OfflineModelsDownloadCompletedEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 183,
									"character": 44
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_completed"
							}
						},
						{
							"id": 6974,
							"name": "OFFLINE_MODELS_DOWNLOAD_PENDING",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted whenever a change to the set of subscribed models results in new\nmodels needing to be downloaded.",
								"text": "The event emitted will be an [[OfflineModelsDownloadPendingEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 163,
									"character": 42
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_pending"
							}
						},
						{
							"id": 6975,
							"name": "OFFLINE_MODELS_DOWNLOAD_PROGRESS",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the number of models to download changes either because of\na successful download or a change to the subscription.",
								"text": "The event emitted will be an [[OfflineModelsDownloadProgressEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 173,
									"character": 43
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_progress"
							}
						},
						{
							"id": 6980,
							"name": "OFFLINE_MODELS_SYNC_ABORTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the offline model synchronization process aborts.",
								"text": "The event emitted will be an [[OfflineModelsSyncAbortedEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 222,
									"character": 38
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_aborted"
							}
						},
						{
							"id": 6979,
							"name": "OFFLINE_MODELS_SYNC_COMPLETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when all local offline changes have been synchronized with the.\nserver.",
								"text": "The event emitted will be an [[OfflineModelsSyncCompletedEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 213,
									"character": 40
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_completed"
							}
						},
						{
							"id": 6978,
							"name": "OFFLINE_MODELS_SYNC_PROGRESS",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the number of outstanding models to synchronize has\nchanged.",
								"text": "The event emitted will be an [[OfflineModelsSyncProgressEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 203,
									"character": 39
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_progress"
							}
						},
						{
							"id": 6977,
							"name": "OFFLINE_MODELS_SYNC_STARTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when local offline changes to models are being synchronized with\nthe server.",
								"text": "The event emitted will be an [[OfflineModelsSyncStartedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 193,
									"character": 38
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_started"
							}
						},
						{
							"id": 6972,
							"name": "OFFLINE_MODEL_DELETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when an already downloaded offline model is deleted.",
								"text": "The event emitted will be an [[OfflineModelDeletedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 142,
									"character": 32
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_deleted"
							}
						},
						{
							"id": 6973,
							"name": "OFFLINE_MODEL_PERMISSIONS_REVOKED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when an already downloaded offline model's permissions are\nupdated and the local user no longer has read permissions.",
								"text": "The event emitted will be an [[OfflineModelPermissionsRevokedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 152,
									"character": 44
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_permissions_revoked"
							}
						},
						{
							"id": 6970,
							"name": "OFFLINE_MODEL_STATUS_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a model is initially downloaded after it was first subscribed\nto offline.",
								"text": "The event emitted will be an [[OfflineModelStatusChangedEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 123,
									"character": 39
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_status_changed"
							}
						},
						{
							"id": 6968,
							"name": "OFFLINE_MODEL_SYNC_COMPLETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when all local offline changes have been synchronized with the.\nserver.",
								"text": "The event emitted will be an [[OfflineModelSyncCompletedEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 102,
									"character": 39
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_completed"
							}
						},
						{
							"id": 6969,
							"name": "OFFLINE_MODEL_SYNC_ERROR",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted a particular model encounters an error during the resync\nprocess.",
								"text": "The event emitted will be an [[OfflineModelSyncErrorEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 112,
									"character": 35
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_error"
							}
						},
						{
							"id": 6967,
							"name": "OFFLINE_MODEL_SYNC_STARTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted local offline changes to models are being synchronized with the\nserver.",
								"text": "The event emitted will be an [[OfflineModelSyncStartedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 92,
									"character": 37
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_started"
							}
						},
						{
							"id": 6971,
							"name": "OFFLINE_MODEL_UPDATED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted whenever a model that is subscribed to offline is updated via the\nperiodic background synchronization process.",
								"text": "The event emitted will be an [[OfflineModelUpdatedEvent]]\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 133,
									"character": 32
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_updated"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								6976,
								6974,
								6975,
								6980,
								6979,
								6978,
								6977,
								6972,
								6973,
								6970,
								6968,
								6969,
								6967,
								6971
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/ModelService.ts",
							"line": 82,
							"character": 36
						}
					]
				},
				{
					"id": 1233,
					"name": "INullValue",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a null value within a RealTimeModel."
					},
					"children": [
						{
							"id": 1236,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique identifier of this object within the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 24,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1230,
								"name": "IDataValue.id"
							}
						},
						{
							"id": 1234,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 46,
									"character": 6
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "null"
							},
							"overwrites": {
								"type": "reference",
								"id": 1231,
								"name": "IDataValue.type"
							}
						},
						{
							"id": 1235,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 51,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "null"
							},
							"overwrites": {
								"type": "reference",
								"id": 1232,
								"name": "IDataValue.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1236,
								1234,
								1235
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/dataValue.ts",
							"line": 42,
							"character": 27
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1229,
							"name": "IDataValue"
						}
					]
				},
				{
					"id": 1241,
					"name": "INumberValue",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a number value within a RealTimeModel."
					},
					"children": [
						{
							"id": 1244,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique identifier of this object within the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 24,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1230,
								"name": "IDataValue.id"
							}
						},
						{
							"id": 1242,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 80,
									"character": 6
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "number"
							},
							"overwrites": {
								"type": "reference",
								"id": 1231,
								"name": "IDataValue.type"
							}
						},
						{
							"id": 1243,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 85,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							},
							"overwrites": {
								"type": "reference",
								"id": 1232,
								"name": "IDataValue.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1244,
								1242,
								1243
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/dataValue.ts",
							"line": 76,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1229,
							"name": "IDataValue"
						}
					]
				},
				{
					"id": 1249,
					"name": "IObjectValue",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a object value within a RealTimeModel."
					},
					"children": [
						{
							"id": 1255,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique identifier of this object within the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 24,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1230,
								"name": "IDataValue.id"
							}
						},
						{
							"id": 1250,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 114,
									"character": 6
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "object"
							},
							"overwrites": {
								"type": "reference",
								"id": 1231,
								"name": "IDataValue.type"
							}
						},
						{
							"id": 1251,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 119,
									"character": 7
								}
							],
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 1252,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"indexSignature": [
										{
											"id": 1253,
											"name": "__index",
											"kind": 8192,
											"kindString": "Index signature",
											"flags": {
												"isExported": true
											},
											"parameters": [
												{
													"id": 1254,
													"name": "key",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isExported": true
													},
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											],
											"type": {
												"type": "reference",
												"id": 1229,
												"name": "IDataValue"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/main/model/dataValue.ts",
											"line": 119,
											"character": 8
										}
									]
								}
							},
							"overwrites": {
								"type": "reference",
								"id": 1232,
								"name": "IDataValue.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1255,
								1250,
								1251
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/dataValue.ts",
							"line": 110,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1229,
							"name": "IDataValue"
						}
					]
				},
				{
					"id": 1237,
					"name": "IStringValue",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Represents a string value within a RealTimeModel."
					},
					"children": [
						{
							"id": 1240,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The unique identifier of this object within the model."
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 24,
									"character": 4
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1230,
								"name": "IDataValue.id"
							}
						},
						{
							"id": 1238,
							"name": "type",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 63,
									"character": 6
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1231,
								"name": "IDataValue.type"
							}
						},
						{
							"id": 1239,
							"name": "value",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"tags": [
									{
										"tag": "inheritdoc",
										"text": "\n"
									}
								]
							},
							"sources": [
								{
									"fileName": "src/main/model/dataValue.ts",
									"line": 68,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1232,
								"name": "IDataValue.value"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								1240,
								1238,
								1239
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/dataValue.ts",
							"line": 59,
							"character": 29
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1229,
							"name": "IDataValue"
						}
					]
				},
				{
					"id": 3888,
					"name": "IValueChangedEvent",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The [[IValueChangedEvent]] is the parent interface to all events fired by\nindividual model elements when their data changes."
					},
					"children": [
						{
							"id": 3891,
							"name": "element",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The [[RealTimeElement]] or [[HistoricalElement]] whose contents changed."
							},
							"sources": [
								{
									"fileName": "src/main/model/events/IConvergenceModelValueEvent.ts",
									"line": 29,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 1452,
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "any"
									}
								],
								"name": "ObservableElement"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3884,
								"name": "IConvergenceModelValueEvent.element"
							}
						},
						{
							"id": 3892,
							"name": "local",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if the change occurred locally (within the current session)"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/IConvergenceModelValueEvent.ts",
									"line": 34,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 3885,
								"name": "IConvergenceModelValueEvent.local"
							}
						},
						{
							"id": 3893,
							"name": "name",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
								"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
							},
							"sources": [
								{
									"fileName": "src/main/util/IConvergenceEvent.ts",
									"line": 30,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 427,
								"name": "IConvergenceEvent.name"
							}
						},
						{
							"id": 3890,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The sessionId corresponding to the session that performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/IValueChangedEvent.ts",
									"line": 33,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 3889,
							"name": "user",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The user which performed the modification"
							},
							"sources": [
								{
									"fileName": "src/main/model/events/IValueChangedEvent.ts",
									"line": 28,
									"character": 15
								}
							],
							"type": {
								"type": "reference",
								"id": 812,
								"name": "DomainUser"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3891,
								3892,
								3893,
								3890,
								3889
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/events/IValueChangedEvent.ts",
							"line": 24,
							"character": 35
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 3883,
							"name": "IConvergenceModelValueEvent"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 3895,
							"name": "ArrayInsertEvent"
						},
						{
							"type": "reference",
							"id": 3913,
							"name": "ArrayRemoveEvent"
						},
						{
							"type": "reference",
							"id": 3931,
							"name": "ArrayReorderEvent"
						},
						{
							"type": "reference",
							"id": 3949,
							"name": "ArraySetEvent"
						},
						{
							"type": "reference",
							"id": 3969,
							"name": "ArraySetValueEvent"
						},
						{
							"type": "reference",
							"id": 4035,
							"name": "BooleanSetValueEvent"
						},
						{
							"type": "reference",
							"id": 4049,
							"name": "DateSetValueEvent"
						},
						{
							"type": "reference",
							"id": 4077,
							"name": "NumberDeltaEvent"
						},
						{
							"type": "reference",
							"id": 4063,
							"name": "NumberSetValueEvent"
						},
						{
							"type": "reference",
							"id": 3983,
							"name": "ObjectRemoveEvent"
						},
						{
							"type": "reference",
							"id": 4001,
							"name": "ObjectSetEvent"
						},
						{
							"type": "reference",
							"id": 4021,
							"name": "ObjectSetValueEvent"
						},
						{
							"type": "reference",
							"id": 4093,
							"name": "StringInsertEvent"
						},
						{
							"type": "reference",
							"id": 4111,
							"name": "StringRemoveEvent"
						},
						{
							"type": "reference",
							"id": 4149,
							"name": "StringSetValueEvent"
						},
						{
							"type": "reference",
							"id": 4129,
							"name": "StringSpliceEvent"
						}
					]
				},
				{
					"id": 3617,
					"name": "IndexRange",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A single range to be used with a [[RangeReference]].",
						"text": "For example, in\n```\n The quick brown fox jumped over the lazy dog\n```\n\na selection of \"fox jumped\" would be represented with the range `{start: 16, end: 26}`\n"
					},
					"children": [
						{
							"id": 3619,
							"name": "end",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/RangeReference.ts",
									"line": 36,
									"character": 5
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 3618,
							"name": "start",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/RangeReference.ts",
									"line": 35,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3619,
								3618
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/RangeReference.ts",
							"line": 34,
							"character": 27
						}
					]
				},
				{
					"id": 5144,
					"name": "ModelData",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Some JSON-like model data that will become the new model's initial contents."
					},
					"indexSignature": [
						{
							"id": 5145,
							"name": "__index",
							"kind": 8192,
							"kindString": "Index signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Some JSON-like model data that will become the new model's initial contents."
							},
							"parameters": [
								{
									"id": 5146,
									"name": "key",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "any"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/ModelDataInitializer.ts",
							"line": 28,
							"character": 26
						}
					]
				},
				{
					"id": 3276,
					"name": "ModelReferenceEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The generic events available on any reference."
					},
					"children": [
						{
							"id": 3278,
							"name": "CLEARED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Indicates that a reference's value was cleared."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 54,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 3279,
							"name": "DISPOSED",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Indicates that a reference was disposed."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 59,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 3277,
							"name": "SET",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Indicates that a new value on a reference was set."
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 49,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3278,
								3279,
								3277
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/ModelReference.ts",
							"line": 45,
							"character": 37
						}
					]
				},
				{
					"id": 3269,
					"name": "ModelReferenceTypes",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "All the different types of [references](https://docs.convergence.io/guide/models/references/references.html)."
					},
					"indexSignature": [
						{
							"id": 3270,
							"name": "__index",
							"kind": 8192,
							"kindString": "Index signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "All the different types of [references](https://docs.convergence.io/guide/models/references/references.html)."
							},
							"parameters": [
								{
									"id": 3271,
									"name": "key",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 1271,
								"name": "ReferenceType"
							}
						}
					],
					"children": [
						{
							"id": 3275,
							"name": "ELEMENT",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 37,
									"character": 18
								}
							],
							"type": {
								"type": "reference",
								"id": 1271,
								"name": "ReferenceType"
							}
						},
						{
							"id": 3272,
							"name": "INDEX",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 34,
									"character": 16
								}
							],
							"type": {
								"type": "reference",
								"id": 1271,
								"name": "ReferenceType"
							}
						},
						{
							"id": 3274,
							"name": "PROPERTY",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 36,
									"character": 19
								}
							],
							"type": {
								"type": "reference",
								"id": 1271,
								"name": "ReferenceType"
							}
						},
						{
							"id": 3273,
							"name": "RANGE",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ModelReference.ts",
									"line": 35,
									"character": 16
								}
							],
							"type": {
								"type": "reference",
								"id": 1271,
								"name": "ReferenceType"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3275,
								3272,
								3274,
								3273
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/ModelReference.ts",
							"line": 32,
							"character": 36
						}
					]
				},
				{
					"id": 1659,
					"name": "ObservableArray",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 1699,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1700,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1701,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1702,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 1672,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1673,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1674,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1346,
										"name": "ObservableContainerElement.elementAt"
									}
								},
								{
									"id": 1675,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1676,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1346,
										"name": "ObservableContainerElement.elementAt"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableContainerElement.ts",
									"line": 22,
									"character": 11
								},
								{
									"fileName": "src/main/model/observable/ObservableContainerElement.ts",
									"line": 23,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1346,
								"name": "ObservableContainerElement.elementAt"
							}
						},
						{
							"id": 1724,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1725,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 1665,
							"name": "forEach",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1666,
									"name": "forEach",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1667,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 1668,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 1669,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 1670,
																	"name": "value",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 1452,
																		"typeArguments": [
																			{
																				"type": "intrinsic",
																				"name": "any"
																			}
																		],
																		"name": "ObservableElement"
																	}
																},
																{
																	"id": 1671,
																	"name": "index",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true,
																		"isOptional": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "number"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/observable/ObservableArray.ts",
															"line": 85,
															"character": 19
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 85,
									"character": 9
								}
							]
						},
						{
							"id": 1660,
							"name": "get",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1661,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1662,
											"name": "index",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "number"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 81,
									"character": 5
								}
							]
						},
						{
							"id": 1677,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1678,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 1689,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1690,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 1687,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1688,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 1663,
							"name": "length",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1664,
									"name": "length",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 83,
									"character": 8
								}
							]
						},
						{
							"id": 1693,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1694,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 1720,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1721,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1722,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1723,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 1703,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1704,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1705,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1706,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 1707,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1708,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1709,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1710,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 1685,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1686,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 1681,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1682,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 1683,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1684,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 1711,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1712,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 1716,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1717,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1718,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1719,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 1713,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1714,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1715,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 1695,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1696,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 1679,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1680,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 1691,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1692,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "any"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1699,
								1672,
								1724,
								1665,
								1660,
								1677,
								1689,
								1687,
								1663,
								1693,
								1720,
								1703,
								1707,
								1685,
								1681,
								1683,
								1711,
								1716,
								1713,
								1695,
								1679,
								1691
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableArray.ts",
							"line": 80,
							"character": 32
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1517,
							"typeArguments": [
								{
									"type": "array",
									"elementType": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "ObservableContainerElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6838,
							"name": "HistoricalArray"
						},
						{
							"type": "reference",
							"id": 1856,
							"name": "RealTimeArray"
						}
					]
				},
				{
					"id": 1650,
					"name": "ObservableArrayEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The events that could be emitted by a [[RealTimeArray]] or [[HistoricalArray]]."
					},
					"children": [
						{
							"id": 1656,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 1651,
							"name": "INSERT",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a new value is [[RealTimeArray.insert|insert]]ed into a [[RealTimeArray]].\nThe emitted event is an [[ArrayInsertEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 30,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1657,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 1658,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 1652,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when an existing value is [[RealTimeArray.remove|removed]] from a [[RealTimeArray]].\nSee [[ArrayRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 38,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1654,
							"name": "REORDER",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeArray.reorder|ordering]] of a [[RealTimeArray]] changes.\nSee [[ArrayReorderEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 54,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1653,
							"name": "SET",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a value is [[RealTimeArray.set|set]] on an [[RealTimeArray]].\nSee [[ArraySetEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 46,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1655,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeArray.value|value]] of a [[RealTimeArray]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[ArraySetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 63,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								1656,
								1651,
								1657,
								1658,
								1652,
								1654,
								1653,
								1655
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableArray.ts",
							"line": 23,
							"character": 38
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 1847,
							"name": "RealTimeArrayEvents"
						},
						{
							"type": "reference",
							"id": 6829,
							"name": "HistoricalArrayEvents"
						}
					]
				},
				{
					"id": 2024,
					"name": "ObservableBoolean",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2047,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2048,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2049,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2050,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 2072,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2073,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 2025,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2026,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 2037,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2038,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 2035,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2036,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 2041,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2042,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 2068,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2069,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2070,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2071,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 2051,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2052,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2053,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2054,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 2055,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2056,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2057,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2058,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 2033,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2034,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 2029,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2030,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 2031,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2032,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 2059,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2060,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 2064,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2065,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2066,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2067,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 2061,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2062,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2063,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 2043,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2044,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 2027,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2028,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 2039,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2040,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2047,
								2072,
								2025,
								2037,
								2035,
								2041,
								2068,
								2051,
								2055,
								2033,
								2029,
								2031,
								2059,
								2064,
								2061,
								2043,
								2027,
								2039
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableBoolean.ts",
							"line": 37,
							"character": 34
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "boolean"
								}
							],
							"name": "ObservableElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6324,
							"name": "HistoricalBoolean"
						},
						{
							"type": "reference",
							"id": 2089,
							"name": "RealTimeBoolean"
						}
					]
				},
				{
					"id": 2019,
					"name": "ObservableBooleanEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The events that could be emitted by a [[RealTimeBoolean]] or [[HistoricalBoolean]]."
					},
					"children": [
						{
							"id": 2021,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2022,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2023,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2020,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeBoolean.value|value]] of a [[RealTimeBoolean]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[BooleanSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableBoolean.ts",
									"line": 31,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2021,
								2022,
								2023,
								2020
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableBoolean.ts",
							"line": 23,
							"character": 40
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 2084,
							"name": "RealTimeBooleanEvents"
						},
						{
							"type": "reference",
							"id": 6319,
							"name": "HistoricalBooleanEvents"
						}
					]
				},
				{
					"id": 1517,
					"name": "ObservableContainerElement",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"typeParameter": [
						{
							"id": 1518,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 1546,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1547,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1548,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1549,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 1519,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1520,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1521,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									}
								},
								{
									"id": 1522,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1523,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableContainerElement.ts",
									"line": 22,
									"character": 11
								},
								{
									"fileName": "src/main/model/observable/ObservableContainerElement.ts",
									"line": 23,
									"character": 11
								}
							]
						},
						{
							"id": 1571,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1572,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 1524,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1525,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 1536,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1537,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 1534,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1535,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 1540,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1541,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 1567,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1568,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1569,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1570,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 1550,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1551,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1552,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1553,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 1554,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1555,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1556,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1557,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 1532,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1533,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 1528,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1529,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 1530,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1531,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 1558,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1559,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 1563,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1564,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1565,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1566,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 1560,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1561,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1562,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 1542,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1543,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 1526,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1527,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 1538,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1539,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "typeParameter",
										"name": "T"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1546,
								1519,
								1571,
								1524,
								1536,
								1534,
								1540,
								1567,
								1550,
								1554,
								1532,
								1528,
								1530,
								1558,
								1563,
								1560,
								1542,
								1526,
								1538
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableContainerElement.ts",
							"line": 21,
							"character": 43
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "typeParameter",
									"name": "T"
								}
							],
							"name": "ObservableElement"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 1324,
							"name": "ObservableObject"
						},
						{
							"type": "reference",
							"id": 1582,
							"name": "RealTimeContainerElement"
						},
						{
							"type": "reference",
							"id": 1659,
							"name": "ObservableArray"
						},
						{
							"type": "reference",
							"id": 6057,
							"name": "HistoricalContainerElement"
						}
					]
				},
				{
					"id": 2883,
					"name": "ObservableDate",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2906,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2907,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2908,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2909,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 2931,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2932,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 2884,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2885,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 2896,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2897,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 2894,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2895,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 2900,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2901,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 2927,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2928,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2929,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2930,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 2910,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2911,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2912,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2913,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 2914,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2915,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2916,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2917,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 2892,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2893,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 2888,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2889,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 2890,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2891,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 2918,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2919,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 2923,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2924,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2925,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2926,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 2920,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2921,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2922,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 2902,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2903,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 2886,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2887,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 2898,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2899,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"name": "Date"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2906,
								2931,
								2884,
								2896,
								2894,
								2900,
								2927,
								2910,
								2914,
								2892,
								2888,
								2890,
								2918,
								2923,
								2920,
								2902,
								2886,
								2898
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableDate.ts",
							"line": 37,
							"character": 31
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "reference",
									"name": "Date"
								}
							],
							"name": "ObservableElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6680,
							"name": "HistoricalDate"
						},
						{
							"type": "reference",
							"id": 2948,
							"name": "RealTimeDate"
						}
					]
				},
				{
					"id": 2878,
					"name": "ObservableDateEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The events that could be emitted by a [[RealTimeDate]] or [[HistoricalDate]]."
					},
					"children": [
						{
							"id": 2880,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2881,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2882,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2879,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeDate.value|value]] of a [[RealTimeDate]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[DateSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableDate.ts",
									"line": 31,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2880,
								2881,
								2882,
								2879
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableDate.ts",
							"line": 23,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 2943,
							"name": "RealTimeDateEvents"
						},
						{
							"type": "reference",
							"id": 6675,
							"name": "HistoricalDateEvents"
						}
					]
				},
				{
					"id": 1452,
					"name": "ObservableElement",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"typeParameter": [
						{
							"id": 1453,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 1476,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1477,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1478,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1479,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 1501,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1502,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 1454,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1455,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							]
						},
						{
							"id": 1466,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1467,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							]
						},
						{
							"id": 1464,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1465,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							]
						},
						{
							"id": 1470,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1471,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							]
						},
						{
							"id": 1497,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1498,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1499,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1500,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 1480,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1481,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1482,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1483,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 1484,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1485,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1486,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1487,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 1462,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1463,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							]
						},
						{
							"id": 1458,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1459,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							]
						},
						{
							"id": 1460,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1461,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							]
						},
						{
							"id": 1488,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1489,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 1493,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1494,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1495,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1496,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 1490,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1491,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1492,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 1472,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1473,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							]
						},
						{
							"id": 1456,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1457,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							]
						},
						{
							"id": 1468,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1469,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "typeParameter",
										"name": "T"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1476,
								1501,
								1454,
								1466,
								1464,
								1470,
								1497,
								1480,
								1484,
								1462,
								1458,
								1460,
								1488,
								1493,
								1490,
								1472,
								1456,
								1468
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableElement.ts",
							"line": 74,
							"character": 34
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 455,
							"typeArguments": [
								{
									"type": "reference",
									"id": 426,
									"name": "IConvergenceEvent"
								}
							],
							"name": "ConvergenceEventEmitter"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 1517,
							"name": "ObservableContainerElement"
						},
						{
							"type": "reference",
							"id": 2024,
							"name": "ObservableBoolean"
						},
						{
							"type": "reference",
							"id": 2184,
							"name": "ObservableNull"
						},
						{
							"type": "reference",
							"id": 2348,
							"name": "ObservableNumber"
						},
						{
							"type": "reference",
							"id": 2523,
							"name": "ObservableString"
						},
						{
							"type": "reference",
							"id": 2717,
							"name": "ObservableUndefined"
						},
						{
							"type": "reference",
							"id": 2883,
							"name": "ObservableDate"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6838,
							"name": "HistoricalArray"
						},
						{
							"type": "reference",
							"id": 6324,
							"name": "HistoricalBoolean"
						},
						{
							"type": "reference",
							"id": 6680,
							"name": "HistoricalDate"
						},
						{
							"type": "reference",
							"id": 6762,
							"name": "HistoricalElement"
						},
						{
							"type": "reference",
							"id": 6394,
							"name": "HistoricalNull"
						},
						{
							"type": "reference",
							"id": 6465,
							"name": "HistoricalNumber"
						},
						{
							"type": "reference",
							"id": 6225,
							"name": "HistoricalObject"
						},
						{
							"type": "reference",
							"id": 6538,
							"name": "HistoricalString"
						},
						{
							"type": "reference",
							"id": 6610,
							"name": "HistoricalUndefined"
						},
						{
							"type": "reference",
							"id": 1856,
							"name": "RealTimeArray"
						},
						{
							"type": "reference",
							"id": 2089,
							"name": "RealTimeBoolean"
						},
						{
							"type": "reference",
							"id": 2948,
							"name": "RealTimeDate"
						},
						{
							"type": "reference",
							"id": 5521,
							"name": "RealTimeElement"
						},
						{
							"type": "reference",
							"id": 2249,
							"name": "RealTimeNull"
						},
						{
							"type": "reference",
							"id": 2415,
							"name": "RealTimeNumber"
						},
						{
							"type": "reference",
							"id": 3061,
							"name": "RealTimeObject"
						},
						{
							"type": "reference",
							"id": 2596,
							"name": "RealTimeString"
						},
						{
							"type": "reference",
							"id": 2782,
							"name": "RealTimeUndefined"
						}
					]
				},
				{
					"id": 1447,
					"name": "ObservableElementEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 1449,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1450,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1451,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1448,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								1449,
								1450,
								1451,
								1448
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableElement.ts",
							"line": 24,
							"character": 40
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 1317,
							"name": "ObservableObjectEvents"
						},
						{
							"type": "reference",
							"id": 1650,
							"name": "ObservableArrayEvents"
						},
						{
							"type": "reference",
							"id": 2019,
							"name": "ObservableBooleanEvents"
						},
						{
							"type": "reference",
							"id": 2179,
							"name": "ObservableNullEvents"
						},
						{
							"type": "reference",
							"id": 2342,
							"name": "ObservableNumberEvents"
						},
						{
							"type": "reference",
							"id": 2515,
							"name": "ObservableStringEvents"
						},
						{
							"type": "reference",
							"id": 2712,
							"name": "ObservableUndefinedEvents"
						},
						{
							"type": "reference",
							"id": 2878,
							"name": "ObservableDateEvents"
						},
						{
							"type": "reference",
							"id": 5516,
							"name": "RealTimeElementEvents"
						},
						{
							"type": "reference",
							"id": 6757,
							"name": "HistoricalElementEvents"
						}
					]
				},
				{
					"id": 1416,
					"name": "ObservableModel",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 1419,
							"name": "collectionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1420,
									"name": "collectionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 65,
									"character": 14
								}
							]
						},
						{
							"id": 1429,
							"name": "createdTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1430,
									"name": "createdTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"name": "Date"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 75,
									"character": 13
								}
							]
						},
						{
							"id": 1439,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1440,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1441,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 85,
									"character": 11
								}
							]
						},
						{
							"id": 1427,
							"name": "maxTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1428,
									"name": "maxTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"name": "Date"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 73,
									"character": 9
								}
							]
						},
						{
							"id": 1435,
							"name": "maxVersion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1436,
									"name": "maxVersion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 81,
									"character": 12
								}
							]
						},
						{
							"id": 1425,
							"name": "minTime",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1426,
									"name": "minTime",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"name": "Date"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 71,
									"character": 9
								}
							]
						},
						{
							"id": 1433,
							"name": "minVersion",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1434,
									"name": "minVersion",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 79,
									"character": 12
								}
							]
						},
						{
							"id": 1421,
							"name": "modelId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1422,
									"name": "modelId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 67,
									"character": 9
								}
							]
						},
						{
							"id": 1437,
							"name": "root",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1438,
									"name": "root",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1324,
										"name": "ObservableObject"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 83,
									"character": 6
								}
							]
						},
						{
							"id": 1417,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1418,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 63,
									"character": 9
								}
							]
						},
						{
							"id": 1423,
							"name": "time",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1424,
									"name": "time",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"name": "Date"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 69,
									"character": 6
								}
							]
						},
						{
							"id": 1431,
							"name": "version",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1432,
									"name": "version",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 77,
									"character": 9
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1419,
								1429,
								1439,
								1427,
								1435,
								1425,
								1433,
								1421,
								1437,
								1417,
								1423,
								1431
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableModel.ts",
							"line": 61,
							"character": 32
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6134,
							"name": "HistoricalModel"
						},
						{
							"type": "reference",
							"id": 5183,
							"name": "RealTimeModel"
						}
					]
				},
				{
					"id": 1412,
					"name": "ObservableModelEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The events that could be emitted by a [[RealTimeModel]] or [[HistoricalModel]]."
					},
					"children": [
						{
							"id": 1413,
							"name": "CLOSED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a model is closed locally. The actual event emitted is a [[ModelClosedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 30,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1414,
							"name": "DELETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a model is deleted. The actual event emitted is a [[ModelDeletedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 37,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1415,
							"name": "VERSION_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the version of this model changes.  This could happen from\na local or remote change to this model. The actual emitted event is a [[VersionChangedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 45,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								1413,
								1414,
								1415
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableModel.ts",
							"line": 24,
							"character": 38
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 5165,
							"name": "RealTimeModelEvents"
						},
						{
							"type": "reference",
							"id": 6127,
							"name": "HistoricalModelEvents"
						}
					]
				},
				{
					"id": 2184,
					"name": "ObservableNull",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2207,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2208,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2209,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2210,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 2232,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2233,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 2185,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2186,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 2197,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2198,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 2195,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2196,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 2201,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2202,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 2228,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2229,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2230,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2231,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 2211,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2212,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2213,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2214,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 2215,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2216,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2217,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2218,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 2193,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2194,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 2189,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2190,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 2191,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2192,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 2219,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2220,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 2224,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2225,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2226,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2227,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 2221,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2222,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2223,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 2203,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2204,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 2187,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2188,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 2199,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2200,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2207,
								2232,
								2185,
								2197,
								2195,
								2201,
								2228,
								2211,
								2215,
								2193,
								2189,
								2191,
								2219,
								2224,
								2221,
								2203,
								2187,
								2199
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableNull.ts",
							"line": 28,
							"character": 31
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "ObservableElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6394,
							"name": "HistoricalNull"
						},
						{
							"type": "reference",
							"id": 2249,
							"name": "RealTimeNull"
						}
					]
				},
				{
					"id": 2179,
					"name": "ObservableNullEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2181,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2182,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2183,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2180,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2181,
								2182,
								2183,
								2180
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableNull.ts",
							"line": 21,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 2244,
							"name": "RealTimeNullEvents"
						},
						{
							"type": "reference",
							"id": 6389,
							"name": "HistoricalNullEvents"
						}
					]
				},
				{
					"id": 2348,
					"name": "ObservableNumber",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2371,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2372,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2373,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2374,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 2396,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2397,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 2349,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2350,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 2361,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2362,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 2359,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2360,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 2365,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2366,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 2392,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2393,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2394,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2395,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 2375,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2376,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2377,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2378,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 2379,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2380,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2381,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2382,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 2357,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2358,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 2353,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2354,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 2355,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2356,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 2383,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2384,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 2388,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2389,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2390,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2391,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 2385,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2386,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2387,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 2367,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2368,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 2351,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2352,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 2363,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2364,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2371,
								2396,
								2349,
								2361,
								2359,
								2365,
								2392,
								2375,
								2379,
								2357,
								2353,
								2355,
								2383,
								2388,
								2385,
								2367,
								2351,
								2363
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableNumber.ts",
							"line": 55,
							"character": 33
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "number"
								}
							],
							"name": "ObservableElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6465,
							"name": "HistoricalNumber"
						},
						{
							"type": "reference",
							"id": 2415,
							"name": "RealTimeNumber"
						}
					]
				},
				{
					"id": 2342,
					"name": "ObservableNumberEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The events that could be emitted by a [[RealTimeNumber]] or [[HistoricalNumber]]."
					},
					"children": [
						{
							"id": 2343,
							"name": "DELTA",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the value of this number changes\n(but not explicitly set, listen to [[RealTimeNumberEvents.VALUE]] for that).\nThe emitted event is an [[NumberDeltaEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableNumber.ts",
									"line": 30,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 2345,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2346,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2347,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2344,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeNumber.value|value]] of a [[RealTimeNumber]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[NumberSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableNumber.ts",
									"line": 39,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2343,
								2345,
								2346,
								2347,
								2344
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableNumber.ts",
							"line": 22,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 2409,
							"name": "RealTimeNumberEvents"
						},
						{
							"type": "reference",
							"id": 6459,
							"name": "HistoricalNumberEvents"
						}
					]
				},
				{
					"id": 1324,
					"name": "ObservableObject",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 1373,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1374,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1375,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1376,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 1346,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1347,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1348,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1346,
										"name": "ObservableContainerElement.elementAt"
									}
								},
								{
									"id": 1349,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1350,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1346,
										"name": "ObservableContainerElement.elementAt"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableContainerElement.ts",
									"line": 22,
									"character": 11
								},
								{
									"fileName": "src/main/model/observable/ObservableContainerElement.ts",
									"line": 23,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1346,
								"name": "ObservableContainerElement.elementAt"
							}
						},
						{
							"id": 1398,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1399,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 1333,
							"name": "forEach",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1334,
									"name": "forEach",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1335,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 1336,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 1337,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 1338,
																	"name": "model",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 1452,
																		"typeArguments": [
																			{
																				"type": "intrinsic",
																				"name": "any"
																			}
																		],
																		"name": "ObservableElement"
																	}
																},
																{
																	"id": 1339,
																	"name": "key",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true,
																		"isOptional": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/model/observable/ObservableObject.ts",
															"line": 71,
															"character": 19
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 71,
									"character": 9
								}
							]
						},
						{
							"id": 1325,
							"name": "get",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1326,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1327,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 1452,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableElement"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 65,
									"character": 5
								}
							]
						},
						{
							"id": 1330,
							"name": "hasKey",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1331,
									"name": "hasKey",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1332,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 69,
									"character": 8
								}
							]
						},
						{
							"id": 1351,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1352,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 1363,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1364,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 1361,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1362,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 1328,
							"name": "keys",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1329,
									"name": "keys",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "intrinsic",
											"name": "string"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 67,
									"character": 6
								}
							]
						},
						{
							"id": 1367,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1368,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 1394,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1395,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1396,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1397,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 1377,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1378,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1379,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1380,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 1381,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1382,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1383,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1384,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 1359,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1360,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 1355,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1356,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 1357,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1358,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 1385,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1386,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 1390,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1391,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1392,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1393,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 1387,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1388,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1389,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 1369,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1370,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 1353,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1354,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 1365,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1366,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 1343,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {
												"isExported": true
											},
											"indexSignature": [
												{
													"id": 1344,
													"name": "__index",
													"kind": 8192,
													"kindString": "Index signature",
													"flags": {
														"isExported": true
													},
													"parameters": [
														{
															"id": 1345,
															"name": "key",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													],
													"type": {
														"type": "intrinsic",
														"name": "any"
													}
												}
											],
											"sources": [
												{
													"fileName": "src/main/model/observable/ObservableObject.ts",
													"line": 63,
													"character": 69
												}
											]
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1373,
								1346,
								1398,
								1333,
								1325,
								1330,
								1351,
								1363,
								1361,
								1328,
								1367,
								1394,
								1377,
								1381,
								1359,
								1355,
								1357,
								1385,
								1390,
								1387,
								1369,
								1353,
								1365
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableObject.ts",
							"line": 63,
							"character": 33
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1517,
							"typeArguments": [
								{
									"type": "reflection",
									"declaration": {
										"id": 1340,
										"name": "__type",
										"kind": 65536,
										"kindString": "Type literal",
										"flags": {
											"isExported": true
										},
										"indexSignature": [
											{
												"id": 1341,
												"name": "__index",
												"kind": 8192,
												"kindString": "Index signature",
												"flags": {
													"isExported": true
												},
												"parameters": [
													{
														"id": 1342,
														"name": "key",
														"kind": 32768,
														"kindString": "Parameter",
														"flags": {
															"isExported": true
														},
														"type": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"type": {
													"type": "intrinsic",
													"name": "any"
												}
											}
										],
										"sources": [
											{
												"fileName": "src/main/model/observable/ObservableObject.ts",
												"line": 63,
												"character": 69
											}
										]
									}
								}
							],
							"name": "ObservableContainerElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6225,
							"name": "HistoricalObject"
						},
						{
							"type": "reference",
							"id": 3061,
							"name": "RealTimeObject"
						}
					]
				},
				{
					"id": 1317,
					"name": "ObservableObjectEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The events that could be emitted by a [[RealTimeObject]] or [[HistoricalObject]]."
					},
					"children": [
						{
							"id": 1321,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 1322,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 1323,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 1319,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a key-value pair is [[RealTimeObject.remove|removed]] from a [[RealTimeObject]].\nSee [[ObjectRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 38,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1318,
							"name": "SET",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a value is [[RealTimeObject.set|initially set or replaced]] on a [[RealTimeObject]].\nSee [[ObjectSetEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 30,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 1320,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeObject.value|value]] of a [[RealTimeObject]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[ObjectSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 47,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								1321,
								1322,
								1323,
								1319,
								1318,
								1320
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableObject.ts",
							"line": 23,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 3054,
							"name": "RealTimeObjectEvents"
						},
						{
							"type": "reference",
							"id": 6218,
							"name": "HistoricalObjectEvents"
						}
					]
				},
				{
					"id": 2523,
					"name": "ObservableString",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2548,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2549,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2550,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2551,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 2573,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2574,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 2526,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2527,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 2538,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2539,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 2536,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2537,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 2524,
							"name": "length",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2525,
									"name": "length",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 72,
									"character": 8
								}
							]
						},
						{
							"id": 2542,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2543,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 2569,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2570,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2571,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2572,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 2552,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2553,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2554,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2555,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 2556,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2557,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2558,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2559,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 2534,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2535,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 2530,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2531,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 2532,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2533,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 2560,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2561,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 2565,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2566,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2567,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2568,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 2562,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2563,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2564,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 2544,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2545,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 2528,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2529,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 2540,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2541,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2548,
								2573,
								2526,
								2538,
								2536,
								2524,
								2542,
								2569,
								2552,
								2556,
								2534,
								2530,
								2532,
								2560,
								2565,
								2562,
								2544,
								2528,
								2540
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableString.ts",
							"line": 71,
							"character": 33
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "string"
								}
							],
							"name": "ObservableElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6538,
							"name": "HistoricalString"
						},
						{
							"type": "reference",
							"id": 2596,
							"name": "RealTimeString"
						}
					]
				},
				{
					"id": 2515,
					"name": "ObservableStringEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The events that could be emitted by a [[RealTimeString]] or [[HistoricalString]]."
					},
					"children": [
						{
							"id": 2520,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2516,
							"name": "INSERT",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when zero or more characters are [[RealTimeString.insert|inserted]] into a [[RealTimeString]].\nSee [[StringInsertEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 29,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 2521,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2522,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2517,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when characters are [[RealTimeString.remove|removed]] on a [[RealTimeString]].\nSee [[StringRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 37,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 2518,
							"name": "SPLICE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when characters are [[RealTimeString.splice|spliced]] on a [[RealTimeString]].\nSee [[StringSpliceEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 45,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 2519,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeString.value|value]] of a [[RealTimeString]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[StringSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 54,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2520,
								2516,
								2521,
								2522,
								2517,
								2518,
								2519
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableString.ts",
							"line": 22,
							"character": 39
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 2588,
							"name": "RealTimeStringEvents"
						},
						{
							"type": "reference",
							"id": 6530,
							"name": "HistoricalStringEvents"
						}
					]
				},
				{
					"id": 2717,
					"name": "ObservableUndefined",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2740,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2741,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2742,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2743,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 2765,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2766,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 2718,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2719,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 2730,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2731,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 2728,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2729,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 2734,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2735,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 2761,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2762,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2763,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2764,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 2744,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2745,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2746,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2747,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 2748,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2749,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2750,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2751,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 2726,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2727,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 2722,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2723,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 2724,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2725,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 2752,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2753,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 2757,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2758,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2759,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 2760,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 2754,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 2755,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 2756,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 2736,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2737,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 2720,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2721,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 2732,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 2733,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								2740,
								2765,
								2718,
								2730,
								2728,
								2734,
								2761,
								2744,
								2748,
								2726,
								2722,
								2724,
								2752,
								2757,
								2754,
								2736,
								2720,
								2732
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableUndefined.ts",
							"line": 28,
							"character": 36
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1452,
							"typeArguments": [
								{
									"type": "intrinsic",
									"name": "void"
								}
							],
							"name": "ObservableElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 6610,
							"name": "HistoricalUndefined"
						},
						{
							"type": "reference",
							"id": 2782,
							"name": "RealTimeUndefined"
						}
					]
				},
				{
					"id": 2712,
					"name": "ObservableUndefinedEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2714,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2715,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2716,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2713,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2714,
								2715,
								2716,
								2713
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableUndefined.ts",
							"line": 21,
							"character": 42
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					],
					"extendedBy": [
						{
							"type": "reference",
							"id": 2777,
							"name": "RealTimeUndefinedEvents"
						},
						{
							"type": "reference",
							"id": 6605,
							"name": "HistoricalUndefinedEvents"
						}
					]
				},
				{
					"id": 1847,
					"name": "RealTimeArrayEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An enumeration of the events that could be emitted by a [[RealTimeArray]]."
					},
					"children": [
						{
							"id": 1853,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 1848,
							"name": "INSERT",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a new value is [[RealTimeArray.insert|insert]]ed into a [[RealTimeArray]].\nThe emitted event is an [[ArrayInsertEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 30,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1651,
								"name": "ObservableArrayEvents.INSERT"
							}
						},
						{
							"id": 1854,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 1855,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 1849,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when an existing value is [[RealTimeArray.remove|removed]] from a [[RealTimeArray]].\nSee [[ArrayRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 38,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1652,
								"name": "ObservableArrayEvents.REMOVE"
							}
						},
						{
							"id": 1851,
							"name": "REORDER",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeArray.reorder|ordering]] of a [[RealTimeArray]] changes.\nSee [[ArrayReorderEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 54,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1654,
								"name": "ObservableArrayEvents.REORDER"
							}
						},
						{
							"id": 1850,
							"name": "SET",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a value is [[RealTimeArray.set|set]] on an [[RealTimeArray]].\nSee [[ArraySetEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 46,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1653,
								"name": "ObservableArrayEvents.SET"
							}
						},
						{
							"id": 1852,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeArray.value|value]] of a [[RealTimeArray]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[ArraySetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 63,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1655,
								"name": "ObservableArrayEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								1853,
								1848,
								1854,
								1855,
								1849,
								1851,
								1850,
								1852
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeArray.ts",
							"line": 44,
							"character": 36
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1650,
							"name": "ObservableArrayEvents"
						}
					]
				},
				{
					"id": 2084,
					"name": "RealTimeBooleanEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An enumeration of the events that could be emitted by a [[RealTimeBoolean]]."
					},
					"children": [
						{
							"id": 2086,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2087,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2088,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2085,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeBoolean.value|value]] of a [[RealTimeBoolean]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[BooleanSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableBoolean.ts",
									"line": 31,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2020,
								"name": "ObservableBooleanEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2086,
								2087,
								2088,
								2085
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeBoolean.ts",
							"line": 35,
							"character": 38
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2019,
							"name": "ObservableBooleanEvents"
						}
					]
				},
				{
					"id": 1582,
					"name": "RealTimeContainerElement",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An abstraction for `RealTimeElement`s with child elements."
					},
					"typeParameter": [
						{
							"id": 1583,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 1614,
							"name": "addListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1615,
									"name": "addListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1616,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1617,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 465,
										"name": "ConvergenceEventEmitter.addListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 89,
									"character": 20
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						},
						{
							"id": 1584,
							"name": "elementAt",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1585,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1586,
											"name": "path",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 1288,
												"name": "Path"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									},
									"overwrites": {
										"type": "reference",
										"id": 1346,
										"name": "ObservableContainerElement.elementAt"
									}
								},
								{
									"id": 1587,
									"name": "elementAt",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 1588,
											"name": "elements",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true,
												"isRest": true
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 1287,
													"name": "PathElement"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 5521,
										"name": "RealTimeElement"
									},
									"overwrites": {
										"type": "reference",
										"id": 1346,
										"name": "ObservableContainerElement.elementAt"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeContainerElement.ts",
									"line": 25,
									"character": 11
								},
								{
									"fileName": "src/main/model/rt/RealTimeContainerElement.ts",
									"line": 26,
									"character": 11
								}
							],
							"overwrites": {
								"type": "reference",
								"id": 1346,
								"name": "ObservableContainerElement.elementAt"
							}
						},
						{
							"id": 1639,
							"name": "events",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1640,
									"name": "events",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Provides the events emitted by this object as an Observable stream.",
										"returns": "\n  An Observable stream of all events emitted by this object.\n",
										"tags": [
											{
												"tag": "example",
												"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
											}
										]
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "Observable"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 490,
										"name": "ConvergenceEventEmitter.events"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 241,
									"character": 15
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						},
						{
							"id": 1592,
							"name": "id",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1593,
									"name": "id",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1351,
										"name": "ObservableElement.id"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 75,
									"character": 4
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1351,
								"name": "ObservableElement.id"
							}
						},
						{
							"id": 1604,
							"name": "isAttached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1605,
									"name": "isAttached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1363,
										"name": "ObservableElement.isAttached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 87,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1363,
								"name": "ObservableElement.isAttached"
							}
						},
						{
							"id": 1602,
							"name": "isDetached",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1603,
									"name": "isDetached",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1361,
										"name": "ObservableElement.isDetached"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 85,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1361,
								"name": "ObservableElement.isDetached"
							}
						},
						{
							"id": 1608,
							"name": "model",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1609,
									"name": "model",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1416,
										"name": "ObservableModel"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1367,
										"name": "ObservableElement.model"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 91,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1367,
								"name": "ObservableElement.model"
							}
						},
						{
							"id": 1635,
							"name": "off",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1636,
									"name": "off",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1637,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1638,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 486,
										"name": "ConvergenceEventEmitter.off"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 223,
									"character": 12
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						},
						{
							"id": 1618,
							"name": "on",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1619,
									"name": "on",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1620,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1621,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 469,
										"name": "ConvergenceEventEmitter.on"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 127,
									"character": 11
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						},
						{
							"id": 1622,
							"name": "once",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1623,
									"name": "once",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1624,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to add the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1625,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to register."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 473,
										"name": "ConvergenceEventEmitter.once"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 144,
									"character": 13
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						},
						{
							"id": 1600,
							"name": "parent",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1601,
									"name": "parent",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1517,
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "any"
											}
										],
										"name": "ObservableContainerElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1359,
										"name": "ObservableElement.parent"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 83,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1359,
								"name": "ObservableElement.parent"
							}
						},
						{
							"id": 1596,
							"name": "path",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1597,
									"name": "path",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1288,
										"name": "Path"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1355,
										"name": "ObservableElement.path"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 79,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1355,
								"name": "ObservableElement.path"
							}
						},
						{
							"id": 1598,
							"name": "relativePath",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1599,
									"name": "relativePath",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 1287,
										"name": "PathElement"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1357,
										"name": "ObservableElement.relativePath"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 81,
									"character": 14
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1357,
								"name": "ObservableElement.relativePath"
							}
						},
						{
							"id": 1626,
							"name": "removeAllListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1627,
									"name": "removeAllListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 477,
										"name": "ConvergenceEventEmitter.removeAllListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 159,
									"character": 27
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						},
						{
							"id": 1631,
							"name": "removeListener",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1632,
									"name": "removeListener",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a single event listener for a specific event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1633,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The name of the event to remove the listener for."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										},
										{
											"id": 1634,
											"name": "listener",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  The listener callback to unregister."
											},
											"type": {
												"type": "reference",
												"id": 500,
												"typeArguments": [
													{
														"type": "reference",
														"id": 426,
														"name": "IConvergenceEvent"
													}
												],
												"name": "ConvergenceEventListener"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 482,
										"name": "ConvergenceEventEmitter.removeListener"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 194,
									"character": 23
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						},
						{
							"id": 1628,
							"name": "removeListeners",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1629,
									"name": "removeListeners",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes all listeners bound on the given event.",
										"returns": "\n  This object, in support of a fluent API.\n"
									},
									"parameters": [
										{
											"id": 1630,
											"name": "event",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the name of the event to remove listeners for\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 455,
										"typeArguments": [
											{
												"type": "reference",
												"id": 426,
												"name": "IConvergenceEvent"
											}
										],
										"name": "ConvergenceEventEmitter"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 479,
										"name": "ConvergenceEventEmitter.removeListeners"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/ConvergenceEventEmitter.ts",
									"line": 174,
									"character": 24
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						},
						{
							"id": 1610,
							"name": "toJSON",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1611,
									"name": "toJSON",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "any"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1369,
										"name": "ObservableElement.toJSON"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 93,
									"character": 8
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1369,
								"name": "ObservableElement.toJSON"
							}
						},
						{
							"id": 1594,
							"name": "type",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1595,
									"name": "type",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1353,
										"name": "ObservableElement.type"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 77,
									"character": 6
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1353,
								"name": "ObservableElement.type"
							}
						},
						{
							"id": 1606,
							"name": "value",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 1607,
									"name": "value",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "typeParameter",
										"name": "T",
										"default": {
											"type": "intrinsic",
											"name": "any"
										}
									},
									"inheritedFrom": {
										"type": "reference",
										"id": 1365,
										"name": "ObservableElement.value"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 89,
									"character": 7
								}
							],
							"inheritedFrom": {
								"type": "reference",
								"id": 1365,
								"name": "ObservableElement.value"
							}
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1614,
								1584,
								1639,
								1592,
								1604,
								1602,
								1608,
								1635,
								1618,
								1622,
								1600,
								1596,
								1598,
								1626,
								1631,
								1628,
								1610,
								1594,
								1606
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeContainerElement.ts",
							"line": 24,
							"character": 41
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1517,
							"typeArguments": [
								{
									"type": "typeParameter",
									"name": "T",
									"default": {
										"type": "intrinsic",
										"name": "any"
									}
								}
							],
							"name": "ObservableContainerElement"
						}
					],
					"implementedBy": [
						{
							"type": "reference",
							"id": 1856,
							"name": "RealTimeArray"
						},
						{
							"type": "reference",
							"id": 3061,
							"name": "RealTimeObject"
						}
					]
				},
				{
					"id": 2943,
					"name": "RealTimeDateEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An enumeration of the events that could be emitted by a [[RealTimeDate]]."
					},
					"children": [
						{
							"id": 2945,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2946,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2947,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2944,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeDate.value|value]] of a [[RealTimeDate]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[DateSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableDate.ts",
									"line": 31,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2879,
								"name": "ObservableDateEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2945,
								2946,
								2947,
								2944
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeDate.ts",
							"line": 35,
							"character": 35
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2878,
							"name": "ObservableDateEvents"
						}
					]
				},
				{
					"id": 5516,
					"name": "RealTimeElementEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An enumeration of the events that could be emitted by a [[RealTimeElement]]."
					},
					"children": [
						{
							"id": 5518,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 5519,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 5520,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 5517,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								5518,
								5519,
								5520,
								5517
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeElement.ts",
							"line": 43,
							"character": 38
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1447,
							"name": "ObservableElementEvents"
						}
					]
				},
				{
					"id": 5165,
					"name": "RealTimeModelEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The complete list of events that could be emitted by a [[RealTimeModel]]."
					},
					"children": [
						{
							"id": 5180,
							"name": "CLOSED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a model is closed locally. The actual event emitted is a [[ModelClosedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 30,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1413,
								"name": "ObservableModelEvents.CLOSED"
							}
						},
						{
							"id": 5177,
							"name": "COLLABORATOR_CLOSED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when another user closes this model. The actual event is a [[CollaboratorClosedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 217,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5176,
							"name": "COLLABORATOR_OPENED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when another user opens this model. The actual event is a [[CollaboratorOpenedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 210,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5175,
							"name": "COMMITTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the server acknowledges a local modification.  Note that\nmultiple modifications may be batched together into a single\n`COMMITTED` response from the server.  See https://forum.convergence.io/t/behavior-of-model-version/16/4"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 203,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5181,
							"name": "DELETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a model is deleted. The actual event emitted is a [[ModelDeletedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 37,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1414,
								"name": "ObservableModelEvents.DELETED"
							}
						},
						{
							"id": 5174,
							"name": "MODIFIED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted immediately when a local modification is made to a model.\nThe emitted event is an [[ModelModifiedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 194,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5171,
							"name": "OFFLINE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this model goes offline. The actual emitted event is a [[ModelOfflineEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 167,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5172,
							"name": "ONLINE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this model comes back online after being offline.\nThe actual emitted event is a [[ModelOfflineEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 175,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5179,
							"name": "PERMISSIONS_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [permissions](https://docs.convergence.io/guide/models/permissions.html)\non this model change.  The actual emitted event is a [[ModelPermissionsChangedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 235,
									"character": 30
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5173,
							"name": "RECONNECTING",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the model is attempting to reconnect to the server after\nbeing offline. This only has to to with the connection; see\n[[RESYNC_STARTED]] and [[RESYNC_COMPLETED]] for data reconciliation events.",
								"text": "The actual emitted event is a [[ModelReconnectingEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 186,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5178,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a [Remote Reference](https://docs.convergence.io/guide/models/references/remote-references.html)\nis created on this model with [[RealTimeModel.elementReference]].",
								"text": "The actual emitted event is a [[RemoteReferenceCreatedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 227,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5170,
							"name": "REMOTE_RESYNC_COMPLETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote client has started a resync . The actual emitted\nevent is a [[RemoteResyncCompletedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 160,
									"character": 34
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5169,
							"name": "REMOTE_RESYNC_STARTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote client has started a resync . The actual emitted\nevent is a [[RemoteResyncStartedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 152,
									"character": 32
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5167,
							"name": "RESYNC_COMPLETED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the resync process ends. The actual emitted event is a\n[[ResyncCompletedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 136,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5168,
							"name": "RESYNC_ERROR",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the resync process encounters an error. The actual event\nis a [[ResyncErrorEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 144,
									"character": 23
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5166,
							"name": "RESYNC_STARTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the resync process begins.  This automatically happens\nwhen a client becomes disconnected and accumulates local changes\nthat must be reconciled with the server.",
								"text": "The actual event emitted is a [[ResyncStartedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/model/rt/RealTimeModel.ts",
									"line": 128,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 5182,
							"name": "VERSION_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the version of this model changes.  This could happen from\na local or remote change to this model. The actual emitted event is a [[VersionChangedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 45,
									"character": 26
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1415,
								"name": "ObservableModelEvents.VERSION_CHANGED"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								5180,
								5177,
								5176,
								5175,
								5181,
								5174,
								5171,
								5172,
								5179,
								5173,
								5178,
								5170,
								5169,
								5167,
								5168,
								5166,
								5182
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeModel.ts",
							"line": 118,
							"character": 36
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1412,
							"name": "ObservableModelEvents"
						}
					]
				},
				{
					"id": 2244,
					"name": "RealTimeNullEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2246,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2247,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2248,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2245,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2246,
								2247,
								2248,
								2245
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeNull.ts",
							"line": 27,
							"character": 35
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2179,
							"name": "ObservableNullEvents"
						}
					]
				},
				{
					"id": 2409,
					"name": "RealTimeNumberEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2410,
							"name": "DELTA",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the value of this number changes\n(but not explicitly set, listen to [[RealTimeNumberEvents.VALUE]] for that).\nThe emitted event is an [[NumberDeltaEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableNumber.ts",
									"line": 30,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2343,
								"name": "ObservableNumberEvents.DELTA"
							}
						},
						{
							"id": 2412,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2413,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2414,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2411,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeNumber.value|value]] of a [[RealTimeNumber]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[NumberSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableNumber.ts",
									"line": 39,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2344,
								"name": "ObservableNumberEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2410,
								2412,
								2413,
								2414,
								2411
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeNumber.ts",
							"line": 30,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2342,
							"name": "ObservableNumberEvents"
						}
					]
				},
				{
					"id": 3054,
					"name": "RealTimeObjectEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 3058,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 3059,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 3060,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 3056,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a key-value pair is [[RealTimeObject.remove|removed]] from a [[RealTimeObject]].\nSee [[ObjectRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 38,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1319,
								"name": "ObservableObjectEvents.REMOVE"
							}
						},
						{
							"id": 3055,
							"name": "SET",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a value is [[RealTimeObject.set|initially set or replaced]] on a [[RealTimeObject]].\nSee [[ObjectSetEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 30,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1318,
								"name": "ObservableObjectEvents.SET"
							}
						},
						{
							"id": 3057,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeObject.value|value]] of a [[RealTimeObject]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[ObjectSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 47,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1320,
								"name": "ObservableObjectEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								3058,
								3059,
								3060,
								3056,
								3055,
								3057
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeObject.ts",
							"line": 45,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 1317,
							"name": "ObservableObjectEvents"
						}
					]
				},
				{
					"id": 2588,
					"name": "RealTimeStringEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2593,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2589,
							"name": "INSERT",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when zero or more characters are [[RealTimeString.insert|inserted]] into a [[RealTimeString]].\nSee [[StringInsertEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 29,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2516,
								"name": "ObservableStringEvents.INSERT"
							}
						},
						{
							"id": 2594,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2595,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2590,
							"name": "REMOVE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when characters are [[RealTimeString.remove|removed]] on a [[RealTimeString]].\nSee [[StringRemoveEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 37,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2517,
								"name": "ObservableStringEvents.REMOVE"
							}
						},
						{
							"id": 2591,
							"name": "SPLICE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when characters are [[RealTimeString.splice|spliced]] on a [[RealTimeString]].\nSee [[StringSpliceEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 45,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2518,
								"name": "ObservableStringEvents.SPLICE"
							}
						},
						{
							"id": 2592,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the entire [[RealTimeString.value|value]] of a [[RealTimeString]] is set,\nmeaning its entire contents were replaced (or initially set).\nSee [[StringSetValueEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 54,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"overwrites": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 2519,
								"name": "ObservableStringEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2593,
								2589,
								2594,
								2595,
								2590,
								2591,
								2592
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeString.ts",
							"line": 46,
							"character": 37
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2515,
							"name": "ObservableStringEvents"
						}
					]
				},
				{
					"id": 2777,
					"name": "RealTimeUndefinedEvents",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"children": [
						{
							"id": 2779,
							"name": "DETACHED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when this element becomes detached, which typically happens when\nthe element is removed from its parent.\nAn [[ElementDetachedEvent]] is the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 41,
									"character": 19
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1321,
								"name": "ObservableElementEvents.DETACHED"
							}
						},
						{
							"id": 2780,
							"name": "MODEL_CHANGED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when any child element of this element has a change.\nSee [[ModelChangedEvent]] for details."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 49,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1322,
								"name": "ObservableElementEvents.MODEL_CHANGED"
							}
						},
						{
							"id": 2781,
							"name": "REFERENCE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when a remote [reference](https://docs.convergence.io/guide/models/references/references.html)\nis created on this [[RealTimeElement]].  See [[RemoteReferenceCreatedEvent]] for the actual emitted event."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 57,
									"character": 20
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1323,
								"name": "ObservableElementEvents.REFERENCE"
							}
						},
						{
							"id": 2778,
							"name": "VALUE",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "Emitted when the [[RealTimeElement.value|value]] of a [[RealTimeElement]] is set.\nSee the [[IValueChangedEvent]] interface."
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 32,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 1448,
								"name": "ObservableElementEvents.VALUE"
							}
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								2779,
								2780,
								2781,
								2778
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/rt/RealTimeUndefined.ts",
							"line": 33,
							"character": 40
						}
					],
					"extendedTypes": [
						{
							"type": "reference",
							"id": 2712,
							"name": "ObservableUndefinedEvents"
						}
					]
				},
				{
					"id": 3377,
					"name": "ReferenceFilter",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "An object used to query for remote references.  See [[RealTimeModel.references]]"
					},
					"children": [
						{
							"id": 3379,
							"name": "key",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ReferenceFilter.ts",
									"line": 22,
									"character": 5
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 3378,
							"name": "sessionId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"sources": [
								{
									"fileName": "src/main/model/reference/ReferenceFilter.ts",
									"line": 21,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								3379,
								3378
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/reference/ReferenceFilter.ts",
							"line": 20,
							"character": 32
						}
					]
				},
				{
					"id": 5147,
					"name": "ModelDataCallback",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A callback function that will result in some model data that will become the\nmodel's initial contents."
					},
					"sources": [
						{
							"fileName": "src/main/model/ModelDataInitializer.ts",
							"line": 21,
							"character": 29
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 5148,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 5149,
									"name": "__call",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 5144,
										"name": "ModelData"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/model/ModelDataInitializer.ts",
									"line": 21,
									"character": 31
								}
							]
						}
					}
				},
				{
					"id": 5150,
					"name": "ModelDataInitializer",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Either some data or a callback returning data can be provided."
					},
					"sources": [
						{
							"fileName": "src/main/model/ModelDataInitializer.ts",
							"line": 37,
							"character": 32
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "reference",
								"id": 5144,
								"name": "ModelData"
							},
							{
								"type": "reference",
								"id": 5147,
								"name": "ModelDataCallback"
							}
						]
					}
				},
				{
					"id": 4398,
					"name": "OfflineModelDownloadStatusChangeTrigger",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Indicates what triggered the change to the download status. A value of\n\"download\" indicates that the change was triggered by a model being\ndownloaded. A value of \"subscription_change\" indicates the event was\ntriggered by a change to the subscription.",
						"tags": [
							{
								"tag": "experimental",
								"text": "\n"
							}
						]
					},
					"sources": [
						{
							"fileName": "src/main/model/events/OfflineModelsDownloadStatusChangedEvent.ts",
							"line": 61,
							"character": 51
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "download"
							},
							{
								"type": "stringLiteral",
								"value": "subscription_changed"
							}
						]
					}
				},
				{
					"id": 1288,
					"name": "Path",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A `Path` is essentially a set of instructions for retrieving a particular piece of data\n(subtree) within a model's contents (JSON tree). e.g.",
						"text": "for a model with contents\n\n```json\n{\n  \"firstName\": \"James\",\n  \"kidsAges\": [4, 7, 9]\n}\n```\n\none could query:\n\n```typescript\nrealTimeModel.elementAt(['firstName']) // RealTimeString, value() => \"James\"\nrealTimeModel.elementAt(['kidsAges', 1]) // RealTimeNumber, value() => 7\n```\n\nSee the\n[developer guide](https://docs.convergence.io/guide/models/overview.html#paths) for\nmore examples of using paths to get parts of a model's contents.\n"
					},
					"sources": [
						{
							"fileName": "src/main/model/Path.ts",
							"line": 51,
							"character": 16
						}
					],
					"type": {
						"type": "array",
						"elementType": {
							"type": "reference",
							"id": 1287,
							"name": "PathElement"
						}
					}
				},
				{
					"id": 1287,
					"name": "PathElement",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A PathElement is a particular desired node within a [[RealTimeModel]]'s contents,\nwhich can be thought of as a JSON tree.",
						"text": "These have no meaning outside of a [[Path]].\n"
					},
					"sources": [
						{
							"fileName": "src/main/model/Path.ts",
							"line": 23,
							"character": 23
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "intrinsic",
								"name": "string"
							},
							{
								"type": "intrinsic",
								"name": "number"
							}
						]
					}
				},
				{
					"id": 1271,
					"name": "ReferenceType",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A unified type representing any type of reference."
					},
					"sources": [
						{
							"fileName": "src/main/model/reference/ReferenceType.ts",
							"line": 20,
							"character": 25
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "index"
							},
							{
								"type": "stringLiteral",
								"value": "range"
							},
							{
								"type": "stringLiteral",
								"value": "element"
							},
							{
								"type": "stringLiteral",
								"value": "property"
							}
						]
					}
				},
				{
					"id": 7223,
					"name": "ModelServiceEventConstants",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"children": [
						{
							"id": 7233,
							"name": "OFFLINE_MODELS_DOWNLOAD_COMPLETED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 240,
									"character": 35
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_completed"
							},
							"defaultValue": "\"offline_models_download_completed\""
						},
						{
							"id": 7231,
							"name": "OFFLINE_MODELS_DOWNLOAD_PENDING",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 238,
									"character": 33
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_pending"
							},
							"defaultValue": "\"offline_models_download_pending\""
						},
						{
							"id": 7232,
							"name": "OFFLINE_MODELS_DOWNLOAD_PROGRESS",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 239,
									"character": 34
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_download_progress"
							},
							"defaultValue": "\"offline_models_download_progress\""
						},
						{
							"id": 7237,
							"name": "OFFLINE_MODELS_SYNC_ABORTED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 245,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_aborted"
							},
							"defaultValue": "\"offline_models_sync_aborted\""
						},
						{
							"id": 7236,
							"name": "OFFLINE_MODELS_SYNC_COMPLETED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 244,
									"character": 31
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_completed"
							},
							"defaultValue": "\"offline_models_sync_completed\""
						},
						{
							"id": 7235,
							"name": "OFFLINE_MODELS_SYNC_PROGRESS",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 243,
									"character": 30
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_progress"
							},
							"defaultValue": "\"offline_models_sync_progress\""
						},
						{
							"id": 7234,
							"name": "OFFLINE_MODELS_SYNC_STARTED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 242,
									"character": 29
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_models_sync_started"
							},
							"defaultValue": "\"offline_models_sync_started\""
						},
						{
							"id": 7229,
							"name": "OFFLINE_MODEL_DELETED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 235,
									"character": 23
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_deleted"
							},
							"defaultValue": "\"offline_model_deleted\""
						},
						{
							"id": 7230,
							"name": "OFFLINE_MODEL_PERMISSIONS_REVOKED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 236,
									"character": 35
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_permissions_revoked"
							},
							"defaultValue": "\"offline_model_permissions_revoked\""
						},
						{
							"id": 7227,
							"name": "OFFLINE_MODEL_STATUS_CHANGED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 233,
									"character": 30
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_status_changed"
							},
							"defaultValue": "\"offline_model_status_changed\""
						},
						{
							"id": 7225,
							"name": "OFFLINE_MODEL_SYNC_COMPLETED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 230,
									"character": 30
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_completed"
							},
							"defaultValue": "\"offline_model_sync_completed\""
						},
						{
							"id": 7226,
							"name": "OFFLINE_MODEL_SYNC_ERROR",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 231,
									"character": 26
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_error"
							},
							"defaultValue": "\"offline_model_sync_error\""
						},
						{
							"id": 7224,
							"name": "OFFLINE_MODEL_SYNC_STARTED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 229,
									"character": 28
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_sync_started"
							},
							"defaultValue": "\"offline_model_sync_started\""
						},
						{
							"id": 7228,
							"name": "OFFLINE_MODEL_UPDATED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/ModelService.ts",
									"line": 234,
									"character": 23
								}
							],
							"type": {
								"type": "stringLiteral",
								"value": "offline_model_updated"
							},
							"defaultValue": "\"offline_model_updated\""
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								7233,
								7231,
								7232,
								7237,
								7236,
								7235,
								7234,
								7229,
								7230,
								7227,
								7225,
								7226,
								7224,
								7228
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/ModelService.ts",
							"line": 228,
							"character": 39
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				},
				{
					"id": 1734,
					"name": "ObservableArrayEventConstants",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"children": [
						{
							"id": 1735,
							"name": "INSERT",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 71,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"insert\""
						},
						{
							"id": 1736,
							"name": "REMOVE",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 72,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"remove\""
						},
						{
							"id": 1738,
							"name": "REORDER",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 74,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"reorder\""
						},
						{
							"id": 1737,
							"name": "SET",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableArray.ts",
									"line": 73,
									"character": 5
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"set\""
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								1735,
								1736,
								1738,
								1737
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableArray.ts",
							"line": 69,
							"character": 42
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				},
				{
					"id": 1511,
					"name": "ObservableElementEventConstants",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"children": [
						{
							"id": 1513,
							"name": "DETACHED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 65,
									"character": 10
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"detached\""
						},
						{
							"id": 1515,
							"name": "MODEL_CHANGED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 67,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"model_changed\""
						},
						{
							"id": 1514,
							"name": "REFERENCE",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 66,
									"character": 11
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"reference\""
						},
						{
							"id": 1512,
							"name": "VALUE",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableElement.ts",
									"line": 64,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"value\""
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								1513,
								1515,
								1514,
								1512
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableElement.ts",
							"line": 63,
							"character": 44
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				},
				{
					"id": 1442,
					"name": "ObservableModelEventConstants",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"children": [
						{
							"id": 1443,
							"name": "CLOSED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 52,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"closed\""
						},
						{
							"id": 1444,
							"name": "DELETED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 53,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"deleted\""
						},
						{
							"id": 1445,
							"name": "VERSION_CHANGED",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableModel.ts",
									"line": 54,
									"character": 17
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"version_changed\""
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								1443,
								1444,
								1445
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableModel.ts",
							"line": 51,
							"character": 42
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				},
				{
					"id": 2406,
					"name": "ObservableNumberEventConstants",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"children": [
						{
							"id": 2407,
							"name": "DELTA",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableNumber.ts",
									"line": 46,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"delta\""
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								2407
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableNumber.ts",
							"line": 45,
							"character": 43
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				},
				{
					"id": 1408,
					"name": "ObservableObjectEventConstants",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"children": [
						{
							"id": 1410,
							"name": "REMOVE",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 55,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"remove\""
						},
						{
							"id": 1409,
							"name": "SET",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableObject.ts",
									"line": 54,
									"character": 5
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"set\""
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								1410,
								1409
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableObject.ts",
							"line": 53,
							"character": 43
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				},
				{
					"id": 2583,
					"name": "ObservableStringEventConstants",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isExported": true,
						"isConst": true
					},
					"children": [
						{
							"id": 2584,
							"name": "INSERT",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 61,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"insert\""
						},
						{
							"id": 2585,
							"name": "REMOVE",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 62,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"remove\""
						},
						{
							"id": 2586,
							"name": "SPLICE",
							"kind": 32,
							"kindString": "Variable",
							"flags": {
								"isExported": true
							},
							"sources": [
								{
									"fileName": "src/main/model/observable/ObservableString.ts",
									"line": 63,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "\"splice\""
						}
					],
					"groups": [
						{
							"title": "Variables",
							"kind": 32,
							"children": [
								2584,
								2585,
								2586
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/model/observable/ObservableString.ts",
							"line": 60,
							"character": 43
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						6829,
						6319,
						6057,
						6675,
						6757,
						6127,
						6389,
						6459,
						6218,
						6530,
						6605,
						1256,
						6942,
						1245,
						3883,
						5152,
						1229,
						1260,
						3879,
						4213,
						6966,
						1233,
						1241,
						1249,
						1237,
						3888,
						3617,
						5144,
						3276,
						3269,
						1659,
						1650,
						2024,
						2019,
						1517,
						2883,
						2878,
						1452,
						1447,
						1416,
						1412,
						2184,
						2179,
						2348,
						2342,
						1324,
						1317,
						2523,
						2515,
						2717,
						2712,
						1847,
						2084,
						1582,
						2943,
						5516,
						5165,
						2244,
						2409,
						3054,
						2588,
						2777,
						3377
					]
				},
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						5147,
						5150,
						4398,
						1288,
						1287,
						1271
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						7223,
						1734,
						1511,
						1442,
						2406,
						1408,
						2583
					]
				},
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						3895,
						3913,
						3931,
						3949,
						3969,
						4035,
						4355,
						4345,
						4049,
						4163,
						5617,
						6838,
						6324,
						6680,
						6762,
						6134,
						6394,
						6465,
						6225,
						6538,
						6610,
						3513,
						5710,
						5792,
						3425,
						5874,
						5956,
						4171,
						4189,
						3238,
						4365,
						4201,
						4373,
						4267,
						4259,
						4629,
						4219,
						4237,
						4275,
						3280,
						4577,
						6981,
						4077,
						4063,
						3983,
						4001,
						4021,
						4506,
						4466,
						4514,
						4490,
						4446,
						4454,
						4438,
						4478,
						4381,
						4389,
						4400,
						4428,
						4422,
						4414,
						4406,
						3724,
						3620,
						1856,
						2089,
						2948,
						5521,
						5183,
						2249,
						2415,
						3061,
						2596,
						2782,
						3214,
						3226,
						3196,
						4309,
						4333,
						4321,
						4291,
						4299,
						4283,
						4093,
						4111,
						4149,
						4129,
						4249
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/model/index.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 1021,
			"name": "Users and Identity",
			"kind": 1,
			"kindString": "Module",
			"flags": {
				"isExported": true
			},
			"originalName": "/Users/michael/development/convergence/client/convergence-client-javascript/src/main/identity/index.ts",
			"comment": {
				"shortText": "This subsystem provides a suite of utilities for looking up users and groups\nin the current domain.",
				"text": "See some common use cases in the [developer guide](https://docs.convergence.io/guide/identity/overview.html).\n"
			},
			"children": [
				{
					"id": 769,
					"name": "DomainUserType",
					"kind": 4,
					"kindString": "Enumeration",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The different \"types\" of [[DomainUser]]s in Convergence."
					},
					"children": [
						{
							"id": 772,
							"name": "ANONYMOUS",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Indicates that this user authenticated anonymously and is therefore transient."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 41,
									"character": 11
								}
							],
							"defaultValue": "\"anonymous\""
						},
						{
							"id": 771,
							"name": "CONVERGENCE",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "\"convergence\" users can be thought of as \"meta\" or admin-level users.\nMost consuming applications shouldn't need to deal with Convergence users;\ncurrently they're only used in the real-time model browser of the Convergence\nAdministration Console."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 36,
									"character": 13
								}
							],
							"defaultValue": "\"convergence\""
						},
						{
							"id": 770,
							"name": "NORMAL",
							"kind": 16,
							"kindString": "Enumeration member",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "\"normal\" domain users are the typical users of your application."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 28,
									"character": 8
								}
							],
							"defaultValue": "\"normal\""
						}
					],
					"groups": [
						{
							"title": "Enumeration members",
							"kind": 16,
							"children": [
								772,
								771,
								770
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/identity/DomainUserId.ts",
							"line": 24,
							"character": 26
						}
					]
				},
				{
					"id": 832,
					"name": "ConvergenceSession",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This represents connection state information for a\nparticular connection to a specific domain.  It is tied to the client device\nrather than the user, so a single user could potentially have multiple sessions\nopen at a time."
					},
					"children": [
						{
							"id": 855,
							"name": "assertOnline",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 856,
									"name": "assertOnline",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Asserts that the user is currently authenticated, throwing a [[ConvergenceError]] if not."
									},
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/ConvergenceSession.ts",
									"line": 115,
									"character": 21
								}
							]
						},
						{
							"id": 845,
							"name": "domain",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 846,
									"name": "domain",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "The ConvergenceDomain for this session\n"
									},
									"type": {
										"type": "reference",
										"id": 10652,
										"name": "ConvergenceDomain"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/ConvergenceSession.ts",
									"line": 80,
									"character": 15
								}
							]
						},
						{
							"id": 853,
							"name": "isConnected",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 854,
									"name": "isConnected",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "True if the client is connected to the domain\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/ConvergenceSession.ts",
									"line": 108,
									"character": 20
								}
							]
						},
						{
							"id": 851,
							"name": "reconnectToken",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 852,
									"name": "reconnectToken",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "The reconnectToken for the authenticated client or null if not authenticated\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/ConvergenceSession.ts",
									"line": 101,
									"character": 23
								}
							]
						},
						{
							"id": 847,
							"name": "sessionId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 848,
									"name": "sessionId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "The sessionId of the connected client\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/ConvergenceSession.ts",
									"line": 87,
									"character": 18
								}
							]
						},
						{
							"id": 849,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 850,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "The user associated with the authenticated client or null if not authenticated\n"
									},
									"type": {
										"type": "reference",
										"id": 812,
										"name": "DomainUser"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/ConvergenceSession.ts",
									"line": 94,
									"character": 13
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								855,
								845,
								853,
								851,
								847,
								849
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceSession.ts",
							"line": 29,
							"character": 31
						}
					]
				},
				{
					"id": 812,
					"name": "DomainUser",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A read-only representation of a particular user in Convergence. Any identification information\navailable in Convergence for this user can be accessed here."
					},
					"children": [
						{
							"id": 813,
							"name": "anonymous",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if this user connected anonymously."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 28,
									"character": 27
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 814,
							"name": "convergence",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if this user is an authenticated Convergence user as opposed to a domain user.\nMost consuming applications shouldn't need to deal with Convergence users; currently\nthey're only used in the real-time model browser of the Convergence Administration Console."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 35,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 822,
							"name": "displayName",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This user's display name"
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 75,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 823,
							"name": "email",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This user's email"
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 80,
									"character": 25
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 820,
							"name": "firstName",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This user's first name"
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 65,
									"character": 29
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 821,
							"name": "lastName",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isOptional": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This user's last name"
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 70,
									"character": 28
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 815,
							"name": "normal",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "True if this user is an authenticated domain user."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 40,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						},
						{
							"id": 816,
							"name": "userId",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The unique ID for this user, regardless of user type."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 45,
									"character": 24
								}
							],
							"type": {
								"type": "reference",
								"id": 773,
								"name": "DomainUserId"
							}
						},
						{
							"id": 818,
							"name": "userType",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This user's type."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 55,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 769,
								"name": "DomainUserType"
							}
						},
						{
							"id": 819,
							"name": "username",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "This user's username, unique for this domain."
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUser.ts",
									"line": 60,
									"character": 28
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								813,
								814,
								822,
								823,
								820,
								821,
								815,
								816,
								818,
								819
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/identity/DomainUser.ts",
							"line": 23,
							"character": 23
						}
					]
				},
				{
					"id": 773,
					"name": "DomainUserId",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "This is a convenience class providing utilities to help identity a particular\nDomain User. A guid is the best means of uniquely identifing a user within a domain,\nwhich combines their [[userType]] with [[username]].",
						"text": "[[DomainUserId]]s are read-only.\n"
					},
					"children": [
						{
							"id": 800,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Constructs a `DomainUserId` from the given user type and username."
							},
							"signatures": [
								{
									"id": 803,
									"name": "new DomainUserId",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Constructs a `DomainUserId` from the given user type and username."
									},
									"parameters": [
										{
											"id": 804,
											"name": "userType",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"shortText": "the type of user"
											},
											"type": {
												"type": "reference",
												"id": 769,
												"name": "DomainUserType"
											}
										},
										{
											"id": 805,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"shortText": "the user's username\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 773,
										"name": "DomainUserId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 159,
									"character": 33
								}
							]
						},
						{
							"id": 801,
							"name": "userType",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "the type of user"
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 168,
									"character": 28
								}
							],
							"type": {
								"type": "reference",
								"id": 769,
								"name": "DomainUserType"
							}
						},
						{
							"id": 802,
							"name": "username",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "the user's username\n"
							},
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 169,
									"character": 28
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 808,
							"name": "equals",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 809,
									"name": "equals",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns true if this user is the same as the given user."
									},
									"parameters": [
										{
											"id": 810,
											"name": "other",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "another domain user\n"
											},
											"type": {
												"type": "reference",
												"id": 773,
												"name": "DomainUserId"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 188,
									"character": 15
								}
							]
						},
						{
							"id": 806,
							"name": "toGuid",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 807,
									"name": "toGuid",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a string GUID for this user guaranteed to be unique within this domain."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 179,
									"character": 15
								}
							]
						},
						{
							"id": 777,
							"name": "anonymous",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 778,
									"name": "anonymous",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Constructs a \"anonymous\" `DomainUserId` by username."
									},
									"parameters": [
										{
											"id": 779,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the anonymous user's unique username.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 773,
										"name": "DomainUserId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 69,
									"character": 25
								}
							]
						},
						{
							"id": 780,
							"name": "convergence",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 781,
									"name": "convergence",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Constructs a \"convergence\" `DomainUserId` by username."
									},
									"parameters": [
										{
											"id": 782,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the convergence user's unique username.\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 773,
										"name": "DomainUserId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 78,
									"character": 27
								}
							]
						},
						{
							"id": 787,
							"name": "fromGuid",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 788,
									"name": "fromGuid",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Constructs a DomainUserId from a guid.",
										"returns": "A new DomainUserId, deserialized from the guid.",
										"tags": [
											{
												"tag": "see",
												"text": "guid\n"
											}
										]
									},
									"parameters": [
										{
											"id": 789,
											"name": "guid",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the type of user\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 773,
										"name": "DomainUserId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 102,
									"character": 24
								}
							]
						},
						{
							"id": 783,
							"name": "guid",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 784,
									"name": "guid",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Constructs a GUID from the given user type and username.",
										"text": "Equivalent to `new DomainUserId(userType, username).toGuid()`\n"
									},
									"parameters": [
										{
											"id": 785,
											"name": "userType",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the type of user"
											},
											"type": {
												"type": "reference",
												"id": 769,
												"name": "DomainUserType"
											}
										},
										{
											"id": 786,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the user's username\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 90,
									"character": 20
								}
							]
						},
						{
							"id": 774,
							"name": "normal",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 775,
									"name": "normal",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Constructs a \"normal\" `DomainUserId` by username."
									},
									"parameters": [
										{
											"id": 776,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the normal user's unique username\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 773,
										"name": "DomainUserId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 60,
									"character": 22
								}
							]
						},
						{
							"id": 796,
							"name": "of",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 797,
									"name": "of",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This is a convenience function to construct a `DomainUserId` from a bare username."
									},
									"parameters": [
										{
											"id": 798,
											"name": "userId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a \"normal\" user's username or DomainUserId\n"
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 773,
										"name": "DomainUserId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 151,
									"character": 18
								}
							]
						},
						{
							"id": 793,
							"name": "toDomainUserId",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 794,
									"name": "toDomainUserId",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "This is a convenience function to construct a `DomainUserId` from a bare username.",
										"tags": [
											{
												"tag": "deprecated",
												"text": "use of().\n"
											}
										]
									},
									"parameters": [
										{
											"id": 795,
											"name": "userId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a \"normal\" user's username or DomainUserId"
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 773,
										"name": "DomainUserId"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 142,
									"character": 30
								}
							]
						},
						{
							"id": 790,
							"name": "toDomainUserType",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 791,
									"name": "toDomainUserType",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Validates a string value is a proper DomainUserType string\nand returns it. Otherwise will throw and error.",
										"returns": "A valid DomainUserType string.\n"
									},
									"parameters": [
										{
											"id": 792,
											"name": "typeStr",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The type string to validate."
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 769,
										"name": "DomainUserType"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserId.ts",
									"line": 123,
									"character": 32
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								800
							]
						},
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								801,
								802
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								808,
								806,
								777,
								780,
								787,
								783,
								774,
								796,
								793,
								790
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/identity/DomainUserId.ts",
							"line": 53,
							"character": 25
						}
					]
				},
				{
					"id": 974,
					"name": "DomainUserIdMap",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The DomainUserIdMap is a utility class that will uniquely map a set\nof Convergence Domain User Ids to values."
					},
					"typeParameter": [
						{
							"id": 975,
							"name": "V",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"children": [
						{
							"id": 988,
							"name": "constructor",
							"kind": 512,
							"kindString": "Constructor",
							"flags": {
								"isExported": true
							},
							"signatures": [
								{
									"id": 989,
									"name": "new DomainUserIdMap",
									"kind": 16384,
									"kindString": "Constructor signature",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "reference",
										"id": 974,
										"name": "DomainUserIdMap"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 77,
									"character": 40
								}
							]
						},
						{
							"id": 1000,
							"name": "delete",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1001,
									"name": "delete",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Removes a user from the map."
									},
									"parameters": [
										{
											"id": 1002,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The user to remove.\n"
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 118,
									"character": 15
								}
							]
						},
						{
							"id": 1005,
							"name": "entries",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1006,
									"name": "entries",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "All mappings in the map as tuples. Each tuple is represented by\nand array in the format of [key, value].\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "tuple",
											"elements": [
												{
													"type": "reference",
													"id": 773,
													"name": "DomainUserId"
												},
												{
													"type": "typeParameter",
													"name": "V"
												}
											]
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 133,
									"character": 16
								}
							]
						},
						{
							"id": 1009,
							"name": "forEach",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1010,
									"name": "forEach",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Allows consumers to iterate of the maps (key, value) pairs."
									},
									"parameters": [
										{
											"id": 1011,
											"name": "callback",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The iteration callback.\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 1012,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 1013,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 1014,
																	"name": "value",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "typeParameter",
																		"name": "V"
																	}
																},
																{
																	"id": 1015,
																	"name": "userId",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "reference",
																		"id": 773,
																		"name": "DomainUserId"
																	}
																}
															],
															"type": {
																"type": "intrinsic",
																"name": "void"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/identity/DomainUserIdMap.ts",
															"line": 149,
															"character": 26
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 149,
									"character": 16
								}
							]
						},
						{
							"id": 990,
							"name": "get",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 991,
									"name": "get",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Gets the current value for the given user.",
										"returns": "The value mapped to for the supplied user, or undefined\n  if the user does not exist in the map.\n"
									},
									"parameters": [
										{
											"id": 992,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The user to get the value for."
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "union",
										"types": [
											{
												"type": "typeParameter",
												"name": "V"
											},
											{
												"type": "intrinsic",
												"name": "undefined"
											}
										]
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 89,
									"character": 12
								}
							]
						},
						{
							"id": 997,
							"name": "has",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 998,
									"name": "has",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Determines if the map contains a particular domain user.",
										"returns": "True if the user is in the map, false otherwise.\n"
									},
									"parameters": [
										{
											"id": 999,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The user to check."
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 109,
									"character": 12
								}
							]
						},
						{
							"id": 1003,
							"name": "keys",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1004,
									"name": "keys",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "the [[DomainUserId]]s of all of the users in the map.\n"
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 773,
											"name": "DomainUserId"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 125,
									"character": 13
								}
							]
						},
						{
							"id": 993,
							"name": "set",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 994,
									"name": "set",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Sets a mapping between a user and a value in the map."
									},
									"parameters": [
										{
											"id": 995,
											"name": "user",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The user to set the value for."
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										},
										{
											"id": 996,
											"name": "value",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The value to set.\n"
											},
											"type": {
												"type": "typeParameter",
												"name": "V"
											}
										}
									],
									"type": {
										"type": "intrinsic",
										"name": "void"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 99,
									"character": 12
								}
							]
						},
						{
							"id": 1007,
							"name": "size",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1008,
									"name": "size",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"returns": "The number of users contained in the map.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 140,
									"character": 13
								}
							]
						},
						{
							"id": 1016,
							"name": "toGuidObjectMap",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 1017,
									"name": "toGuidObjectMap",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns this user id mapping as a plain JavaScript Object\nusing the DomainUserId's guidas the map key."
									},
									"type": {
										"type": "reflection",
										"declaration": {
											"id": 1018,
											"name": "__type",
											"kind": 65536,
											"kindString": "Type literal",
											"flags": {
												"isExported": true
											},
											"indexSignature": [
												{
													"id": 1019,
													"name": "__index",
													"kind": 8192,
													"kindString": "Index signature",
													"flags": {
														"isExported": true
													},
													"parameters": [
														{
															"id": 1020,
															"name": "key",
															"kind": 32768,
															"kindString": "Parameter",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													],
													"type": {
														"type": "typeParameter",
														"name": "V"
													}
												}
											],
											"sources": [
												{
													"fileName": "src/main/identity/DomainUserIdMap.ts",
													"line": 159,
													"character": 27
												}
											]
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 159,
									"character": 24
								}
							]
						},
						{
							"id": 980,
							"name": "fromGuidObjectMap",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 981,
									"name": "fromGuidObjectMap",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates a new DomainUserIdMap from a plan JavaScript object\nwhose keys are DomainUserId guid's.",
										"returns": "The JavaScript object map converted to a DomainUserIdMap.\n"
									},
									"typeParameter": [
										{
											"id": 982,
											"name": "V",
											"kind": 131072,
											"kindString": "Type parameter",
											"flags": {
												"isExported": true
											}
										}
									],
									"parameters": [
										{
											"id": 983,
											"name": "map",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The guid mapping.\n"
											},
											"type": {
												"type": "reflection",
												"declaration": {
													"id": 984,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"indexSignature": [
														{
															"id": 985,
															"name": "__index",
															"kind": 8192,
															"kindString": "Index signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 986,
																	"name": "key",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"type": {
																"type": "typeParameter",
																"name": "V"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/identity/DomainUserIdMap.ts",
															"line": 64,
															"character": 41
														}
													]
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 974,
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "V"
											}
										],
										"name": "DomainUserIdMap"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 64,
									"character": 33
								}
							]
						},
						{
							"id": 976,
							"name": "of",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isStatic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 977,
									"name": "of",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Creates a new DomainUserIdMap from a source. If the soruce is a Map\nwhose keys are strings, the strings will be assumed to be normal\nusernames and will be converted into DomainUserIds using the\nDomainUserIds.normal() method.",
										"returns": "A new DomainUserIdMap object.\n"
									},
									"typeParameter": [
										{
											"id": 978,
											"name": "V",
											"kind": 131072,
											"kindString": "Type parameter",
											"flags": {
												"isExported": true
											}
										}
									],
									"parameters": [
										{
											"id": 979,
											"name": "source",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "The source of user mapping data.\n"
											},
											"type": {
												"type": "reference",
												"id": 971,
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "V"
													}
												],
												"name": "DomainUserMapping"
											}
										}
									],
									"type": {
										"type": "reference",
										"id": 974,
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "V"
											}
										],
										"name": "DomainUserIdMap"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/DomainUserIdMap.ts",
									"line": 40,
									"character": 18
								}
							]
						}
					],
					"groups": [
						{
							"title": "Constructors",
							"kind": 512,
							"children": [
								988
							]
						},
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								1000,
								1005,
								1009,
								990,
								997,
								1003,
								993,
								1007,
								1016,
								980,
								976
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/identity/DomainUserIdMap.ts",
							"line": 28,
							"character": 28
						}
					]
				},
				{
					"id": 894,
					"name": "IdentityService",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Provides a suite of utilities for looking up users and groups in the current domain.",
						"text": "See some common use cases in the [developer guide](https://docs.convergence.io/guide/identity/overview.html).\n\nNote that users and groups cannot (yet) be managed through this service.  See the\nREST API for domain user and group management.\n\nThis service can be accessed using [[ConvergenceDomain.identity]].\n"
					},
					"children": [
						{
							"id": 918,
							"name": "group",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 919,
									"name": "group",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Looks up a single user group by ID.  Rejects the promise if no group by the\nprovided ID exists.",
										"returns": "a promise to be resolved if the group exists, otherwise a rejection\n"
									},
									"parameters": [
										{
											"id": 920,
											"name": "id",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "the user group's ID\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 874,
												"name": "UserGroup"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 222,
									"character": 14
								}
							]
						},
						{
							"id": 915,
							"name": "groups",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 916,
									"name": "groups",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Looks up one or more User Groups by their User Group Ids. Each returned\nUser Group will contain the details of the User Group, including an array\nof users ids for those users that are members of the group.",
										"text": "Note: that if any of the provided User Group Ids does not exist, the\npromise will be rejected.\n",
										"returns": "\n  A promise resolved with an array of [[UserGroup]]s that positionally\n  correspond to the supplied User Group Id's.\n"
									},
									"parameters": [
										{
											"id": 917,
											"name": "ids",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "\n  An array of UserGroup Id's for the groups to get.\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 874,
													"name": "UserGroup"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 199,
									"character": 15
								}
							]
						},
						{
							"id": 921,
							"name": "groupsForUser",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 922,
									"name": "groupsForUser",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Looks up the groups to which the provided user belongs.",
										"returns": "a promise to be resolved with an array of group IDs to which the given user belongs\n"
									},
									"parameters": [
										{
											"id": 923,
											"name": "username",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an existing user's username\n"
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 233,
									"character": 22
								}
							]
						},
						{
							"id": 924,
							"name": "groupsForUsers",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 925,
									"name": "groupsForUsers",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Looks up the groups to which the provided users belong.",
										"returns": "a promise to be resolved with an array of group IDs to which the given user belongs\n"
									},
									"parameters": [
										{
											"id": 926,
											"name": "usernames",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an array of usernames\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reflection",
												"declaration": {
													"id": 927,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"indexSignature": [
														{
															"id": 928,
															"name": "__index",
															"kind": 8192,
															"kindString": "Index signature",
															"flags": {
																"isExported": true
															},
															"parameters": [
																{
																	"id": 929,
																	"name": "key",
																	"kind": 32768,
																	"kindString": "Parameter",
																	"flags": {
																		"isExported": true
																	},
																	"type": {
																		"type": "intrinsic",
																		"name": "string"
																	}
																}
															],
															"type": {
																"type": "array",
																"elementType": {
																	"type": "intrinsic",
																	"name": "string"
																}
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/identity/IdentityService.ts",
															"line": 245,
															"character": 54
														}
													]
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 245,
									"character": 23
								}
							]
						},
						{
							"id": 901,
							"name": "profile",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 902,
									"name": "profile",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Returns a promise that resolves with some information about the current user.",
										"returns": "a promise to be resolved with the current user's information\n"
									},
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 812,
												"name": "DomainUser"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 77,
									"character": 16
								}
							]
						},
						{
							"id": 912,
							"name": "search",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 913,
									"name": "search",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Searches for [[DomainUser]]s based on the provided query configuration.",
										"returns": "A promise to be resolved with an array of users, or an empty array\nif there are no matches\n"
									},
									"parameters": [
										{
											"id": 914,
											"name": "query",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "a query configuration including the actual query and fields to search on\n"
											},
											"type": {
												"type": "reference",
												"id": 867,
												"name": "UserQuery"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 812,
													"name": "DomainUser"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 152,
									"character": 15
								}
							]
						},
						{
							"id": 899,
							"name": "session",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 900,
									"name": "session",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "The current session."
									},
									"type": {
										"type": "reference",
										"id": 832,
										"name": "ConvergenceSession"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 68,
									"character": 16
								}
							]
						},
						{
							"id": 906,
							"name": "user",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 907,
									"name": "user",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Looks up a user by either a username or [[DomainUserId]].",
										"returns": "a promise which will be resolved with a [[DomainUser]] if one is found,\notherwise `undefined`\n"
									},
									"parameters": [
										{
											"id": 908,
											"name": "userId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "either a username string or [[DomainUserId]]\n"
											},
											"type": {
												"type": "reference",
												"id": 767,
												"name": "DomainUserIdentifier"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "reference",
												"id": 812,
												"name": "DomainUser"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 95,
									"character": 13
								}
							]
						},
						{
							"id": 903,
							"name": "userExists",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 904,
									"name": "userExists",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 905,
											"name": "userId",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "reference",
												"id": 773,
												"name": "DomainUserId"
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "boolean"
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 81,
									"character": 19
								}
							]
						},
						{
							"id": 909,
							"name": "users",
							"kind": 2048,
							"kindString": "Method",
							"flags": {
								"isPublic": true,
								"isExported": true
							},
							"signatures": [
								{
									"id": 910,
									"name": "users",
									"kind": 4096,
									"kindString": "Call signature",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "Looks up multiple users at once by username or [[DomainUserId]].",
										"returns": "a promise which will be resolved with an array of length equal to `users`,\nwith a [[DomainUser]] or `undefined` for each user query\n"
									},
									"parameters": [
										{
											"id": 911,
											"name": "users",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"comment": {
												"text": "an array of username strings, [[DomainUserId]]s, or any combination therein\n"
											},
											"type": {
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 767,
													"name": "DomainUserIdentifier"
												}
											}
										}
									],
									"type": {
										"type": "reference",
										"typeArguments": [
											{
												"type": "array",
												"elementType": {
													"type": "reference",
													"id": 812,
													"name": "DomainUser"
												}
											}
										],
										"name": "Promise"
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/identity/IdentityService.ts",
									"line": 119,
									"character": 14
								}
							]
						}
					],
					"groups": [
						{
							"title": "Methods",
							"kind": 2048,
							"children": [
								918,
								915,
								921,
								924,
								901,
								912,
								899,
								906,
								903,
								909
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/identity/IdentityService.ts",
							"line": 50,
							"character": 28
						}
					]
				},
				{
					"id": 874,
					"name": "UserGroup",
					"kind": 128,
					"kindString": "Class",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A group of [[DomainUser]]s.  Contains meta information about the group plus\nusernames of all the member users."
					},
					"children": [
						{
							"id": 877,
							"name": "description",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The description of the group, if set"
							},
							"sources": [
								{
									"fileName": "src/main/identity/UserGroup.ts",
									"line": 38,
									"character": 31
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 876,
							"name": "id",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The ID of the group"
							},
							"sources": [
								{
									"fileName": "src/main/identity/UserGroup.ts",
									"line": 33,
									"character": 22
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						},
						{
							"id": 878,
							"name": "members",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isPublic": true,
								"isExported": true,
								"isConstructorProperty": true,
								"isReadonly": true
							},
							"comment": {
								"shortText": "The usernames of all the users contained in this group."
							},
							"sources": [
								{
									"fileName": "src/main/identity/UserGroup.ts",
									"line": 43,
									"character": 27
								}
							],
							"type": {
								"type": "array",
								"elementType": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								877,
								876,
								878
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/identity/UserGroup.ts",
							"line": 23,
							"character": 22
						}
					]
				},
				{
					"id": 867,
					"name": "UserQuery",
					"kind": 256,
					"kindString": "Interface",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A configuration for a query for [[DomainUser]]s. [[term]] and [[fields]] are\nrequired.",
						"text": "See the [developer guide](https://docs.convergence.io/guide/identity/overview.html)\nfor an example.\n"
					},
					"children": [
						{
							"id": 869,
							"name": "fields",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The field or fields on which to query"
							},
							"sources": [
								{
									"fileName": "src/main/identity/UserQuery.ts",
									"line": 36,
									"character": 8
								}
							],
							"type": {
								"type": "union",
								"types": [
									{
										"type": "reference",
										"id": 933,
										"name": "UserField"
									},
									{
										"type": "array",
										"elementType": {
											"type": "reference",
											"id": 933,
											"name": "UserField"
										}
									}
								]
							}
						},
						{
							"id": 871,
							"name": "limit",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "An optional maximum number of search results to return.  Useful when there are\nmany potential matches and pagination is desired."
							},
							"sources": [
								{
									"fileName": "src/main/identity/UserQuery.ts",
									"line": 58,
									"character": 7
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 870,
							"name": "offset",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "For pagination, the zero-based offset of query results.  Optional.",
								"text": "E.g. To get the second page of ten user results:\n\n```\nidentityService.search({\n  fields: \"lastName\",\n  term: \"smith\",\n  offset: 10,\n  limit: 10\n})\n```\n"
							},
							"sources": [
								{
									"fileName": "src/main/identity/UserQuery.ts",
									"line": 52,
									"character": 8
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "number"
							}
						},
						{
							"id": 872,
							"name": "orderBy",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true,
								"isOptional": true
							},
							"comment": {
								"shortText": "An optional configuration for ordering by a given field and direction."
							},
							"sources": [
								{
									"fileName": "src/main/identity/UserQuery.ts",
									"line": 63,
									"character": 9
								}
							],
							"type": {
								"type": "reference",
								"id": 549,
								"name": "OrderBy"
							}
						},
						{
							"id": 868,
							"name": "term",
							"kind": 1024,
							"kindString": "Property",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "The search query, e.g. `smith`"
							},
							"sources": [
								{
									"fileName": "src/main/identity/UserQuery.ts",
									"line": 31,
									"character": 6
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"groups": [
						{
							"title": "Properties",
							"kind": 1024,
							"children": [
								869,
								871,
								870,
								872,
								868
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/identity/UserQuery.ts",
							"line": 27,
							"character": 34
						}
					]
				},
				{
					"id": 767,
					"name": "DomainUserIdentifier",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "A string representing the username of a \"normal\" user or [[DomainUserId]]."
					},
					"sources": [
						{
							"fileName": "src/main/identity/DomainUserIdentifier.ts",
							"line": 22,
							"character": 32
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "intrinsic",
								"name": "string"
							},
							{
								"type": "reference",
								"id": 773,
								"name": "DomainUserId"
							}
						]
					}
				},
				{
					"id": 971,
					"name": "DomainUserMapping",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The DomainUserMapping type defines the union type for the multiple ways\na domain user might be mapped to a value."
					},
					"typeParameter": [
						{
							"id": 972,
							"name": "T",
							"kind": 131072,
							"kindString": "Type parameter",
							"flags": {
								"isExported": true
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/identity/DomainUserMapping.ts",
							"line": 11,
							"character": 29
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "reference",
								"id": 965,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T"
									}
								],
								"name": "StringMapLike"
							},
							{
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 767,
										"name": "DomainUserIdentifier"
									},
									{
										"type": "typeParameter",
										"name": "T"
									}
								],
								"name": "Map"
							},
							{
								"type": "reference",
								"id": 974,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T"
									}
								],
								"name": "DomainUserIdMap"
							}
						]
					}
				},
				{
					"id": 933,
					"name": "UserField",
					"kind": 4194304,
					"kindString": "Type alias",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The fields of a user that are available to be queried on. See [[search]]"
					},
					"sources": [
						{
							"fileName": "src/main/identity/IdentityService.ts",
							"line": 34,
							"character": 21
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "stringLiteral",
								"value": "username"
							},
							{
								"type": "stringLiteral",
								"value": "email"
							},
							{
								"type": "stringLiteral",
								"value": "firstName"
							},
							{
								"type": "stringLiteral",
								"value": "lastName"
							},
							{
								"type": "stringLiteral",
								"value": "displayName"
							}
						]
					}
				}
			],
			"groups": [
				{
					"title": "Type aliases",
					"kind": 4194304,
					"children": [
						767,
						971,
						933
					]
				},
				{
					"title": "Enumerations",
					"kind": 4,
					"children": [
						769
					]
				},
				{
					"title": "Classes",
					"kind": 128,
					"children": [
						832,
						812,
						773,
						974,
						894,
						874
					]
				},
				{
					"title": "Interfaces",
					"kind": 256,
					"children": [
						867
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/identity/index.ts",
					"line": 1,
					"character": 0
				}
			]
		},
		{
			"id": 2,
			"name": "LogLevel",
			"kind": 4,
			"kindString": "Enumeration",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "Defines the available logging levels for Convergence."
			},
			"children": [
				{
					"id": 4,
					"name": "DEBUG",
					"kind": 16,
					"kindString": "Enumeration member",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/LogLevel.ts",
							"line": 20,
							"character": 7
						}
					],
					"defaultValue": "\"debug\""
				},
				{
					"id": 7,
					"name": "ERROR",
					"kind": 16,
					"kindString": "Enumeration member",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/LogLevel.ts",
							"line": 23,
							"character": 7
						}
					],
					"defaultValue": "\"error\""
				},
				{
					"id": 5,
					"name": "INFO",
					"kind": 16,
					"kindString": "Enumeration member",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/LogLevel.ts",
							"line": 21,
							"character": 6
						}
					],
					"defaultValue": "\"info\""
				},
				{
					"id": 8,
					"name": "SILENT",
					"kind": 16,
					"kindString": "Enumeration member",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/LogLevel.ts",
							"line": 24,
							"character": 8
						}
					],
					"defaultValue": "\"silent\""
				},
				{
					"id": 3,
					"name": "TRACE",
					"kind": 16,
					"kindString": "Enumeration member",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/LogLevel.ts",
							"line": 19,
							"character": 7
						}
					],
					"defaultValue": "\"trace\""
				},
				{
					"id": 6,
					"name": "WARN",
					"kind": 16,
					"kindString": "Enumeration member",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/LogLevel.ts",
							"line": 22,
							"character": 6
						}
					],
					"defaultValue": "\"warn\""
				}
			],
			"groups": [
				{
					"title": "Enumeration members",
					"kind": 16,
					"children": [
						4,
						7,
						5,
						8,
						3,
						6
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/log/LogLevel.ts",
					"line": 18,
					"character": 20
				}
			]
		},
		{
			"id": 8717,
			"name": "AbstractPermissionManager",
			"kind": 128,
			"kindString": "Class",
			"flags": {
				"isExported": true,
				"isAbstract": true
			},
			"typeParameter": [
				{
					"id": 8718,
					"name": "T",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {
						"isExported": true
					},
					"type": {
						"type": "intrinsic",
						"name": "string"
					}
				}
			],
			"children": [
				{
					"id": 8753,
					"name": "addGroupPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8754,
							"name": "addGroupPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds the given permissions to any existing permissions for all\ngiven groups.",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8755,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  an object, mapping group Ids to an set of desired permission strings to be added\n"
									},
									"type": {
										"type": "reference",
										"id": 965,
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "typeParameter",
																"name": "T",
																"constraint": {
																	"type": "intrinsic",
																	"name": "string"
																}
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "typeParameter",
															"name": "T",
															"constraint": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													}
												]
											}
										],
										"name": "StringMapLike"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 306,
							"character": 28
						}
					]
				},
				{
					"id": 8738,
					"name": "addUserPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8739,
							"name": "addUserPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds the given permissions to any existing permissions for all\ngiven users.",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8740,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  an object, mapping usernames to an set of desired permission strings to be added\n"
									},
									"type": {
										"type": "reference",
										"id": 971,
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "typeParameter",
																"name": "T",
																"constraint": {
																	"type": "intrinsic",
																	"name": "string"
																}
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "typeParameter",
															"name": "T",
															"constraint": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													}
												]
											}
										],
										"name": "DomainUserMapping"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 192,
							"character": 27
						}
					]
				},
				{
					"id": 8727,
					"name": "addWorldPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8728,
							"name": "addWorldPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds the given permissions to any existing WORLD permissions.",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8729,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "an set of permission strings\n"
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "T",
														"constraint": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"name": "Set"
											},
											{
												"type": "array",
												"elementType": {
													"type": "typeParameter",
													"name": "T",
													"constraint": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 109,
							"character": 28
						}
					]
				},
				{
					"id": 8763,
					"name": "getAllGroupPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8764,
							"name": "getAllGroupPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Returns the permissions for all groups.",
								"returns": "\n  A promise, which resolves with a map of permission strings per group ID.\n"
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"typeArguments": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "T",
														"constraint": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"name": "Set"
											}
										],
										"name": "Map"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 385,
							"character": 31
						}
					]
				},
				{
					"id": 8748,
					"name": "getAllUserPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8749,
							"name": "getAllUserPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Returns the permissions for all users.",
								"returns": "\n  A promise, which resolves with a map of permission strings per username.\n"
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 974,
										"typeArguments": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "T",
														"constraint": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"name": "Set"
											}
										],
										"name": "DomainUserIdMap"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 273,
							"character": 30
						}
					]
				},
				{
					"id": 8765,
					"name": "getGroupPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8766,
							"name": "getGroupPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Returns the permissions for the given group.",
								"returns": "\n  A promise, which resolves with an set of permission strings\n"
							},
							"parameters": [
								{
									"id": 8767,
									"name": "groupId",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "an existing group ID\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										],
										"name": "Set"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 398,
							"character": 28
						}
					]
				},
				{
					"id": 8725,
					"name": "getPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8726,
							"name": "getPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 8711,
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										],
										"name": "IAllPermissions"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 69,
							"character": 23
						}
					]
				},
				{
					"id": 8750,
					"name": "getUserPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8751,
							"name": "getUserPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Returns the permissions for the given user.",
								"returns": "\n  A promise, which resolves with an set of permission strings\n"
							},
							"parameters": [
								{
									"id": 8752,
									"name": "username",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "an existing user's username\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										],
										"name": "Set"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 286,
							"character": 27
						}
					]
				},
				{
					"id": 8736,
					"name": "getWorldPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8737,
							"name": "getWorldPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Returns the permissions for WORLD.",
								"returns": "\n  A promise, which resolves with an set of permission strings\n"
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										],
										"name": "Set"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 173,
							"character": 28
						}
					]
				},
				{
					"id": 8756,
					"name": "removeGroupPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8757,
							"name": "removeGroupPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes the given permissions from any of the provided groups' permissions for this\n[[chatId]].",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8758,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  An object, mapping group IDs to an set of desired permission strings to be removed\n"
									},
									"type": {
										"type": "reference",
										"id": 965,
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "typeParameter",
																"name": "T",
																"constraint": {
																	"type": "intrinsic",
																	"name": "string"
																}
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "typeParameter",
															"name": "T",
															"constraint": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													}
												]
											}
										],
										"name": "StringMapLike"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 331,
							"character": 31
						}
					]
				},
				{
					"id": 8741,
					"name": "removeUserPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8742,
							"name": "removeUserPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes the given permissions from any of the provided users' permissions for this\n[[chatId]].",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8743,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  An object, mapping usernames to an set of desired permission strings to be removed\n"
									},
									"type": {
										"type": "reference",
										"id": 971,
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "typeParameter",
																"name": "T",
																"constraint": {
																	"type": "intrinsic",
																	"name": "string"
																}
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "typeParameter",
															"name": "T",
															"constraint": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													}
												]
											}
										],
										"name": "DomainUserMapping"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 219,
							"character": 30
						}
					]
				},
				{
					"id": 8730,
					"name": "removeWorldPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8731,
							"name": "removeWorldPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes the given permissions from any existing WORLD permissions.",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8732,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "an set of permission strings\n"
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "T",
														"constraint": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"name": "Set"
											},
											{
												"type": "array",
												"elementType": {
													"type": "typeParameter",
													"name": "T",
													"constraint": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 131,
							"character": 31
						}
					]
				},
				{
					"id": 8723,
					"name": "resolveSessionPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8724,
							"name": "resolveSessionPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Returns the *resolved* permissions for the current user for this target.\nResolved means computed from the set of any relevant `world`, `group` or `user`\npermissions."
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "intrinsic",
													"name": "string"
												}
											}
										],
										"name": "Set"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 55,
							"character": 34
						}
					]
				},
				{
					"id": 8759,
					"name": "setGroupPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8760,
							"name": "setGroupPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Sets the given permissions for the given groups.",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8761,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  an object which maps one or more group IDs to their new set of permissions"
									},
									"type": {
										"type": "reference",
										"id": 965,
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "typeParameter",
																"name": "T",
																"constraint": {
																	"type": "intrinsic",
																	"name": "string"
																}
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "typeParameter",
															"name": "T",
															"constraint": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													}
												]
											}
										],
										"name": "StringMapLike"
									}
								},
								{
									"id": 8762,
									"name": "replaceAll",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  Determines if the map passed in represents the entire set of group\n  permissions to set.  All permissions for other groups will be removed.\n  The default is false.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "false"
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 359,
							"character": 28
						}
					]
				},
				{
					"id": 8744,
					"name": "setUserPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8745,
							"name": "setUserPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Sets the given permissions for the given users",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8746,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  an object which maps one or more usernames to their new set of permissions"
									},
									"type": {
										"type": "reference",
										"id": 971,
										"typeArguments": [
											{
												"type": "union",
												"types": [
													{
														"type": "reference",
														"typeArguments": [
															{
																"type": "typeParameter",
																"name": "T",
																"constraint": {
																	"type": "intrinsic",
																	"name": "string"
																}
															}
														],
														"name": "Set"
													},
													{
														"type": "array",
														"elementType": {
															"type": "typeParameter",
															"name": "T",
															"constraint": {
																"type": "intrinsic",
																"name": "string"
															}
														}
													}
												]
											}
										],
										"name": "DomainUserMapping"
									}
								},
								{
									"id": 8747,
									"name": "replaceAll",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  Determines if the map passed in represents the entire set of user\n  permissions to set.  All permissions for other user will be removed.\n  The default is false.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "boolean"
									},
									"defaultValue": "false"
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 248,
							"character": 27
						}
					]
				},
				{
					"id": 8733,
					"name": "setWorldPermissions",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 8734,
							"name": "setWorldPermissions",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Sets the given permissions for WORLD.",
								"returns": "\n  A resolved promise if successful\n"
							},
							"parameters": [
								{
									"id": 8735,
									"name": "permissions",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "an set of permission strings\n"
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"typeArguments": [
													{
														"type": "typeParameter",
														"name": "T",
														"constraint": {
															"type": "intrinsic",
															"name": "string"
														}
													}
												],
												"name": "Set"
											},
											{
												"type": "array",
												"elementType": {
													"type": "typeParameter",
													"name": "T",
													"constraint": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
							"line": 153,
							"character": 28
						}
					]
				}
			],
			"groups": [
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						8753,
						8738,
						8727,
						8763,
						8748,
						8765,
						8725,
						8750,
						8736,
						8756,
						8741,
						8730,
						8723,
						8759,
						8744,
						8733
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/permissions/AbstractPermissionsManager.ts",
					"line": 35,
					"character": 47
				}
			],
			"extendedBy": [
				{
					"type": "reference",
					"id": 8783,
					"name": "ActivityPermissionManager"
				},
				{
					"type": "reference",
					"id": 10087,
					"name": "ChatPermissionManager"
				}
			]
		},
		{
			"id": 10808,
			"name": "Convergence",
			"kind": 128,
			"kindString": "Class",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "This is the entry point for the Convergence JS client. It allows users to connect\nto the Convergence Engine using a variety of authentication methods. On success,\neach connection method returns a [[ConvergenceDomain]] bound to the\n[Domain](https://docs.convergence.io/guide/domain/overview.html) at the specified URL.",
				"text": "See the [Developer Guide](https://docs.convergence.io/guide/authentication/overview.html)\nfor more information about authentication options.\n"
			},
			"children": [
				{
					"id": 10846,
					"name": "configureLogging",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10847,
							"name": "configureLogging",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Allows customization of both the root (default) logger and any ancillary loggers.",
								"text": "```javascript\nConvergence.configureLogging({\n  root: LogLevel.ERROR,\n  loggers: {\n    \"connection\": LogLevel.DEBUG\n  }\n});\n```\n\nThe available loggers (and where / how they are used) are:\n\n- \"protocol\" (All messages to/from the server)\n- \"connection\" (High level connection and authentication messages)\n- \"socket\" (Low level WebSocket logs)\n- \"heartbeat\" (Heartbeat messages)\n- \"activities.activity\" ([[Activity]])\n- \"activities.service\" ([[ActivityService]])\n- \"models\" ([[ModelService]], [[RealTimeModel]])\n- \"storage\" (Offline store)\n"
							},
							"parameters": [
								{
									"id": 10848,
									"name": "config",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "the log levels for the root logger and any other loggers.\n"
									},
									"type": {
										"type": "reference",
										"id": 304,
										"name": "ILoggingConfigData"
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 196,
							"character": 32
						}
					]
				},
				{
					"id": 10809,
					"name": "connect",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10810,
							"name": "connect",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Connects to a Convergence Domain using username / password authentication.",
								"returns": "\n  A Promise which will be resolved with the [[ConvergenceDomain]] upon\n  successful connection.\n",
								"tags": [
									{
										"tag": "deprecated",
										"text": "\n  Use connectWithPassword instead.\n"
									}
								]
							},
							"parameters": [
								{
									"id": 10811,
									"name": "url",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The URL of the Convergence Domain to connect to."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10812,
									"name": "username",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The username of the Convergence Domain User to connect as."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10813,
									"name": "password",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The password for the corresponding Convergence Domain User."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10814,
									"name": "options",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Options that configure the behavior of the client."
									},
									"type": {
										"type": "reference",
										"id": 8220,
										"name": "IConvergenceOptions"
									}
								},
								{
									"id": 10815,
									"name": "cancellationToken",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Allow the user to bind a callback to cancel the connection.\n"
									},
									"type": {
										"type": "reference",
										"id": 532,
										"name": "CancellationToken"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 10652,
										"name": "ConvergenceDomain"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 63,
							"character": 23
						}
					]
				},
				{
					"id": 10824,
					"name": "connectAnonymously",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10825,
							"name": "connectAnonymously",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Connects to a Convergence Domain using anonymous authentication.  For this to\nwork, the domain must be configured to allow anonymous authentication.",
								"returns": "\n  A Promise which will be resolved with the [[ConvergenceDomain]] upon\n  successful connection.\n"
							},
							"parameters": [
								{
									"id": 10826,
									"name": "url",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The URL of the Convergence Domain to connect to."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10827,
									"name": "displayName",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  The display name to use for the anonymous user."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 10828,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 10829,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "intrinsic",
																		"name": "string"
																	}
																],
																"name": "Promise"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/Convergence.ts",
															"line": 113,
															"character": 59
														}
													]
												}
											}
										]
									}
								},
								{
									"id": 10830,
									"name": "options",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Options that configure the behavior of the client."
									},
									"type": {
										"type": "reference",
										"id": 8220,
										"name": "IConvergenceOptions"
									}
								},
								{
									"id": 10831,
									"name": "cancellationToken",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Allow the user to bind a callback to cancel the connection.\n"
									},
									"type": {
										"type": "reference",
										"id": 532,
										"name": "CancellationToken"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 10652,
										"name": "ConvergenceDomain"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 112,
							"character": 34
						}
					]
				},
				{
					"id": 10832,
					"name": "connectWithJwt",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10833,
							"name": "connectWithJwt",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Connects to a Convergence Domain using a JSON Web Token (JWT) for\nauthentication. See the [developer guide](https://docs.convergence.io/guide/authentication/json-web-tokens.html)\nfor information about configuring the server to accept JWTs.",
								"returns": "\n  A Promise which will be resolved with the [[ConvergenceDomain]] upon\n  successful connection.\n"
							},
							"parameters": [
								{
									"id": 10834,
									"name": "url",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The URL of the Convergence Domain to connect to."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10835,
									"name": "jwt",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  A valid JSON Web Token (JWT) indicating the Domain User to connect as."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 10836,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 10837,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "intrinsic",
																		"name": "string"
																	}
																],
																"name": "Promise"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/Convergence.ts",
															"line": 139,
															"character": 46
														}
													]
												}
											}
										]
									}
								},
								{
									"id": 10838,
									"name": "options",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Options that configure the behavior of the client."
									},
									"type": {
										"type": "reference",
										"id": 8220,
										"name": "IConvergenceOptions"
									}
								},
								{
									"id": 10839,
									"name": "cancellationToken",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Allow the user to bind a callback to cancel the connection.\n"
									},
									"type": {
										"type": "reference",
										"id": 532,
										"name": "CancellationToken"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 10652,
										"name": "ConvergenceDomain"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 138,
							"character": 30
						}
					]
				},
				{
					"id": 10816,
					"name": "connectWithPassword",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10817,
							"name": "connectWithPassword",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Connects to a Convergence Domain using username / password authentication.",
								"returns": "\n  A Promise which will be resolved with the [[ConvergenceDomain]] upon\n  successful connection.\n"
							},
							"parameters": [
								{
									"id": 10818,
									"name": "url",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The URL of the Convergence Domain to connect to."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10819,
									"name": "credentials",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The username and password of the Convergence Domain User to connect as."
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 8301,
												"name": "IUsernameAndPassword"
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 10820,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 10821,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 8301,
																		"name": "IUsernameAndPassword"
																	}
																],
																"name": "Promise"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/Convergence.ts",
															"line": 88,
															"character": 73
														}
													]
												}
											}
										]
									}
								},
								{
									"id": 10822,
									"name": "options",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Options that configure the behavior of the client."
									},
									"type": {
										"type": "reference",
										"id": 8220,
										"name": "IConvergenceOptions"
									}
								},
								{
									"id": 10823,
									"name": "cancellationToken",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Allow the user to bind a callback to cancel the connection.\n"
									},
									"type": {
										"type": "reference",
										"id": 532,
										"name": "CancellationToken"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 10652,
										"name": "ConvergenceDomain"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 87,
							"character": 35
						}
					]
				},
				{
					"id": 10840,
					"name": "reconnect",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10841,
							"name": "reconnect",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Reconnects to the specified domain using a previously generated reconnect\ntoken (which can be obtained from an existing [[ConvergenceSession]]).",
								"returns": "\n  A Promise which will be resolved with the [[ConvergenceDomain]] upon\n  successful connection.\n"
							},
							"parameters": [
								{
									"id": 10842,
									"name": "url",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The URL of the Convergence Domain to connect to"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10843,
									"name": "token",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The reconnect token to use for authentication"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10844,
									"name": "options",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Options that configure the behavior of the client."
									},
									"type": {
										"type": "reference",
										"id": 8220,
										"name": "IConvergenceOptions"
									}
								},
								{
									"id": 10845,
									"name": "cancellationToken",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  Allow the user to bind a callback to cancel the connection.\n"
									},
									"type": {
										"type": "reference",
										"id": 532,
										"name": "CancellationToken"
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 10652,
										"name": "ConvergenceDomain"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/Convergence.ts",
							"line": 163,
							"character": 25
						}
					]
				}
			],
			"groups": [
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						10846,
						10809,
						10824,
						10832,
						10816,
						10840
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/Convergence.ts",
					"line": 41,
					"character": 24
				}
			]
		},
		{
			"id": 10652,
			"name": "ConvergenceDomain",
			"kind": 128,
			"kindString": "Class",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "This represents a single connection to a specific Domain in\nConvergence. All interactions with the Domain start with this class, through\nseveral \"services\" that provide the following functionality:",
				"text": "- [[ModelService]]: Manage [models (data)](https://docs.convergence.io/guide/models/model-service.html)\n- [[IdentityService]]: Manage [users and groups](https://docs.convergence.io/guide/identity/overview.html)\n- [[ActivityService]]: Manage [activities](https://docs.convergence.io/guide/activities/overview.html)\n- [[PresenceService]]: Manage [presence](https://docs.convergence.io/guide/presence/overview.html)\n- [[ChatService]]: Create [chat](https://docs.convergence.io/guide/chat/overview.html)s and send and receive messages\n\nThis object itself is the result of a successful connection and authentication\nto a Convergence server via one of the [[Convergence]] connection methods.\nOr, to begin working in an offline state, instantiate this class directly.\n\nSee the [[Events]] section for all the possible events that could be emitted\nfrom a domain.\n"
			},
			"children": [
				{
					"id": 10685,
					"name": "constructor",
					"kind": 512,
					"kindString": "Constructor",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "Constructs a new ConvergenceDomain using the default options."
					},
					"signatures": [
						{
							"id": 10686,
							"name": "new ConvergenceDomain",
							"kind": 16384,
							"kindString": "Constructor signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Constructs a new ConvergenceDomain using the default options."
							},
							"parameters": [
								{
									"id": 10687,
									"name": "url",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "\n  The url of the convergence domain to connect to."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10688,
									"name": "options",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"shortText": "\n  Options that configure how the convergence domain is configured.\n"
									},
									"type": {
										"type": "reference",
										"id": 8220,
										"name": "IConvergenceOptions"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 10652,
								"name": "ConvergenceDomain"
							},
							"overwrites": {
								"type": "reference",
								"name": "ConvergenceEventEmitter.__constructor"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 237,
							"character": 59
						}
					],
					"overwrites": {
						"type": "reference",
						"name": "ConvergenceEventEmitter.__constructor"
					}
				},
				{
					"id": 10703,
					"name": "activities",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10704,
							"name": "activities",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Gets the ActivityService, which is used for interacting with\n[Activities](https://docs.convergence.io/guide/activities/overview.html).",
								"text": "```typescript\nconst activityService = domain.activities();\n```\n",
								"returns": "\n  The ActivityService from this ConvergenceDomain.\n"
							},
							"type": {
								"type": "reference",
								"id": 9089,
								"name": "ActivityService"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 375,
							"character": 19
						}
					]
				},
				{
					"id": 10772,
					"name": "addListener",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10773,
							"name": "addListener",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 10774,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to add the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10775,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to register."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "reference",
												"id": 4828,
												"name": "IConvergenceDomainEvent"
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4828,
										"name": "IConvergenceDomainEvent"
									}
								],
								"name": "ConvergenceEventEmitter"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 465,
								"name": "ConvergenceEventEmitter.addListener"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 89,
							"character": 20
						}
					],
					"inheritedFrom": {
						"type": "reference",
						"id": 465,
						"name": "ConvergenceEventEmitter.addListener"
					}
				},
				{
					"id": 10707,
					"name": "chat",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10708,
							"name": "chat",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Gets the ChatService, which is used to send and receive\n[chat messages](https://docs.convergence.io/guide/chat/overview.html).",
								"returns": "\n  The ChatService for this ConvergenceDomain.\n",
								"tags": [
									{
										"tag": "example",
										"text": "\n```typescript\n\nconst chatService = domain.chat();\n```\n"
									}
								]
							},
							"type": {
								"type": "reference",
								"id": 10512,
								"name": "ChatService"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 410,
							"character": 13
						}
					]
				},
				{
					"id": 10720,
					"name": "connectAnonymously",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10721,
							"name": "connectAnonymously",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Connects to a Convergence Domain using anonymous authentication.",
								"returns": "\n  A Promise which will be resolved upon successful connection and authentication.\n"
							},
							"parameters": [
								{
									"id": 10722,
									"name": "displayName",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  The optional display name to use for the anonymous user.\n  The display name can be supplied directly or can be supplied as a\n  factory function that will return a promise to obtain it.\n"
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 10723,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 10724,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "intrinsic",
																		"name": "string"
																	}
																],
																"name": "Promise"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/ConvergenceDomain.ts",
															"line": 511,
															"character": 52
														}
													]
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 511,
							"character": 27
						}
					]
				},
				{
					"id": 10725,
					"name": "connectWithJwt",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10726,
							"name": "connectWithJwt",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Connects to a Convergence Domain using a JSON Web Token (JWT) for\nauthentication.",
								"returns": "\n  A Promise which will be resolved upon successful connection and authentication.\n"
							},
							"parameters": [
								{
									"id": 10727,
									"name": "jwt",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  A valid JSON Web Token (JWT) indicating the Domain User to connect as.\n  The JWT can be supplied directly or can be supplied as a factory\n  function that will return a promise to obtain it.\n"
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 10728,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 10729,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "intrinsic",
																		"name": "string"
																	}
																],
																"name": "Promise"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/ConvergenceDomain.ts",
															"line": 530,
															"character": 39
														}
													]
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 530,
							"character": 23
						}
					]
				},
				{
					"id": 10715,
					"name": "connectWithPassword",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10716,
							"name": "connectWithPassword",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Connects to a Convergence Domain using username / password authentication.",
								"returns": "\n  A Promise which will be resolved upon successful connection and authentication.\n"
							},
							"parameters": [
								{
									"id": 10717,
									"name": "credentials",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The username and password of the Convergence Domain User to connect as.\n  The credentials can be supplied directly or can be supplied as a factory\n  function that will return a promise to obtain them.\n"
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 8301,
												"name": "IUsernameAndPassword"
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 10718,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 10719,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "reference",
																		"id": 8301,
																		"name": "IUsernameAndPassword"
																	}
																],
																"name": "Promise"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/ConvergenceDomain.ts",
															"line": 493,
															"character": 66
														}
													]
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 493,
							"character": 28
						}
					]
				},
				{
					"id": 10740,
					"name": "disconnect",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10741,
							"name": "disconnect",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Disconnects from the server, if connected."
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 588,
							"character": 19
						}
					]
				},
				{
					"id": 10711,
					"name": "dispose",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10712,
							"name": "dispose",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Disconnects from the server and releases all resources this domain is\nusing. After calling dispose(), the domain will no longer be usable.",
								"returns": "\n  A promise that is resolved when the ConvergenceDomain is disposed.\n",
								"tags": [
									{
										"tag": "example",
										"text": "\n```typescript\n\ndomain.dispose()\n  .then(() => console.log(\"disposed!\"))\n  .catch(e => console.error(e));\n```\n"
									}
								]
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 459,
							"character": 16
						}
					]
				},
				{
					"id": 10797,
					"name": "events",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10798,
							"name": "events",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Provides the events emitted by this object as an Observable stream.",
								"returns": "\n  An Observable stream of all events emitted by this object.\n",
								"tags": [
									{
										"tag": "example",
										"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
									}
								]
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"id": 4828,
										"name": "IConvergenceDomainEvent"
									}
								],
								"name": "Observable"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 490,
								"name": "ConvergenceEventEmitter.events"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 241,
							"character": 15
						}
					],
					"inheritedFrom": {
						"type": "reference",
						"id": 490,
						"name": "ConvergenceEventEmitter.events"
					}
				},
				{
					"id": 10695,
					"name": "id",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10696,
							"name": "id",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"returns": "The unique ID of this domain.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 323,
							"character": 11
						}
					]
				},
				{
					"id": 10701,
					"name": "identity",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10702,
							"name": "identity",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Gets the IdentityService, which is used for obtaining information about\n[Users](https://docs.convergence.io/guide/identity/overview.html).",
								"text": "```typescript\nconst identityService = domain.identity();\n```\n",
								"returns": "\n  The IdentityService for this ConvergenceDomain.\n"
							},
							"type": {
								"type": "reference",
								"id": 894,
								"name": "IdentityService"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 360,
							"character": 17
						}
					]
				},
				{
					"id": 10735,
					"name": "initializeOffline",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10736,
							"name": "initializeOffline",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Initializes the domain without connecting to the server. The method must\nbe provided the username of the normal domain user that will eventually\nconnect as.",
								"returns": "A Promise that will be completed when the domain is ready to use.\n",
								"tags": [
									{
										"tag": "experimental",
										"text": "\n"
									}
								]
							},
							"parameters": [
								{
									"id": 10737,
									"name": "username",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The username of the domain user to connect offline as.\n"
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 10738,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 10739,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "intrinsic",
																		"name": "string"
																	}
																],
																"name": "Promise"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/ConvergenceDomain.ts",
															"line": 571,
															"character": 47
														}
													]
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 571,
							"character": 26
						}
					]
				},
				{
					"id": 10744,
					"name": "isConnected",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10745,
							"name": "isConnected",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Determines if the domain is connected.",
								"returns": "true if the domain is connected; false otherwise.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 610,
							"character": 20
						}
					]
				},
				{
					"id": 10742,
					"name": "isDisconnected",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10743,
							"name": "isDisconnected",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Determines if the domain is disconnected.",
								"returns": "true if the domain is disconnected; false otherwise.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 601,
							"character": 23
						}
					]
				},
				{
					"id": 10713,
					"name": "isDisposed",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10714,
							"name": "isDisposed",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Determines if this domain is disposed.",
								"returns": "\n  True if the domain is disposed; false otherwise.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "boolean"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 478,
							"character": 19
						}
					]
				},
				{
					"id": 10699,
					"name": "models",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10700,
							"name": "models",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Gets the ModelService, which is used for interacting with\n[Real Time Models](https://docs.convergence.io/guide/models/overview.html).",
								"text": "```typescript\nconst modelService = domain.models();\n```\n",
								"returns": "\n  The ModelService for this ConvergenceDomain.\n"
							},
							"type": {
								"type": "reference",
								"id": 6981,
								"name": "ModelService"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 345,
							"character": 15
						}
					]
				},
				{
					"id": 10693,
					"name": "namespace",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10694,
							"name": "namespace",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"returns": "The namespace of this domain.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 316,
							"character": 18
						}
					]
				},
				{
					"id": 10793,
					"name": "off",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10794,
							"name": "off",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes a single event listener for a specific event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 10795,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to remove the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10796,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to unregister."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "reference",
												"id": 4828,
												"name": "IConvergenceDomainEvent"
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4828,
										"name": "IConvergenceDomainEvent"
									}
								],
								"name": "ConvergenceEventEmitter"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 486,
								"name": "ConvergenceEventEmitter.off"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 223,
							"character": 12
						}
					],
					"inheritedFrom": {
						"type": "reference",
						"id": 486,
						"name": "ConvergenceEventEmitter.off"
					}
				},
				{
					"id": 10776,
					"name": "on",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10777,
							"name": "on",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 10778,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to add the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10779,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to register."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "reference",
												"id": 4828,
												"name": "IConvergenceDomainEvent"
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4828,
										"name": "IConvergenceDomainEvent"
									}
								],
								"name": "ConvergenceEventEmitter"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 469,
								"name": "ConvergenceEventEmitter.on"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 127,
							"character": 11
						}
					],
					"inheritedFrom": {
						"type": "reference",
						"id": 469,
						"name": "ConvergenceEventEmitter.on"
					}
				},
				{
					"id": 10780,
					"name": "once",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10781,
							"name": "once",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 10782,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to add the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10783,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to register."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "reference",
												"id": 4828,
												"name": "IConvergenceDomainEvent"
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4828,
										"name": "IConvergenceDomainEvent"
									}
								],
								"name": "ConvergenceEventEmitter"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 473,
								"name": "ConvergenceEventEmitter.once"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 144,
							"character": 13
						}
					],
					"inheritedFrom": {
						"type": "reference",
						"id": 473,
						"name": "ConvergenceEventEmitter.once"
					}
				},
				{
					"id": 10691,
					"name": "options",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10692,
							"name": "options",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"returns": "\n The resolved options for this domain.\n"
							},
							"type": {
								"type": "reference",
								"id": 8220,
								"name": "IConvergenceOptions"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 309,
							"character": 16
						}
					]
				},
				{
					"id": 10705,
					"name": "presence",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10706,
							"name": "presence",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Gets the PresenceService, which is used to gain insight into the\n[presence](https://docs.convergence.io/guide/presence/overview.html)\nof Domain Users.",
								"returns": "\n  The PresenceService for this ConvergenceDomain.\n",
								"tags": [
									{
										"tag": "example",
										"text": "\n```typescript\n\nconst presenceService = domain.presence();\n```\n"
									}
								]
							},
							"type": {
								"type": "reference",
								"id": 9400,
								"name": "PresenceService"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 393,
							"character": 17
						}
					]
				},
				{
					"id": 10730,
					"name": "reconnect",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10731,
							"name": "reconnect",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Reconnects to the specified domain using a previously generated reconnect\ntoken.",
								"returns": "\n  A Promise which will be resolved upon successful connection and authentication.\n"
							},
							"parameters": [
								{
									"id": 10732,
									"name": "token",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true,
										"isOptional": true
									},
									"comment": {
										"text": "\n  The reconnect token to use for authentication.\n"
									},
									"type": {
										"type": "union",
										"types": [
											{
												"type": "intrinsic",
												"name": "string"
											},
											{
												"type": "reflection",
												"declaration": {
													"id": 10733,
													"name": "__type",
													"kind": 65536,
													"kindString": "Type literal",
													"flags": {
														"isExported": true
													},
													"signatures": [
														{
															"id": 10734,
															"name": "__call",
															"kind": 4096,
															"kindString": "Call signature",
															"flags": {
																"isExported": true
															},
															"type": {
																"type": "reference",
																"typeArguments": [
																	{
																		"type": "intrinsic",
																		"name": "string"
																	}
																],
																"name": "Promise"
															}
														}
													],
													"sources": [
														{
															"fileName": "src/main/ConvergenceDomain.ts",
															"line": 547,
															"character": 37
														}
													]
												}
											}
										]
									}
								}
							],
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "intrinsic",
										"name": "void"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 547,
							"character": 18
						}
					]
				},
				{
					"id": 10784,
					"name": "removeAllListeners",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10785,
							"name": "removeAllListeners",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4828,
										"name": "IConvergenceDomainEvent"
									}
								],
								"name": "ConvergenceEventEmitter"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 477,
								"name": "ConvergenceEventEmitter.removeAllListeners"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 159,
							"character": 27
						}
					],
					"inheritedFrom": {
						"type": "reference",
						"id": 477,
						"name": "ConvergenceEventEmitter.removeAllListeners"
					}
				},
				{
					"id": 10789,
					"name": "removeListener",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10790,
							"name": "removeListener",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes a single event listener for a specific event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 10791,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to remove the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 10792,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to unregister."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "reference",
												"id": 4828,
												"name": "IConvergenceDomainEvent"
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4828,
										"name": "IConvergenceDomainEvent"
									}
								],
								"name": "ConvergenceEventEmitter"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 482,
								"name": "ConvergenceEventEmitter.removeListener"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 194,
							"character": 23
						}
					],
					"inheritedFrom": {
						"type": "reference",
						"id": 482,
						"name": "ConvergenceEventEmitter.removeListener"
					}
				},
				{
					"id": 10786,
					"name": "removeListeners",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10787,
							"name": "removeListeners",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes all listeners bound on the given event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 10788,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "the name of the event to remove listeners for\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "reference",
										"id": 4828,
										"name": "IConvergenceDomainEvent"
									}
								],
								"name": "ConvergenceEventEmitter"
							},
							"inheritedFrom": {
								"type": "reference",
								"id": 479,
								"name": "ConvergenceEventEmitter.removeListeners"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 174,
							"character": 24
						}
					],
					"inheritedFrom": {
						"type": "reference",
						"id": 479,
						"name": "ConvergenceEventEmitter.removeListeners"
					}
				},
				{
					"id": 10709,
					"name": "serverTime",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10710,
							"name": "serverTime",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Gets the server's current time.  Callers should not that this will be an approximate\ntime based on network latency between the client and server. A potential way to get\na more accurate estimate would be to monitor the round trip time and decrease the\nresponse by half the round trip time. For example:",
								"returns": "The current server time, at the time the server received the request.\n",
								"tags": [
									{
										"tag": "example",
										"text": "\n\n```ts\nconst requestTime = Date.now();\ndomain.serverTime().then(serverTime => {\n  const responseTime = Date.now();\n  const delta = responseTime - requestTime;\n  const serverTimeEstimate = new Date(serverTime.getTime() - delta);\n  console.log(serverTimeEstimate);\n});\n```"
									}
								]
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "reference",
										"name": "Date"
									}
								],
								"name": "Promise"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 433,
							"character": 19
						}
					]
				},
				{
					"id": 10697,
					"name": "session",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10698,
							"name": "session",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"returns": "The ConvergenceSession attached to this domain.\n"
							},
							"type": {
								"type": "reference",
								"id": 832,
								"name": "ConvergenceSession"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 330,
							"character": 16
						}
					]
				},
				{
					"id": 10689,
					"name": "url",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 10690,
							"name": "url",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"returns": "\n  The url of the domain.\n"
							},
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 301,
							"character": 12
						}
					]
				},
				{
					"id": 10653,
					"name": "Events",
					"kind": 2097152,
					"kindString": "Object literal",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isExported": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "A list of all the events that could be emitted from a domain."
					},
					"children": [
						{
							"id": 10656,
							"name": "AUTHENTICATING",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the domain is actively attempting to authenticate.\nThe actual emitted event is an [[AuthenticatingEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/ConvergenceDomain.ts",
									"line": 104,
									"character": 18
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "AuthenticatingEvent.NAME"
						},
						{
							"id": 10657,
							"name": "CONNECTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the domain successfully (re)connected to the server.\nThe actual emitted event is a [[ConnectedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/ConvergenceDomain.ts",
									"line": 112,
									"character": 13
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ConnectedEvent.NAME"
						},
						{
							"id": 10655,
							"name": "CONNECTING",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the domain is actively attempting to connect to the server.\nThe actual emitted event is a [[ConnectingEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/ConvergenceDomain.ts",
									"line": 96,
									"character": 14
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ConnectingEvent.NAME"
						},
						{
							"id": 10658,
							"name": "CONNECTION_FAILED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when a connection attempt failed. The actual emitted event is\na [[ConnectionFailedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/ConvergenceDomain.ts",
									"line": 120,
									"character": 21
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ConnectionFailedEvent.NAME"
						},
						{
							"id": 10654,
							"name": "CONNECTION_SCHEDULED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the domain is scheduled to attempt to reconnect.\nThe actual emitted event is a [[ConnectionScheduledEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/ConvergenceDomain.ts",
									"line": 88,
									"character": 24
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ConnectionScheduledEvent.NAME"
						},
						{
							"id": 10660,
							"name": "DISCONNECTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the domain is currently disconnected and is not attempting\nto automatically reconnect. The actual emitted event is a [[DisconnectedEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/ConvergenceDomain.ts",
									"line": 139,
									"character": 16
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "DisconnectedEvent.NAME"
						},
						{
							"id": 10661,
							"name": "ERROR",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the domain encountered an unexpected error.\nThe actual emitted event is an [[ErrorEvent]]."
							},
							"sources": [
								{
									"fileName": "src/main/ConvergenceDomain.ts",
									"line": 147,
									"character": 9
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "ErrorEvent.NAME"
						},
						{
							"id": 10659,
							"name": "INTERRUPTED",
							"kind": 8388608,
							"kindString": "Event",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Emitted when the domain's connection was interrupted. This indicates that\nthe domain is in a state where it is currently disconnected, but is\nautomatically and continuously attempting to reconnect.",
								"text": "The actual emitted event is an [[InterruptedEvent]].\n"
							},
							"sources": [
								{
									"fileName": "src/main/ConvergenceDomain.ts",
									"line": 131,
									"character": 15
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "string"
							},
							"defaultValue": "InterruptedEvent.NAME"
						}
					],
					"groups": [
						{
							"title": "Events",
							"kind": 8388608,
							"children": [
								10656,
								10657,
								10655,
								10658,
								10654,
								10660,
								10661,
								10659
							]
						}
					],
					"sources": [
						{
							"fileName": "src/main/ConvergenceDomain.ts",
							"line": 81,
							"character": 31
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "object"
					}
				}
			],
			"groups": [
				{
					"title": "Constructors",
					"kind": 512,
					"children": [
						10685
					]
				},
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						10703,
						10772,
						10707,
						10720,
						10725,
						10715,
						10740,
						10711,
						10797,
						10695,
						10701,
						10735,
						10744,
						10742,
						10713,
						10699,
						10693,
						10793,
						10776,
						10780,
						10691,
						10705,
						10730,
						10784,
						10789,
						10786,
						10709,
						10697,
						10689
					]
				},
				{
					"title": "Object literals",
					"kind": 2097152,
					"children": [
						10653
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/ConvergenceDomain.ts",
					"line": 76,
					"character": 30
				}
			],
			"extendedTypes": [
				{
					"type": "reference",
					"id": 455,
					"typeArguments": [
						{
							"type": "reference",
							"id": 4828,
							"name": "IConvergenceDomainEvent"
						}
					],
					"name": "ConvergenceEventEmitter"
				}
			]
		},
		{
			"id": 429,
			"name": "ConvergenceError",
			"kind": 128,
			"kindString": "Class",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "The superclass of all errors within Convergence."
			},
			"children": [
				{
					"id": 451,
					"name": "message",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "node_modules/typescript/lib/lib.es5.d.ts",
							"line": 974,
							"character": 11
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"inheritedFrom": {
						"type": "reference",
						"id": 451,
						"name": "Error.message"
					}
				},
				{
					"id": 450,
					"name": "name",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "node_modules/typescript/lib/lib.es5.d.ts",
							"line": 973,
							"character": 8
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"inheritedFrom": {
						"type": "reference",
						"id": 450,
						"name": "Error.name"
					}
				},
				{
					"id": 452,
					"name": "stack",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true,
						"isOptional": true
					},
					"sources": [
						{
							"fileName": "node_modules/typescript/lib/lib.es5.d.ts",
							"line": 975,
							"character": 9
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"inheritedFrom": {
						"type": "reference",
						"id": 452,
						"name": "Error.stack"
					}
				},
				{
					"id": 453,
					"name": "Error",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isStatic": true,
						"isExported": true
					},
					"sources": [
						{
							"fileName": "node_modules/typescript/lib/lib.es5.d.ts",
							"line": 984,
							"character": 17
						}
					],
					"type": {
						"type": "reference",
						"name": "ErrorConstructor"
					},
					"extendedBy": [
						{
							"type": "reference",
							"id": 429,
							"name": "ConvergenceError"
						},
						{
							"type": "reference",
							"id": 506,
							"name": "ConvergenceServerError"
						}
					]
				},
				{
					"id": 443,
					"name": "code",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"getSignature": [
						{
							"id": 444,
							"name": "__get",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {
								"isExported": true
							},
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceError.ts",
							"line": 45,
							"character": 17
						}
					]
				},
				{
					"id": 445,
					"name": "details",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"getSignature": [
						{
							"id": 446,
							"name": "__get",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {
								"isExported": true
							},
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 447,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"indexSignature": [
										{
											"id": 448,
											"name": "__index",
											"kind": 8192,
											"kindString": "Index signature",
											"flags": {
												"isExported": true
											},
											"parameters": [
												{
													"id": 449,
													"name": "key",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isExported": true
													},
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/main/util/ConvergenceError.ts",
											"line": 49,
											"character": 23
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceError.ts",
							"line": 49,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						451,
						450,
						452,
						453
					]
				},
				{
					"title": "Accessors",
					"kind": 262144,
					"children": [
						443,
						445
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/ConvergenceError.ts",
					"line": 18,
					"character": 29
				}
			],
			"extendedTypes": [
				{
					"type": "reference",
					"id": 453,
					"name": "Error"
				}
			]
		},
		{
			"id": 455,
			"name": "ConvergenceEventEmitter",
			"kind": 128,
			"kindString": "Class",
			"flags": {
				"isExported": true,
				"isAbstract": true
			},
			"comment": {
				"shortText": "The ConvergenceEventEmitter is an abstract base class for all classes that\nfire events and provide an event registration mechanism to consumers."
			},
			"typeParameter": [
				{
					"id": 456,
					"name": "T",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "\n  The subclass of IConvergenceEvent that will be fired.\n"
					},
					"type": {
						"type": "reference",
						"id": 426,
						"name": "IConvergenceEvent"
					}
				}
			],
			"children": [
				{
					"id": 465,
					"name": "addListener",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 466,
							"name": "addListener",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 467,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to add the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 468,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to register."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "reference",
													"id": 426,
													"name": "IConvergenceEvent"
												}
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								],
								"name": "ConvergenceEventEmitter"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 89,
							"character": 20
						}
					]
				},
				{
					"id": 490,
					"name": "events",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 491,
							"name": "events",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Provides the events emitted by this object as an Observable stream.",
								"returns": "\n  An Observable stream of all events emitted by this object.\n",
								"tags": [
									{
										"tag": "example",
										"text": "\n```typescript\n\neventEmitter.events()\n  .filter(e => e.name === \"myevent\")\n  .subscribe(e => console.log(e));\n```\n"
									}
								]
							},
							"type": {
								"type": "reference",
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								],
								"name": "Observable"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 241,
							"character": 15
						}
					]
				},
				{
					"id": 486,
					"name": "off",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 487,
							"name": "off",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes a single event listener for a specific event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 488,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to remove the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 489,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to unregister."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "reference",
													"id": 426,
													"name": "IConvergenceEvent"
												}
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								],
								"name": "ConvergenceEventEmitter"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 223,
							"character": 12
						}
					]
				},
				{
					"id": 469,
					"name": "on",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 470,
							"name": "on",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds a new event listener for the specified event. The class will ignore\nduplicate registrations of the same listener to the same event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 471,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to add the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 472,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to register."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "reference",
													"id": 426,
													"name": "IConvergenceEvent"
												}
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								],
								"name": "ConvergenceEventEmitter"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 127,
							"character": 11
						}
					]
				},
				{
					"id": 473,
					"name": "once",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 474,
							"name": "once",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Adds a single shot event listener for the specified event. The listener\nwill be called the first time the specified event is fired after the\nevent registration occurs, after which the registration will be removed\nand no further events will be passed to the listener.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 475,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to add the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 476,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to register."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "reference",
													"id": 426,
													"name": "IConvergenceEvent"
												}
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								],
								"name": "ConvergenceEventEmitter"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 144,
							"character": 13
						}
					]
				},
				{
					"id": 477,
					"name": "removeAllListeners",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 478,
							"name": "removeAllListeners",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes all listeners for all events. This is useful for cleanup before\ndisposing of this particular event emitter.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								],
								"name": "ConvergenceEventEmitter"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 159,
							"character": 27
						}
					]
				},
				{
					"id": 482,
					"name": "removeListener",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 483,
							"name": "removeListener",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes a single event listener for a specific event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 484,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The name of the event to remove the listener for."
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								},
								{
									"id": 485,
									"name": "listener",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "\n  The listener callback to unregister."
									},
									"type": {
										"type": "reference",
										"id": 500,
										"typeArguments": [
											{
												"type": "typeParameter",
												"name": "T",
												"constraint": {
													"type": "reference",
													"id": 426,
													"name": "IConvergenceEvent"
												}
											}
										],
										"name": "ConvergenceEventListener"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								],
								"name": "ConvergenceEventEmitter"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 194,
							"character": 23
						}
					]
				},
				{
					"id": 479,
					"name": "removeListeners",
					"kind": 2048,
					"kindString": "Method",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"signatures": [
						{
							"id": 480,
							"name": "removeListeners",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"comment": {
								"shortText": "Removes all listeners bound on the given event.",
								"returns": "\n  This object, in support of a fluent API.\n"
							},
							"parameters": [
								{
									"id": 481,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"text": "the name of the event to remove listeners for\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "string"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 455,
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								],
								"name": "ConvergenceEventEmitter"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 174,
							"character": 24
						}
					]
				}
			],
			"groups": [
				{
					"title": "Methods",
					"kind": 2048,
					"children": [
						465,
						490,
						486,
						469,
						473,
						477,
						482,
						479
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/ConvergenceEventEmitter.ts",
					"line": 40,
					"character": 45
				}
			],
			"extendedBy": [
				{
					"type": "reference",
					"id": 1452,
					"name": "ObservableElement"
				},
				{
					"type": "reference",
					"id": 3280,
					"name": "ModelReference"
				},
				{
					"type": "reference",
					"id": 3425,
					"name": "LocalModelReference"
				},
				{
					"type": "reference",
					"id": 5183,
					"name": "RealTimeModel"
				},
				{
					"type": "reference",
					"id": 5521,
					"name": "RealTimeElement"
				},
				{
					"type": "reference",
					"id": 6762,
					"name": "HistoricalElement"
				},
				{
					"type": "reference",
					"id": 6981,
					"name": "ModelService"
				},
				{
					"type": "reference",
					"id": 8872,
					"name": "Activity"
				},
				{
					"type": "reference",
					"id": 9089,
					"name": "ActivityService"
				},
				{
					"type": "reference",
					"id": 9339,
					"name": "UserPresenceSubscription"
				},
				{
					"type": "reference",
					"id": 9400,
					"name": "PresenceService"
				},
				{
					"type": "reference",
					"id": 10149,
					"name": "Chat"
				},
				{
					"type": "reference",
					"id": 10512,
					"name": "ChatService"
				},
				{
					"type": "reference",
					"id": 10652,
					"name": "ConvergenceDomain"
				}
			]
		},
		{
			"id": 506,
			"name": "ConvergenceServerError",
			"kind": 128,
			"kindString": "Class",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "Indicates an error on the Convergence Server."
			},
			"children": [
				{
					"id": 528,
					"name": "message",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "node_modules/typescript/lib/lib.es5.d.ts",
							"line": 974,
							"character": 11
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"inheritedFrom": {
						"type": "reference",
						"id": 451,
						"name": "Error.message"
					}
				},
				{
					"id": 527,
					"name": "name",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "node_modules/typescript/lib/lib.es5.d.ts",
							"line": 973,
							"character": 8
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"inheritedFrom": {
						"type": "reference",
						"id": 450,
						"name": "Error.name"
					}
				},
				{
					"id": 529,
					"name": "stack",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true,
						"isOptional": true
					},
					"sources": [
						{
							"fileName": "node_modules/typescript/lib/lib.es5.d.ts",
							"line": 975,
							"character": 9
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"inheritedFrom": {
						"type": "reference",
						"id": 452,
						"name": "Error.stack"
					}
				},
				{
					"id": 530,
					"name": "Error",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isStatic": true,
						"isExported": true
					},
					"sources": [
						{
							"fileName": "node_modules/typescript/lib/lib.es5.d.ts",
							"line": 984,
							"character": 17
						}
					],
					"type": {
						"type": "reference",
						"name": "ErrorConstructor"
					}
				},
				{
					"id": 520,
					"name": "code",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"getSignature": [
						{
							"id": 521,
							"name": "__get",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {
								"isExported": true
							},
							"type": {
								"type": "intrinsic",
								"name": "string"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceServerError.ts",
							"line": 43,
							"character": 17
						}
					]
				},
				{
					"id": 522,
					"name": "details",
					"kind": 262144,
					"kindString": "Accessor",
					"flags": {
						"isPublic": true,
						"isExported": true
					},
					"getSignature": [
						{
							"id": 523,
							"name": "__get",
							"kind": 524288,
							"kindString": "Get signature",
							"flags": {
								"isExported": true
							},
							"type": {
								"type": "reflection",
								"declaration": {
									"id": 524,
									"name": "__type",
									"kind": 65536,
									"kindString": "Type literal",
									"flags": {
										"isExported": true
									},
									"indexSignature": [
										{
											"id": 525,
											"name": "__index",
											"kind": 8192,
											"kindString": "Index signature",
											"flags": {
												"isExported": true
											},
											"parameters": [
												{
													"id": 526,
													"name": "key",
													"kind": 32768,
													"kindString": "Parameter",
													"flags": {
														"isExported": true
													},
													"type": {
														"type": "intrinsic",
														"name": "string"
													}
												}
											],
											"type": {
												"type": "intrinsic",
												"name": "any"
											}
										}
									],
									"sources": [
										{
											"fileName": "src/main/util/ConvergenceServerError.ts",
											"line": 47,
											"character": 23
										}
									]
								}
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceServerError.ts",
							"line": 47,
							"character": 20
						}
					]
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						528,
						527,
						529,
						530
					]
				},
				{
					"title": "Accessors",
					"kind": 262144,
					"children": [
						520,
						522
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/ConvergenceServerError.ts",
					"line": 18,
					"character": 35
				}
			],
			"extendedTypes": [
				{
					"type": "reference",
					"id": 453,
					"name": "Error"
				}
			]
		},
		{
			"id": 4905,
			"name": "ErrorEvent",
			"kind": 128,
			"kindString": "Class",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "Emitted when a [[ConvergenceDomain]] encounters an unexpected error."
			},
			"children": [
				{
					"id": 4911,
					"name": "cause",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isExported": true,
						"isOptional": true,
						"isConstructorProperty": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "A message describing the error."
					},
					"sources": [
						{
							"fileName": "src/main/events/ErrorEvent.ts",
							"line": 47,
							"character": 25
						}
					],
					"type": {
						"type": "reference",
						"id": 453,
						"name": "Error"
					}
				},
				{
					"id": 4909,
					"name": "domain",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isExported": true,
						"isConstructorProperty": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "The domain on which this event occurred."
					},
					"sources": [
						{
							"fileName": "src/main/events/ErrorEvent.ts",
							"line": 37,
							"character": 26
						}
					],
					"type": {
						"type": "reference",
						"id": 10652,
						"name": "ConvergenceDomain"
					},
					"implementationOf": {
						"type": "reference",
						"id": 4829,
						"name": "IConvergenceDomainEvent.domain"
					}
				},
				{
					"id": 4910,
					"name": "message",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isExported": true,
						"isConstructorProperty": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "A message describing the error."
					},
					"sources": [
						{
							"fileName": "src/main/events/ErrorEvent.ts",
							"line": 42,
							"character": 27
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					}
				},
				{
					"id": 4907,
					"name": "name",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isExported": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
						"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
					},
					"sources": [
						{
							"fileName": "src/main/events/ErrorEvent.ts",
							"line": 27,
							"character": 22
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"defaultValue": "ErrorEvent.NAME",
					"implementationOf": {
						"type": "reference",
						"id": 4830,
						"name": "IConvergenceDomainEvent.name"
					}
				},
				{
					"id": 4906,
					"name": "NAME",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isStatic": true,
						"isExported": true,
						"isReadonly": true
					},
					"sources": [
						{
							"fileName": "src/main/events/ErrorEvent.ts",
							"line": 22,
							"character": 29
						}
					],
					"type": {
						"type": "stringLiteral",
						"value": "error"
					},
					"defaultValue": "\"error\""
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						4911,
						4909,
						4910,
						4907,
						4906
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/events/ErrorEvent.ts",
					"line": 21,
					"character": 23
				}
			],
			"implementedTypes": [
				{
					"type": "reference",
					"id": 4828,
					"name": "IConvergenceDomainEvent"
				}
			]
		},
		{
			"id": 553,
			"name": "PagedData",
			"kind": 128,
			"kindString": "Class",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "PagedData represents a read-only set of data from Convergence that is\npaged using an offset. It contains the current window of data,\nthe offset at which the data starts, and the total results."
			},
			"typeParameter": [
				{
					"id": 554,
					"name": "T",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {
						"isExported": true
					}
				}
			],
			"children": [
				{
					"id": 555,
					"name": "constructor",
					"kind": 512,
					"kindString": "Constructor",
					"flags": {
						"isExported": true
					},
					"comment": {},
					"signatures": [
						{
							"id": 559,
							"name": "new PagedData",
							"kind": 16384,
							"kindString": "Constructor signature",
							"flags": {
								"isExported": true
							},
							"comment": {},
							"parameters": [
								{
									"id": 560,
									"name": "data",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "\n  The current page of data."
									},
									"type": {
										"type": "array",
										"elementType": {
											"type": "typeParameter",
											"name": "T"
										}
									}
								},
								{
									"id": 561,
									"name": "offset",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "\n The index into the total result set of the first element in the data."
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								},
								{
									"id": 562,
									"name": "totalResults",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"comment": {
										"shortText": "\n  The total number of results in the entire data set.\n"
									},
									"type": {
										"type": "intrinsic",
										"name": "number"
									}
								}
							],
							"type": {
								"type": "reference",
								"id": 553,
								"name": "PagedData"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/PagedData.ts",
							"line": 20,
							"character": 27
						}
					]
				},
				{
					"id": 556,
					"name": "data",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isExported": true,
						"isConstructorProperty": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "\n  The current page of data."
					},
					"sources": [
						{
							"fileName": "src/main/util/PagedData.ts",
							"line": 33,
							"character": 24
						}
					],
					"type": {
						"type": "array",
						"elementType": {
							"type": "typeParameter",
							"name": "T"
						}
					}
				},
				{
					"id": 557,
					"name": "offset",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isExported": true,
						"isConstructorProperty": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "\n The index into the total result set of the first element in the data."
					},
					"sources": [
						{
							"fileName": "src/main/util/PagedData.ts",
							"line": 37,
							"character": 26
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "number"
					}
				},
				{
					"id": 558,
					"name": "totalResults",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isPublic": true,
						"isExported": true,
						"isConstructorProperty": true,
						"isReadonly": true
					},
					"comment": {
						"shortText": "\n  The total number of results in the entire data set.\n"
					},
					"sources": [
						{
							"fileName": "src/main/util/PagedData.ts",
							"line": 41,
							"character": 32
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "number"
					}
				}
			],
			"groups": [
				{
					"title": "Constructors",
					"kind": 512,
					"children": [
						555
					]
				},
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						556,
						557,
						558
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/PagedData.ts",
					"line": 20,
					"character": 22
				}
			]
		},
		{
			"id": 8711,
			"name": "IAllPermissions",
			"kind": 256,
			"kindString": "Interface",
			"flags": {
				"isExported": true
			},
			"typeParameter": [
				{
					"id": 8712,
					"name": "T",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {
						"isExported": true
					},
					"type": {
						"type": "intrinsic",
						"name": "string"
					}
				}
			],
			"children": [
				{
					"id": 8715,
					"name": "groupPermissions",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/permissions/IAllPermissions.ts",
							"line": 6,
							"character": 18
						}
					],
					"type": {
						"type": "reference",
						"typeArguments": [
							{
								"type": "intrinsic",
								"name": "string"
							},
							{
								"type": "reference",
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "intrinsic",
											"name": "string"
										}
									}
								],
								"name": "Set"
							}
						],
						"name": "Map"
					}
				},
				{
					"id": 8714,
					"name": "userPermissions",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/permissions/IAllPermissions.ts",
							"line": 5,
							"character": 17
						}
					],
					"type": {
						"type": "reference",
						"id": 974,
						"typeArguments": [
							{
								"type": "reference",
								"typeArguments": [
									{
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "intrinsic",
											"name": "string"
										}
									}
								],
								"name": "Set"
							}
						],
						"name": "DomainUserIdMap"
					}
				},
				{
					"id": 8713,
					"name": "worldPermissions",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/permissions/IAllPermissions.ts",
							"line": 4,
							"character": 18
						}
					],
					"type": {
						"type": "reference",
						"typeArguments": [
							{
								"type": "typeParameter",
								"name": "T",
								"constraint": {
									"type": "intrinsic",
									"name": "string"
								}
							}
						],
						"name": "Set"
					}
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						8715,
						8714,
						8713
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/permissions/IAllPermissions.ts",
					"line": 3,
					"character": 32
				}
			]
		},
		{
			"id": 426,
			"name": "IConvergenceEvent",
			"kind": 256,
			"kindString": "Interface",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "The IConvergenceEvent is the parent interface of all events fired by\nConvergence. It ensures that each fired event has a name property that\nindicates the event that was fired."
			},
			"children": [
				{
					"id": 427,
					"name": "name",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The name of the event that was fired. This is commonly used to filter when\nusing the [[ConvergenceEventEmitter.events]] stream.",
						"text": "Note that the name is only guaranteed to be unique within the class /\nsubsystem that is firing it. Names might be reused across classes and\nsubsystems.\n"
					},
					"sources": [
						{
							"fileName": "src/main/util/IConvergenceEvent.ts",
							"line": 30,
							"character": 6
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					}
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						427
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/IConvergenceEvent.ts",
					"line": 20,
					"character": 34
				}
			],
			"extendedBy": [
				{
					"type": "reference",
					"id": 3879,
					"name": "IModelEvent"
				},
				{
					"type": "reference",
					"id": 3883,
					"name": "IConvergenceModelValueEvent"
				},
				{
					"type": "reference",
					"id": 4828,
					"name": "IConvergenceDomainEvent"
				},
				{
					"type": "reference",
					"id": 8540,
					"name": "IActivityEvent"
				},
				{
					"type": "reference",
					"id": 9191,
					"name": "IPresenceEvent"
				},
				{
					"type": "reference",
					"id": 9522,
					"name": "IChatEvent"
				}
			],
			"implementedBy": [
				{
					"type": "reference",
					"id": 4163,
					"name": "ElementDetachedEvent"
				},
				{
					"type": "reference",
					"id": 4237,
					"name": "ModelPermissionsChangedEvent"
				},
				{
					"type": "reference",
					"id": 4506,
					"name": "OfflineModelDeletedEvent"
				},
				{
					"type": "reference",
					"id": 4466,
					"name": "OfflineModelDownloadedEvent"
				},
				{
					"type": "reference",
					"id": 4514,
					"name": "OfflineModelPermissionsRevokedEvent"
				},
				{
					"type": "reference",
					"id": 4490,
					"name": "OfflineModelStatusChangedEvent"
				},
				{
					"type": "reference",
					"id": 4446,
					"name": "OfflineModelSyncCompletedEvent"
				},
				{
					"type": "reference",
					"id": 4454,
					"name": "OfflineModelSyncErrorEvent"
				},
				{
					"type": "reference",
					"id": 4438,
					"name": "OfflineModelSyncStartedEvent"
				},
				{
					"type": "reference",
					"id": 4478,
					"name": "OfflineModelUpdatedEvent"
				},
				{
					"type": "reference",
					"id": 4381,
					"name": "OfflineModelsDownloadStartedEvent"
				},
				{
					"type": "reference",
					"id": 4389,
					"name": "OfflineModelsDownloadStatusChangedEvent"
				},
				{
					"type": "reference",
					"id": 4400,
					"name": "OfflineModelsDownloadStoppedEvent"
				},
				{
					"type": "reference",
					"id": 4428,
					"name": "OfflineModelsSyncAbortedEvent"
				},
				{
					"type": "reference",
					"id": 4422,
					"name": "OfflineModelsSyncCompletedEvent"
				},
				{
					"type": "reference",
					"id": 4414,
					"name": "OfflineModelsSyncProgressEvent"
				},
				{
					"type": "reference",
					"id": 4406,
					"name": "OfflineModelsSyncStartedEvent"
				},
				{
					"type": "reference",
					"id": 3214,
					"name": "ReferenceClearedEvent"
				},
				{
					"type": "reference",
					"id": 3226,
					"name": "ReferenceDisposedEvent"
				},
				{
					"type": "reference",
					"id": 3196,
					"name": "ReferenceSetEvent"
				},
				{
					"type": "reference",
					"id": 4309,
					"name": "RemoteReferenceCreatedEvent"
				},
				{
					"type": "reference",
					"id": 4333,
					"name": "RemoteResyncCompletedEvent"
				},
				{
					"type": "reference",
					"id": 4321,
					"name": "RemoteResyncStartedEvent"
				}
			]
		},
		{
			"id": 301,
			"name": "ILoggerConfig",
			"kind": 256,
			"kindString": "Interface",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "The configuration for a particular logger instance."
			},
			"children": [
				{
					"id": 302,
					"name": "level",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true,
						"isOptional": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/ILoggerConfig.ts",
							"line": 21,
							"character": 7
						}
					],
					"type": {
						"type": "reference",
						"id": 2,
						"name": "LogLevel"
					}
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						302
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/log/ILoggerConfig.ts",
					"line": 20,
					"character": 30
				}
			]
		},
		{
			"id": 304,
			"name": "ILoggingConfigData",
			"kind": 256,
			"kindString": "Interface",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "Defines the complete logging configuration for Convergence."
			},
			"children": [
				{
					"id": 306,
					"name": "loggers",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true,
						"isOptional": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/ILoggingConfigData.ts",
							"line": 23,
							"character": 9
						}
					],
					"type": {
						"type": "reflection",
						"declaration": {
							"id": 307,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {
								"isExported": true
							},
							"indexSignature": [
								{
									"id": 308,
									"name": "__index",
									"kind": 8192,
									"kindString": "Index signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 309,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "union",
										"types": [
											{
												"type": "reference",
												"id": 301,
												"name": "ILoggerConfig"
											},
											{
												"type": "reference",
												"id": 2,
												"name": "LogLevel"
											}
										]
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/log/ILoggingConfigData.ts",
									"line": 23,
									"character": 11
								}
							]
						}
					}
				},
				{
					"id": 305,
					"name": "root",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true,
						"isOptional": true
					},
					"sources": [
						{
							"fileName": "src/main/util/log/ILoggingConfigData.ts",
							"line": 22,
							"character": 6
						}
					],
					"type": {
						"type": "union",
						"types": [
							{
								"type": "reference",
								"id": 301,
								"name": "ILoggerConfig"
							},
							{
								"type": "reference",
								"id": 2,
								"name": "LogLevel"
							}
						]
					}
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						306,
						305
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/log/ILoggingConfigData.ts",
					"line": 21,
					"character": 35
				}
			]
		},
		{
			"id": 549,
			"name": "OrderBy",
			"kind": 256,
			"kindString": "Interface",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "Use this to indicate a desire to have search results ordered by the given field and\ndirection.",
				"text": "Queries are in ascending order by default.\n"
			},
			"children": [
				{
					"id": 551,
					"name": "ascending",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true,
						"isOptional": true
					},
					"comment": {
						"shortText": "Set to true if the results should be in ascending order, false for descending order"
					},
					"sources": [
						{
							"fileName": "src/main/util/OrderBy.ts",
							"line": 30,
							"character": 11
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "boolean"
					}
				},
				{
					"id": 550,
					"name": "field",
					"kind": 1024,
					"kindString": "Property",
					"flags": {
						"isExported": true
					},
					"comment": {
						"shortText": "The field to sort on"
					},
					"sources": [
						{
							"fileName": "src/main/util/OrderBy.ts",
							"line": 25,
							"character": 7
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					}
				}
			],
			"groups": [
				{
					"title": "Properties",
					"kind": 1024,
					"children": [
						551,
						550
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/OrderBy.ts",
					"line": 21,
					"character": 24
				}
			]
		},
		{
			"id": 500,
			"name": "ConvergenceEventListener",
			"kind": 4194304,
			"kindString": "Type alias",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "The ConvergenceEventListener type defines a function which takes a specific\nsubclass of IConvergenceEvent as a single argument in order to receive fired\nevents. Consumers can use the familiar Node style event registration methods\n(e.g. addListener, removeListener, on, off, once, etc.) or they can consume\nevents as an observable stream using the `events` method.",
				"tags": [
					{
						"tag": "param",
						"text": "\n  The subclass of IConvergenceEvent that represents the fired event.\n",
						"param": "event"
					}
				]
			},
			"typeParameter": [
				{
					"id": 501,
					"name": "T",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {
						"isExported": true
					},
					"type": {
						"type": "reference",
						"id": 426,
						"name": "IConvergenceEvent"
					}
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/ConvergenceEventEmitter.ts",
					"line": 31,
					"character": 36
				}
			],
			"type": {
				"type": "reflection",
				"declaration": {
					"id": 502,
					"name": "__type",
					"kind": 65536,
					"kindString": "Type literal",
					"flags": {
						"isExported": true
					},
					"signatures": [
						{
							"id": 503,
							"name": "__call",
							"kind": 4096,
							"kindString": "Call signature",
							"flags": {
								"isExported": true
							},
							"parameters": [
								{
									"id": 504,
									"name": "event",
									"kind": 32768,
									"kindString": "Parameter",
									"flags": {
										"isExported": true
									},
									"type": {
										"type": "typeParameter",
										"name": "T",
										"constraint": {
											"type": "reference",
											"id": 426,
											"name": "IConvergenceEvent"
										}
									}
								}
							],
							"type": {
								"type": "intrinsic",
								"name": "void"
							}
						}
					],
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceEventEmitter.ts",
							"line": 31,
							"character": 67
						}
					]
				}
			}
		},
		{
			"id": 965,
			"name": "StringMapLike",
			"kind": 4194304,
			"kindString": "Type alias",
			"flags": {
				"isExported": true
			},
			"comment": {
				"shortText": "Represents a Javascript Map or Object literal."
			},
			"typeParameter": [
				{
					"id": 966,
					"name": "T",
					"kind": 131072,
					"kindString": "Type parameter",
					"flags": {
						"isExported": true
					}
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/StringMap.ts",
					"line": 18,
					"character": 25
				}
			],
			"type": {
				"type": "union",
				"types": [
					{
						"type": "reference",
						"typeArguments": [
							{
								"type": "intrinsic",
								"name": "string"
							},
							{
								"type": "typeParameter",
								"name": "T",
								"default": {
									"type": "intrinsic",
									"name": "any"
								}
							}
						],
						"name": "Map"
					},
					{
						"type": "reflection",
						"declaration": {
							"id": 967,
							"name": "__type",
							"kind": 65536,
							"kindString": "Type literal",
							"flags": {
								"isExported": true
							},
							"indexSignature": [
								{
									"id": 968,
									"name": "__index",
									"kind": 8192,
									"kindString": "Index signature",
									"flags": {
										"isExported": true
									},
									"parameters": [
										{
											"id": 969,
											"name": "key",
											"kind": 32768,
											"kindString": "Parameter",
											"flags": {
												"isExported": true
											},
											"type": {
												"type": "intrinsic",
												"name": "string"
											}
										}
									],
									"type": {
										"type": "typeParameter",
										"name": "T",
										"default": {
											"type": "intrinsic",
											"name": "any"
										}
									}
								}
							],
							"sources": [
								{
									"fileName": "src/main/util/StringMap.ts",
									"line": 18,
									"character": 53
								}
							]
						}
					}
				]
			}
		},
		{
			"id": 759,
			"name": "ConvergenceErrorCodes",
			"kind": 2097152,
			"kindString": "Object literal",
			"flags": {
				"isExported": true,
				"isConst": true
			},
			"comment": {
				"shortText": "Some potential error codes in Convergence."
			},
			"children": [
				{
					"id": 763,
					"name": "AUTHENTICATION_FAILED",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceErrorCodes.ts",
							"line": 27,
							"character": 23
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"defaultValue": "\"authentication_failed\""
				},
				{
					"id": 765,
					"name": "CHAT_NOT_JOINED",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceErrorCodes.ts",
							"line": 31,
							"character": 17
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"defaultValue": "\"chat_not_joined\""
				},
				{
					"id": 762,
					"name": "CONNECTION_FAILED",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceErrorCodes.ts",
							"line": 25,
							"character": 19
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"defaultValue": "\"connection_failed\""
				},
				{
					"id": 760,
					"name": "MODEL_ALREADY_EXISTS",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceErrorCodes.ts",
							"line": 21,
							"character": 22
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"defaultValue": "\"model_already_exists\""
				},
				{
					"id": 764,
					"name": "OFFLINE",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceErrorCodes.ts",
							"line": 29,
							"character": 9
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"defaultValue": "\"offline\""
				},
				{
					"id": 761,
					"name": "REQUEST_TIMEOUT",
					"kind": 32,
					"kindString": "Variable",
					"flags": {
						"isExported": true
					},
					"sources": [
						{
							"fileName": "src/main/util/ConvergenceErrorCodes.ts",
							"line": 23,
							"character": 17
						}
					],
					"type": {
						"type": "intrinsic",
						"name": "string"
					},
					"defaultValue": "\"request_timeout\""
				}
			],
			"groups": [
				{
					"title": "Variables",
					"kind": 32,
					"children": [
						763,
						765,
						762,
						760,
						764,
						761
					]
				}
			],
			"sources": [
				{
					"fileName": "src/main/util/ConvergenceErrorCodes.ts",
					"line": 20,
					"character": 34
				}
			],
			"type": {
				"type": "intrinsic",
				"name": "object"
			}
		}
	],
	"groups": [
		{
			"title": "Modules",
			"kind": 1,
			"children": [
				9161,
				10607,
				10807,
				7555,
				9510,
				7238,
				1021
			]
		},
		{
			"title": "Classes",
			"kind": 128,
			"children": [
				8717,
				10808,
				10652,
				429,
				455,
				506,
				4905,
				553
			]
		},
		{
			"title": "Enumerations",
			"kind": 4,
			"children": [
				2
			]
		},
		{
			"title": "Interfaces",
			"kind": 256,
			"children": [
				8711,
				426,
				301,
				304,
				549
			]
		},
		{
			"title": "Type aliases",
			"kind": 4194304,
			"children": [
				500,
				965
			]
		},
		{
			"title": "Object literals",
			"kind": 2097152,
			"children": [
				759
			]
		}
	]
}