Packages > fluid-framework

fluid-framework Package

Bundles a collection of Fluid Framework client libraries for easy use when paired with a corresponding service client package (e.g. @fluidframework/azure-client, @fluidframework/tinylicious-client, or @fluidframework/odsp-client (BETA)).

Interfaces

Interface Alerts Modifiers Description
CommitMetadata sealed Information about a commit that has been applied.
ContainerSchema Declares the Fluid objects that will be available in the Container.
FieldProps Additional information to provide to a FieldSchema.
FieldSchemaUnsafe Unenforced version of FieldSchema.
IBranchOrigin Legacy, Alpha Branch origin information.
IConnection Base interface for information for each connection made to the Fluid session.
IDirectory Legacy sealed Interface describing actions on a directory.
IDirectoryEvents Legacy sealed Events emitted in response to changes to the directory data.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/idirectoryvaluechanged-interface'>IDirectoryValueChanged</a>
  </td>
  <td>
    <code>Legacy</code>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Type of &quot;valueChanged&quot; event parameter for <a href='/docs/api/v2/fluid-framework/ishareddirectory-interface'>ISharedDirectory</a>.
    <br>
     
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/idisposable-interface'>IDisposable</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Base interface for objects that require lifetime management via explicit disposal.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ierrorbase-interface'>IErrorBase</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    Base interface for all errors and warnings emitted the container.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ierrorevent-interface'>IErrorEvent</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    Base interface for error event emitters.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ievent-interface'>IEvent</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    Base interface for event emitters.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ieventprovider-interface'>IEventProvider</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Base interface for event providers.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ifluidcontainer-interface'>IFluidContainer</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Provides an entrypoint into the client side of collaborative Fluid data. Provides access to the data as well as status on the collaboration session.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ifluidcontainerevents-interface'>IFluidContainerEvents</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Events emitted from <a href='/docs/api/v2/fluid-framework/ifluidcontainer-interface'>IFluidContainer</a>.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ifluidhandle-interface'>IFluidHandle</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Handle to a shared <a href='/docs/api/v2/fluid-framework/fluidobject-typealias'>FluidObject</a>.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ifluidhandleerased-interface'>IFluidHandleErased</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    A type erased Fluid Handle. These can only be produced by the Fluid Framework and provide the implementation details needed to power <a href='/docs/api/v2/fluid-framework/ifluidhandle-interface'>IFluidHandle</a>.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ifluidloadable-interface'>IFluidLoadable</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    A shared FluidObject has a URL from which it can be referenced
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/iinterval-interface'>IInterval</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Basic interval abstraction
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/iintervalcollection-interface'>IIntervalCollection</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Collection of intervals that supports addition, modification, removal, and efficient spatial querying. Changes to this collection will be incur updates on collaborating clients (i.e. they are not local-only).
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/iintervalcollectionevent-interface'>IIntervalCollectionEvent</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Change events emitted by <code>IntervalCollection</code>s
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/imember-interface'>IMember</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    Base interface to be implemented to fetch each service's member.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/internaltreenode-interface'>InternalTreeNode</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    A node type internal to <code>@fluidframework/tree</code>.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/intervalindex-interface'>IntervalIndex</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    <p>
      Collection of intervals.
    </p>
    <p>
      Implementers of this interface will typically implement additional APIs to support efficiently querying a collection of intervals in some manner, for example: - &quot;find all intervals with start endpoint between these two points&quot; - &quot;find all intervals which overlap this range&quot; etc.
      <br>
    </p>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/iprovidefluidloadable-interface'>IProvideFluidLoadable</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isequenceddocumentmessage-interface'>ISequencedDocumentMessage</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Sequenced message for a distributed document.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isequencedeltarange-interface'>ISequenceDeltaRange</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    A range that has changed corresponding to a segment modification.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/iserializableinterval-interface'>ISerializableInterval</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/iserializedinterval-interface'>ISerializedInterval</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Serialized object representation of an interval. This representation is used for ops that create or change intervals.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/iserviceaudience-interface'>IServiceAudience</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    Base interface to be implemented to fetch each service's audience.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/iserviceaudienceevents-interface'>IServiceAudienceEvents</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    Events that trigger when the roster of members in the Fluid session change.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ishareddirectory-interface'>ISharedDirectory</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Provides a hierarchical organization of map-like data structures as SubDirectories. The values stored within can be accessed like a map, and the hierarchy can be navigated using path syntax. SubDirectories can be retrieved for use as working directories.
    <br>
     
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ishareddirectoryevents-interface'>ISharedDirectoryEvents</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Events emitted in response to changes to the directory data.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isharedintervalcollection-interface'>ISharedIntervalCollection</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isharedmap-interface'>ISharedMap</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    The SharedMap distributed data structure can be used to store key-value pairs.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isharedmapevents-interface'>ISharedMapEvents</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Events emitted in response to changes to the <a href='/docs/api/v2/fluid-framework/isharedmap-interface'>map</a> data.
    <br>
     
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isharedobject-interface'>ISharedObject</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Base interface for shared objects from which other interfaces derive. Implemented by SharedObject
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isharedobjectevents-interface'>ISharedObjectEvents</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Events emitted by <a href='/docs/api/v2/fluid-framework/isharedobject-interface'>ISharedObject</a>.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isharedsegmentsequence-interface'>ISharedSegmentSequence</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isharedsegmentsequenceevents-interface'>ISharedSegmentSequenceEvents</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Events emitted in response to changes to the sequence data.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/isharedstring-interface'>ISharedString</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Fluid object interface describing access methods on a SharedString
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/itelemetrybaseproperties-interface'>ITelemetryBaseProperties</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    JSON-serializable properties, which will be logged with telemetry.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/itrace-interface'>ITrace</a>
  </td>
  <td>
    <code>Legacy</code>, <code>Alpha</code>
  </td>
  <td>
  </td>
  <td>
    Messages to track latency trace.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/itree-interface'>ITree</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Channel for a Fluid Tree DDS.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/itreeconfigurationoptions-interface'>ITreeConfigurationOptions</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    Options when constructing a tree view.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/itreeviewconfiguration-interface'>ITreeViewConfiguration</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    Property-bag configuration for <a href='/docs/api/v2/fluid-framework/treeviewconfiguration-class'>TreeViewConfiguration</a> construction.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/ivaluechanged-interface'>IValueChanged</a>
  </td>
  <td>
    <code>Legacy</code>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Type of &quot;valueChanged&quot; event parameter.
    <br>
     
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/listenable-interface'>Listenable</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    An object which allows the registration of listeners so that subscribers can be notified when an event happens.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/makenominal-interface'>MakeNominal</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Use this as the type of a protected field to cause a type to use nominal typing instead of structural.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/nodeindocumentconstraint-interface'>NodeInDocumentConstraint</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    A transaction <a href='/docs/api/v2/fluid-framework/transactionconstraint-typealias'>constraint</a> which requires that the given node exists in the tree.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/revertible-interface'>Revertible</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Allows reversion of a change made to SharedTree.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/runtransaction-interface'>RunTransaction</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    A function which runs a transaction in a SharedTree.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/schemacompatibilitystatus-interface'>SchemaCompatibilityStatus</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    <p>
      Information about a view schema's compatibility with the document's stored schema.
    </p>
    <p>
      See SharedTree's README for more information about choosing a compatibility policy.
      <br>
    </p>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/sharedobjectkind-interface'>SharedObjectKind</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Defines a kind of shared object.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/tagged-interface'>Tagged</a>
  </td>
  <td>
  </td>
  <td>
  </td>
  <td>
    <p>
      A property to be logged to telemetry may require a tag indicating the value may contain sensitive data. This type wraps a value of the given type V in an object along with a string tag (type can be further specified as T).
    </p>
    <p>
      This indicates that the value should be organized or handled differently by loggers in various first or third party scenarios. For example, tags are used to mark data that should not be stored in logs for privacy reasons.
    </p>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treearraynode-interface'>TreeArrayNode</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    A <a href='/docs/api/v2/fluid-framework/treenode-class'>TreeNode</a> which implements 'readonly T[]' and the array mutation APIs.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treearraynodeunsafe-interface'>TreeArrayNodeUnsafe</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    <a href='/docs/api/v2/fluid-framework/unenforced-typealias'>Unenforced</a> version of <a href='/docs/api/v2/fluid-framework/treearraynode-interface'>TreeArrayNode</a>.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treechangeevents-interface'>TreeChangeEvents</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    A collection of events that can be emitted by a <a href='/docs/api/v2/fluid-framework/treenode-class'>TreeNode</a>.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treemapnode-interface'>TreeMapNode</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    A map of string keys to tree objects.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treemapnodeunsafe-interface'>TreeMapNodeUnsafe</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    <a href='/docs/api/v2/fluid-framework/unenforced-typealias'>Unenforced</a> version of <a href='/docs/api/v2/fluid-framework/treemapnode-interface'>TreeMapNode</a>.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treenodeapi-interface'>TreeNodeApi</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Provides various functions for analyzing <a href='/docs/api/v2/fluid-framework/treenode-class'>TreeNode</a>s. *
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treenodeschemaclass-interface'>TreeNodeSchemaClass</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Tree node schema which is implemented using a class.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treenodeschemacore-interface'>TreeNodeSchemaCore</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Data common to all tree node schema.
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treeview-interface'>TreeView</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    <p>
      An editable view of a (version control style) branch of a shared tree based on some schema.
    </p>
    <p>
      This schema--known as the view schema--may or may not align the stored schema of the document. Information about discrepancies between the two schemas is available via <a href='/docs/api/v2/fluid-framework/treeview-interface#compatibility-propertysignature'>compatibility</a>.
    </p>
    <p>
      Application authors are encouraged to read [schema-evolution.md](../../docs/user-facing/schema-evolution.md) and choose a schema compatibility policy that aligns with their application's needs.
      <br>
    </p>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/treeviewevents-interface'>TreeViewEvents</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Events for <a href='/docs/api/v2/fluid-framework/treeview-interface'>TreeView</a>.
    <br>
  </td>
