using System; using System.Collections.Generic; using System.Threading.Tasks; using Robust.Client.ViewVariables.Instances; using Robust.Shared.ViewVariables; namespace Robust.Client.ViewVariables { internal interface IViewVariablesManagerInternal : IViewVariablesManager { void Initialize(); /// /// Creates the ideal property editor for a specific property type. /// /// The type of the property to create an editor for. ViewVariablesPropertyEditor PropertyFor(Type type); /// /// Requests a session to an object on the server. /// /// The selector so the server knows what object we want. /// A session that can be used to request data and modify the remote object. Task RequestSession(ViewVariablesObjectSelector selector); /// /// Requests a data blob from the object referenced by a VV session. /// /// The session for the remote object. /// A request object the server uses to know what kind of data you want of the remote object. Task RequestData(ViewVariablesRemoteSession session, ViewVariablesRequest meta); /// /// Requests a data blob from the object referenced by a VV session. /// /// The type of blob that is expected of the server to be sent back, to be automatically cast for convenience. /// The session for the remote object. /// A request object the server uses to know what kind of data you want of the remote object. Task RequestData(ViewVariablesRemoteSession session, ViewVariablesRequest meta) where T : ViewVariablesBlob; /// /// Close a session to a remote object. /// /// The session to close. void CloseSession(ViewVariablesRemoteSession session); /// /// Modify a remote object. /// /// The session pointing to the remote object. /// An array of objects that the server can parse to figure out what to assign. /// The new value for the object. void ModifyRemote(ViewVariablesRemoteSession session, object[] propertyIndex, object value); /// /// Gets a collection of trait IDs that are agreed upon so knows which traits to instantiate. /// /// /// ICollection TraitIdsFor(Type type); } }