Source: lib/types.js

/**
 * An event for a real-time query.
 *
 * @class
 * @name RealtimeEvent<T>
 */

/**
 * the query on which .eventStream([options]) was invoked
 *
 * @memberOf RealtimeEvent<T>.prototype
 * @name target
 * @type query.Node<T>
 */

/**
 * the database entity this event was generated for, e.g. an entity that just entered or left the result set
 *
 * @memberOf RealtimeEvent<T>.prototype
 * @name data
 * @type T
 */

/**
 * the operation by which the entity was altered ('insert', 'update' or 'delete'; 'none' if unknown or not applicable)
 *
 * @memberOf RealtimeEvent<T>.prototype
 * @name operation
 * @type string
 */

/**
 * indicates how the transmitted entity relates to the query result.
 Every event is delivered with one of the following match types:
 <ul>
 <li> 'match': the entity matches the query. </li>
 <li> 'add': the entity entered the result set, i.e. it did not match before and is matching now. </li>
 <li> 'change': the entity was updated, but remains a match </li>
 <li> 'changeIndex' (for sorting queries only): the entity was updated and remains a match, but changed its position
 within the query result </li>
 <li> 'remove': the entity was a match before, but is not matching any longer </li>
 </ul>
 * @memberOf RealtimeEvent<T>.prototype
 * @name matchType
 * @type string
 */

/**
 * a boolean value indicating whether this event reflects the matching status at query time (true) or a recent change
 * data change (false)
 *
 * @memberOf RealtimeEvent<T>.prototype
 * @name initial
 * @type boolean
 */

/**
 * for sorting queries only: the position of the matching entity in the ordered result (-1 for non-matching entities)
 *
 * @memberOf RealtimeEvent<T>.prototype
 * @name index
 * @type number
 */

/**
 * server-time from the instant at which the event was generated
 *
 * @memberOf RealtimeEvent<T>.prototype
 * @name date
 * @type Date
 */