</tr>
<tr>
  <td>
    <a href='/docs/api/v2/fluid-framework/withtype-interface'>WithType</a>
  </td>
  <td>
  </td>
  <td>
    <code>sealed</code>
  </td>
  <td>
    Adds a type symbol to a type for stronger typing.
  </td>
</tr>

Classes

Class Alerts Modifiers Description
ErasedType sealed Erased type which can be used to expose a opaque/erased version of a type without referencing the actual type.
FieldSchema sealed

All policy for a specific field, including functionality that does not have to be kept consistent across versions or deterministic.

This can include policy for how to use this schema for "view" purposes, and well as how to expose editing APIs. Use SchemaFactory to create the FieldSchema instances, for example optional(t, props).

IterableTreeArrayContent sealed Used to insert iterable content into a TreeArrayNode. Use (TreeArrayNode:variable).spread to create an instance of this type.
SchemaFactory sealed Creates various types of schema for TreeNodes.
SequenceDeltaEvent Legacy, Alpha

The event object returned on sequenceDelta events.

The properties of this object and its sub-objects represent the state of the sequence at the point in time at which the operation was applied. They will not take into consideration any future modifications performed to the underlying sequence and merge tree.

For group ops, each op will get its own event, and the group op property will be set on the op args.

Ops may get multiple events. For instance, an insert-replace will get a remove then an insert event.

