This is a convenience object that represents the absence of a value. These are not actually part of the model, but can be returned in instances where the requested element does not exist.

More information is in the developer guide.

### Hierarchy

- RealTimeElement<void>
  - RealTimeUndefined

### Implements

- ObservableElement<void>
- ObservableUndefined

## Index

### Properties

- Events

### Methods

- addListener
- events
- id
- isAttached
- isDetached
- model
- off
- on
- once
- parent
- path
- reference
- references
- relativePath
- removeAllListeners
- removeFromParent
- removeListener
- removeListeners
- toJSON
- type
- value

## Properties

### StaticEvents

Events: RealTimeUndefinedEvents = ObservableUndefinedEventConstants

Overrides RealTimeElement.Events

## Methods

### addListener

- addListener(event: string, listener: ConvergenceEventListener<IConvergenceEvent>): ConvergenceEventEmitter<IConvergenceEvent>

- Implementation of ObservableUndefined.addListener

  Inherited from ConvergenceEventEmitter.addListener

  Adds a new event listener for the specified event. The class will ignore duplicate registrations of the same listener to the same event.

  #### Parameters

  - ##### event: string

    The name of the event to add the listener for.

  - ##### listener: ConvergenceEventListener<IConvergenceEvent>

    The listener callback to register.

  #### Returns ConvergenceEventEmitter<IConvergenceEvent>

  This object, in support of a fluent API.

### events

- events(): Observable<IConvergenceEvent>

- Implementation of ObservableUndefined.events

  Inherited from ConvergenceEventEmitter.events

  Provides the events emitted by this object as an Observable stream.

  example

        eventEmitter.events()
          .filter(e => e.name === "myevent")
          .subscribe(e => console.log(e));

  #### Returns Observable<IConvergenceEvent>

  An Observable stream of all events emitted by this object.

### id

- id(): string

- Implementation of ObservableUndefined.id

  Inherited from RealTimeBoolean.id

  Each node within a RealTimeModel has a system-generated ID that is unique within this model's contents.

  #### Returns string

  a unique (to the model) ID for this element

### isAttached

- isAttached(): boolean

- Implementation of ObservableUndefined.isAttached

  Inherited from RealTimeBoolean.isAttached

  True if the element is currently set up to synchronize with the server.

  #### Returns boolean

### isDetached

- isDetached(): boolean

- Implementation of ObservableUndefined.isDetached

  Inherited from RealTimeBoolean.isDetached

  True if the element is no longer synchronizing with the server. See the developer guide for more information.

  #### Returns boolean

### model

- model(): RealTimeModel

- Implementation of ObservableUndefined.model

  Inherited from RealTimeBoolean.model

  Returns the model to which this element belongs.

  #### Returns RealTimeModel

### off

- off(event: string, listener: ConvergenceEventListener<IConvergenceEvent>): ConvergenceEventEmitter<IConvergenceEvent>

- Implementation of ObservableUndefined.off

  Inherited from ConvergenceEventEmitter.off

  Removes a single event listener for a specific event.

  #### Parameters

  - ##### event: string

    The name of the event to remove the listener for.

  - ##### listener: ConvergenceEventListener<IConvergenceEvent>

    The listener callback to unregister.

  #### Returns ConvergenceEventEmitter<IConvergenceEvent>

  This object, in support of a fluent API.

### on

- on(event: string, listener: ConvergenceEventListener<IConvergenceEvent>): ConvergenceEventEmitter<IConvergenceEvent>

- Implementation of ObservableUndefined.on

  Inherited from ConvergenceEventEmitter.on

  Adds a new event listener for the specified event. The class will ignore duplicate registrations of the same listener to the same event.

  #### Parameters

  - ##### event: string

    The name of the event to add the listener for.

  - ##### listener: ConvergenceEventListener<IConvergenceEvent>

    The listener callback to register.

  #### Returns ConvergenceEventEmitter<IConvergenceEvent>

  This object, in support of a fluent API.

### once

- once(event: string, listener: ConvergenceEventListener<IConvergenceEvent>): ConvergenceEventEmitter<IConvergenceEvent>

- Implementation of ObservableUndefined.once

  Inherited from ConvergenceEventEmitter.once

  Adds a single shot event listener for the specified event. The listener will be called the first time the specified event is fired after the event registration occurs, after which the registration will be removed and no further events will be passed to the listener.

  #### Parameters

  - ##### event: string

    The name of the event to add the listener for.

  - ##### listener: ConvergenceEventListener<IConvergenceEvent>

    The listener callback to register.

  #### Returns ConvergenceEventEmitter<IConvergenceEvent>

  This object, in support of a fluent API.

