+ /**
+ * Register an event-thread only property with a type (used by C# Custom controls)
+ * @param [in] objectName name of the object used to register the type
+ * @param [in] name Property name
+ * @param [in] index Property index
+ * @param [in] type Property type
+ * @param [in] setFunc The function to set the property (Can be NULL).
+ * @param [in] getFunc The function to get the value of a property.
+ * @return true if registered
+ */
+ bool RegisterProperty(const std::string& objectName, std::string name, Property::Index index, Property::Type type, Dali::CSharpTypeInfo::SetPropertyFunction setFunc, Dali::CSharpTypeInfo::GetPropertyFunction getFunc);
+
+ /**
+ * Register a scene graph only property with a type
+ * @param [in] registered TypeRegistration object used to register the type
+ * @param [in] name Property name
+ * @param [in] index Property index
+ * @param [in] type Property type
+ * @return true if registered
+ */
+ bool RegisterAnimatableProperty(TypeRegistration& registered, std::string name, Property::Index index, Property::Type type);
+
+ /**
+ * Register a scene graph only property with a default value
+ * @param [in] registered TypeRegistration object used to register the type
+ * @param [in] name Property name
+ * @param [in] index Property index
+ * @param [in] value Property default value
+ * @return true if registered
+ */
+ bool RegisterAnimatableProperty(TypeRegistration& registered, std::string name, Property::Index index, Property::Value defaultValue);
+
+ /**
+ * Register a component of a scene graph only property that supports components (i.e. Vector2, Vector3 and Vector4)
+ * @param [in] registered TypeRegistration object used to register the type
+ * @param [in] name Component name
+ * @param [in] index Property index
+ * @param [in] baseIndex Base animatable property index
+ * @param [in] componentIndex Component index
+ * @return true if registered
+ */
+ bool RegisterAnimatablePropertyComponent(TypeRegistration& registered, std::string name, Property::Index index, Property::Index baseIndex, unsigned int componentIndex);
+
+ /**
+ * Register a event-thread only property with a type and a default value
+ * @param [in] registeredType Name of a registered type on which to register the child property.
+ * @param [in] name Property name
+ * @param [in] index Property index
+ * @param [in] type Property type
+ * @return true if registered
+ */
+ bool RegisterChildProperty(const std::string& registeredType, std::string name, Property::Index index, Property::Type type);
+
+ /**
+ * Register a event-thread only property with a type and a default value
+ * @param [in] registered TypeRegistration object used to register the type
+ * @param [in] name Property name
+ * @param [in] index Property index
+ * @param [in] type Property type
+ * @return true if registered
+ */
+ bool RegisterChildProperty(TypeRegistration& registered, std::string name, Property::Index index, Property::Type type);
+
+ /**