SequenceEvent Legacy, Alpha

Base class for SequenceDeltaEvent and SequenceMaintenanceEvent.

The properties of this object and its sub-objects represent the state of the sequence at the point in time at which the operation was applied. They will not take into any future modifications performed to the underlying sequence and merge tree.

SequenceInterval Legacy, Alpha Interval implementation whose ends are associated with positions in a mutatable sequence. As such, when content is inserted into the middle of the interval, the interval expands to include that content.
SequenceMaintenanceEvent Legacy, Alpha

The event object returned on maintenance events.

The properties of this object and its sub-objects represent the state of the sequence at the point in time at which the operation was applied. They will not take into consideration any future modifications performed to the underlying sequence and merge tree.

TreeNode sealed A non-leaf SharedTree node. Includes objects, arrays, and maps.
TreeViewConfiguration sealed Configuration for viewWith(config).

Enumerations

Enum Alerts Description
AttachState The attachment state of some Fluid data (e.g. a container or data store), denoting whether it is uploaded to the service. The transition from detached to attached state is a one-way transition.
CommitKind The type of a commit. This is used to describe the context in which the commit was created.
ConnectionState The state of the Container's connection to the service.
FieldKind Kind of a field on a node.
IntervalType Legacy, Alpha
NodeKind Kind of tree node.
RevertibleStatus The status of a Revertible.
TreeStatus Status of the tree that a particular node belongs to.

Types

TypeAlias Alerts Modifiers Description
AllowedTypes Types for use in fields.
ConnectionStateType Type defining the different states of connectivity a Container can be in.
ContainerAttachProps Represents properties that can be attached to a container.
DeserializeCallback Legacy, Alpha
FluidObject

This utility type take interface(s) that follow the FluidObject pattern, and produces a new type that can be used for inspection and discovery of those interfaces.

It is meant to be used with types that are known to implement the FluidObject pattern. A common way to specify a type implements the FluidObject pattern is to expose it as a FluidObject without a generic argument.