### parent

- parent(): RealTimeContainerElement<any>

- Implementation of ObservableUndefined.parent

  Overrides RealTimeBoolean.parent

  #### Returns RealTimeContainerElement<any>

### path

- path(): Path

- Implementation of ObservableUndefined.path

  Overrides RealTimeBoolean.path

  #### Returns Path

### reference

- reference(sessionId: string, key: string): ModelReference<any>

- Inherited from RealTimeBoolean.reference

  Returns the remote ModelReference created by the given `sessionId` with the unique name `key`, or `undefined` if no such reference exists.

  See Remote References in the developer guide.

  #### Parameters

  - ##### sessionId: string

    The session ID that created the reference

  - ##### key: string

    the reference's unique key

  #### Returns ModelReference<any>

### references

- references(referenceFilter?: ReferenceFilter): Array<ModelReference<any>>

- Inherited from RealTimeBoolean.references

  Returns any remote references that match the given filter. You can provide a single `key` which could return references from multiple users, `sessionId` which would return all of a particular user session's references, or both, which is really just the same as using the reference method.

  #### Parameters

  - ##### Optional referenceFilter: ReferenceFilter

  #### Returns Array<ModelReference<any>>

  An array of remote ModelReferences, or an empty array if there were no matches.

### relativePath

- relativePath(): PathElement

- Implementation of ObservableUndefined.relativePath

  Overrides RealTimeBoolean.relativePath

  #### Returns PathElement

### removeAllListeners

- removeAllListeners(): ConvergenceEventEmitter<IConvergenceEvent>

- Implementation of ObservableUndefined.removeAllListeners

  Inherited from ConvergenceEventEmitter.removeAllListeners

  Removes all listeners for all events. This is useful for cleanup before disposing of this particular event emitter.

  #### Returns ConvergenceEventEmitter<IConvergenceEvent>

  This object, in support of a fluent API.

### removeFromParent

- removeFromParent(): void

- Overrides RealTimeBoolean.removeFromParent

  #### Returns void

### removeListener

- removeListener(event: string, listener: ConvergenceEventListener<IConvergenceEvent>): ConvergenceEventEmitter<IConvergenceEvent>

- Implementation of ObservableUndefined.removeListener

  Inherited from ConvergenceEventEmitter.removeListener

  Removes a single event listener for a specific event.

  #### Parameters

  - ##### event: string

    The name of the event to remove the listener for.

  - ##### listener: ConvergenceEventListener<IConvergenceEvent>

    The listener callback to unregister.

  #### Returns ConvergenceEventEmitter<IConvergenceEvent>

  This object, in support of a fluent API.

### removeListeners

- removeListeners(event: string): ConvergenceEventEmitter<IConvergenceEvent>

- Implementation of ObservableUndefined.removeListeners

  Inherited from ConvergenceEventEmitter.removeListeners

  Removes all listeners bound on the given event.

  #### Parameters

  - ##### event: string

    the name of the event to remove listeners for

  #### Returns ConvergenceEventEmitter<IConvergenceEvent>

  This object, in support of a fluent API.

### toJSON

- toJSON(): any

- Implementation of ObservableUndefined.toJSON

  Inherited from RealTimeBoolean.toJSON

  Returns a JSON-compatible representation of this element.

  #### Returns any

### type

- type(): string

- Implementation of ObservableUndefined.type

  Inherited from RealTimeBoolean.type

  This element's type. See [[ModelElementType]] for an enumeration of types.

  #### Returns string

### value

- value(): void
- value(value: void): void

- Implementation of ObservableUndefined.value

  Inherited from RealTimeBoolean.value

  Returns the current underlying value of this element. Note that the return value will not be kept up to date automatically; rather, this function will need to be called each time the most up-to-date value is required.

  #### Returns void

- Inherited from RealTimeBoolean.value

  Sets the value of this element, whose type must be the underlying type of this object.

  On a succesful `value` call, the appropriate IValueChangedEvent will be emitted to any remote users. This will be one of:

  - ArraySetValueEvent
  - BooleanSetValueEvent
  - DateSetValueEvent
  - NumberSetValueEvent
  - ObjectSetValueEvent
  - StringSetValueEvent

  #### Parameters

  - ##### value: void

    the new value for this object.

  #### Returns void