FluidObjectProviderKeys Produces a valid FluidObject key given a type and a property.
ICriticalContainerError Represents errors raised on container.
IEventThisPlaceHolder The placeholder type that should be used instead of this in events.
IEventTransformer This type is a conditional type for transforming all the overloads provided in TEvent.
ImplicitAllowedTypes Types allowed in a field.
ImplicitFieldSchema Schema for a field of a tree node.
InitialObjects Extract the type of 'initialObjects' from the given ContainerSchema type.
InsertableObjectFromSchemaRecordUnsafe Unenforced version of InsertableObjectFromSchemaRecord.
InsertableTreeFieldFromImplicitField Type of content that can be inserted into the tree for a field of the given schema.
InsertableTreeFieldFromImplicitFieldUnsafe Unenforced version of InsertableTreeFieldFromImplicitField.
InsertableTreeNodeFromImplicitAllowedTypes Type of content that can be inserted into the tree for a node of the given schema.
InsertableTreeNodeFromImplicitAllowedTypesUnsafe Unenforced version of InsertableTreeNodeFromImplicitAllowedTypes.
InsertableTypedNode Data which can be used as a node to be inserted. Either an unhydrated node, or content to build a new node.
IntervalStickiness Legacy, Alpha

Determines how an interval should expand when segments are inserted adjacent to the range it spans

Note that interval stickiness is currently an experimental feature and must be explicitly enabled with the intervalStickinessEnabled flag

IsListener true iff the given type is an acceptable shape for a event listener
LazyItem An "eager" or "lazy" Item in a FlexList. Lazy items are wrapped in a function to allow referring to themselves before they are declared. This makes recursive and co-recursive items possible.
Listeners Used to specify the kinds of events emitted by a Listenable.
MemberChangedListener Signature for IMember change events.
Myself An extended member object that includes currentConnection
NodeFromSchema Takes in TreeNodeSchema[] and returns a TypedNode union.
Off A function that, when called, will deregister an event listener subscription that was previously registered.
ReplaceIEventThisPlaceHolder Does the type replacement by changing types of IEventThisPlaceHolder to TThis
RestrictiveReadonlyRecord Alternative to the built in Record type which does not permit unexpected members, and is readonly.
RevertibleFactory sealed Factory for creating a Revertible. Will error if invoked outside the scope of the commitApplied event that provides it, or if invoked multiple times.
SharedDirectory Legacy, Alpha Entrypoint for ISharedDirectory creation.
SharedMap Legacy, Alpha Entrypoint for ISharedMap creation.
SharedString Legacy, Alpha Alias for ISharedString for compatibility.
SharedStringSegment Legacy, Alpha
TelemetryBaseEventPropertyType Property types that can be logged.
TransactionConstraint A requirement for a SharedTree transaction to succeed.
TransformedEvent Transforms the event overload by replacing IEventThisPlaceHolder with TThis in the event listener arguments and having the overload return TTHis as well
TreeFieldFromImplicitField Converts ImplicitFieldSchema to the corresponding tree node's field type.
TreeLeafValue Value that may be stored as a leaf node.
TreeNodeFromImplicitAllowedTypes Type of tree node for a field of the given schema.
TreeNodeSchema sealed Schema for a tree node.
TreeObjectNode A TreeNode which modules a JavaScript object.
TreeObjectNodeUnsafe Unenforced version of TreeObjectNode.
Unenforced

A placeholder to use in extends constraints when using the real type breaks compilation of some recursive types due to a design limitation of TypeScript.

These extends constraints only serve as documentation: to avoid breaking compilation, this type has to not actually enforce anything, and thus is just unknown. Therefore the type safety is the responsibility of the user of the API.

Unhydrated

Type alias to document which values are un-hydrated.

Un-hydrated values are nodes produced from schema's create functions that haven't been inserted into a tree yet.

Since un-hydrated nodes become hydrated when inserted, strong typing can't be used to distinguish them. This no-op wrapper is used instead.

ValidateRecursiveSchema Compile time check for validity of a recursive schema.

Functions

Function Return Type Description
isFluidHandle(value) value is IFluidHandle Check if a value is an @fluidframework/core-interfaces#IFluidHandle.

Variables

Variable Alerts Modifiers Type Description
IFluidHandle readonly
IFluidLoadable readonly keyof IProvideFluidLoadable
IntervalStickiness Legacy, Alpha readonly { readonly NONE: 0; readonly START: 1; readonly END: 2; readonly FULL: 3; }

Determines how an interval should expand when segments are inserted adjacent to the range it spans

Note that interval stickiness is currently an experimental feature and must be explicitly enabled with the intervalStickinessEnabled flag

rollback readonly unique symbol A special object that signifies when a SharedTree transaction should "roll back".
SharedDirectory Legacy, Alpha readonly import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedDirectory> & import("@fluidframework/shared-object-base/internal").SharedObjectKind<ISharedDirectory> Entrypoint for ISharedDirectory creation.
SharedMap Legacy, Alpha readonly import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedMap> & import("@fluidframework/shared-object-base/internal").SharedObjectKind<ISharedMap> Entrypoint for ISharedMap creation.
SharedString Legacy, Alpha readonly import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedString> & import("@fluidframework/shared-object-base/internal").SharedObjectKind<ISharedString> Entrypoint for ISharedString creation.
SharedTree readonly SharedObjectKind<ITree> A hierarchical data structure for collaboratively editing strongly typed JSON-like trees of objects, arrays, and other data types.
Tree readonly TreeApi The Tree object holds various functions for interacting with TreeNodes.
TreeArrayNode readonly { readonly spread: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>; } A TreeNode which implements 'readonly T[]' and the array mutation APIs.

Namespaces

Namespace Description
ConnectionStateType Namespace for the different connection states a container can be in. PLEASE NOTE: The sequence of the numerical values does no correspond to the typical connection state progression.
InternalTypes

Function Details

isFluidHandle

Check if a value is an @fluidframework/core-interfaces#IFluidHandle.

Signature

export declare function isFluidHandle(value: unknown): value is IFluidHandle;

Remarks

Objects which have a field named IFluidHandle can in some cases produce a false positive.

Parameters

Parameter Type Description
value unknown

Returns

Return type: value is IFluidHandle

Variable Details

IFluidHandle

Signature

IFluidHandle = "IFluidHandle"

IFluidLoadable

Signature

IFluidLoadable: keyof IProvideFluidLoadable

Type: keyof IProvideFluidLoadable

IntervalStickiness

Determines how an interval should expand when segments are inserted adjacent to the range it spans

Note that interval stickiness is currently an experimental feature and must be explicitly enabled with the intervalStickinessEnabled flag

This API is provided for existing users, but is not recommended for new users.

To use, import via fluid-framework/legacy.

For more information about our API support guarantees, see here .

Signature

IntervalStickiness: {
    readonly NONE: 0;
    readonly START: 1;
    readonly END: 2;
    readonly FULL: 3;
}

Type: { readonly NONE: 0; readonly START: 1; readonly END: 2; readonly FULL: 3; }

rollback

A special object that signifies when a SharedTree transaction should “roll back”.

Signature

rollback: unique symbol

Type: unique symbol

SharedDirectory

Entrypoint for ISharedDirectory creation.

This API is provided for existing users, but is not recommended for new users.

To use, import via fluid-framework/legacy.

For more information about our API support guarantees, see here .

Signature

SharedDirectory: import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedDirectory> & import("@fluidframework/shared-object-base/internal").SharedObjectKind<ISharedDirectory>

Type: import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedDirectory > & import("@fluidframework/shared-object-base/internal").SharedObjectKind <ISharedDirectory >

SharedMap

Entrypoint for ISharedMap creation.

This API is provided for existing users, but is not recommended for new users.

To use, import via fluid-framework/legacy.

For more information about our API support guarantees, see here .

Signature

SharedMap: import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedMap> & import("@fluidframework/shared-object-base/internal").SharedObjectKind<ISharedMap>

Type: import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedMap > & import("@fluidframework/shared-object-base/internal").SharedObjectKind <ISharedMap >

SharedString

Entrypoint for ISharedString creation.

This API is provided for existing users, but is not recommended for new users.

To use, import via fluid-framework/legacy.

For more information about our API support guarantees, see here .

Signature

SharedString: import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedString> & import("@fluidframework/shared-object-base/internal").SharedObjectKind<ISharedString>

Type: import("@fluidframework/shared-object-base/internal").ISharedObjectKind<ISharedString > & import("@fluidframework/shared-object-base/internal").SharedObjectKind <ISharedString >

SharedTree

A hierarchical data structure for collaboratively editing strongly typed JSON-like trees of objects, arrays, and other data types.

Signature

SharedTree: SharedObjectKind<ITree>

Type: SharedObjectKind <ITree >

Tree

The Tree object holds various functions for interacting with TreeNode s.

Signature

treeApi: TreeApi

Type: TreeApi

TreeArrayNode

A TreeNode which implements ‘readonly T[]’ and the array mutation APIs.

Signature

TreeArrayNode: {
    readonly spread: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;
}

Type: { readonly spread: <T>(content: Iterable<T>) => IterableTreeArrayContent <T>; }