/// <summary>
 /// @private
 /// A model instance should call this method on the Store it has been {@link Ext.data.Model#join joined} to.
 /// @param {Ext.data.Model} record The model instance that was edited
 /// @param {String[]} modifiedFieldNames Array of field names changed during edit.
 /// </summary>
 public void afterEdit(Model record, object modifiedFieldNames){}
 /// <summary>
 /// Function description
 /// @param {Ext.data.Model} instance The Model instance
 /// @return {String} The group string for this model
 /// </summary>
 public JsString getGroupString(Model instance){return null;}
 /// <summary>
 /// @private
 /// A model instance should call this method on the Store it has been {@link Ext.data.Model#join joined} to.
 /// @param {Ext.data.Model} record The model instance that was edited
 /// </summary>
 public void afterCommit(Model record){}
 /// <summary>
 /// Loads matching fields from a model instance into this form
 /// @param {Ext.data.Model} instance The model instance
 /// @return {Ext.form.Panel} This form
 /// </summary>
 public Ext.form.Panel setRecord(Model record){return null;}
 /// <summary>
 /// Updates a model instance with the current values of this form
 /// @param {Ext.data.Model} instance The model instance
 /// @param {Boolean} enabled <tt>true</tt> to update the Model with values from enabled fields only
 /// @return {Ext.form.Panel} This form
 /// </summary>
 public Ext.form.Panel updateRecord(Model instance, bool enabled){return null;}
 /// <summary>
 /// Destroys one or more existing, previously saved model instances
 /// @param {Ext.data.Model} instance The model instance to destroy
 /// @param {Object} options success and failure callbacks
 /// </summary>
 public void destroy(Model instance, object options){}
 /// <summary>
 /// @private
 /// Loads a record's associations from the data object. This prepopulates hasMany and belongsTo associations
 /// on the record provided.
 /// @param {Ext.data.Model} record The record to load associations for
 /// @param {Object} data The data object
 /// @return {String} Return value description
 /// </summary>
 public JsString readAssociated(Model record, object data){return null;}
 /// <summary>
 /// Get the index within the entire dataset. From 0 to the totalCount.
 /// @param {Ext.data.Model} record The Ext.data.Model object to find.
 /// @return {Number} The index of the passed Record. Returns -1 if not found.
 /// </summary>
 public JsNumber indexOfTotal(Model record){return null;}
 /// <summary>
 /// Read associated data
 /// @private
 /// @param {Ext.data.Model} record The record we're writing to
 /// @param {Ext.data.reader.Reader} reader The reader for the associated model
 /// @param {Object} associationData The raw associated data
 /// </summary>
 public void read(Model record, Reader reader, object associationData){}
 /// <summary>
 /// @private
 /// This complex-looking method takes a given Model instance and returns an object containing all data from
 /// all of that Model's *loaded* associations. It does this recursively - for example if we have a User which
 /// hasMany Orders, and each Order hasMany OrderItems, it will return an object like this:
 /// {
 /// orders: [
 /// {
 /// id: 123,
 /// status: 'shipped',
 /// orderItems: [
 /// ...
 /// ]
 /// }
 /// ]
 /// }
 /// This makes it easy to iterate over loaded associations in a DataView.
 /// @param {Ext.data.Model} record The Model instance
 /// @param {Array} ids PRIVATE. The set of Model instance internalIds that have already been loaded
 /// @return {Object} The nested data set for the Model's loaded associations
 /// </summary>
 public object prepareAssociatedData(Model record, JsArray ids){return null;}
 /// <summary>
 /// @private
 /// A model instance should call this method on the Store it has been {@link Ext.data.Model#join joined} to.
 /// @param {Ext.data.Model} record The model instance that was edited
 /// </summary>
 public void afterEdit(Model record){}
 /// <summary>
 /// Updates an existing model instance by applying optional updates to it and attempting to save
 /// @param {Ext.data.Model} instance The existing instance
 /// @param {Object} updates Optional additional updates to apply to the instance before saving
 /// @param {Object} options success and failure callback functions
 /// </summary>
 public void update(Model instance, object updates, object options){}
 /// <summary>
 /// Callback automatically tied to the index view's 'destroy' event. By default that just calls the controller's
 /// destroy function with the model instance and some basic callbacks to handle errors or show success. Can be
 /// overridden to provide custom behavior.
 /// @param {Ext.data.Model} instance The instance to destroy
 /// @param {Ext.View} view The view instance that fired the event
 /// </summary>
 public void onDestroyInstance(Model instance, object view){}
 /// <summary>
 /// Renders the edit form for a given model instance
 /// @param {Ext.data.Model} instance The instance to edit
 /// </summary>
 public void edit(Model instance){}
 /// <summary>
 /// @private
 /// A model instance should call this method on the Store it has been {@link Ext.data.Model#join joined} to..
 /// @param {Ext.data.Model} record The model instance that was edited
 /// </summary>
 public void afterReject(Model record){}
 /// <summary>
 /// Saves the given record in the Proxy. Runs each field's encode function (if present) to encode the data.
 /// @param {Ext.data.Model} record The model instance
 /// @param {String} id The id to save the record under (defaults to the value of the record's getId() function)
 /// </summary>
 public void setRecord(Model record, JsString id){}
 /// <summary>
 /// @private
 /// This complex-looking method takes a given Model instance and returns an object containing all data from
 /// all of that Model's *loaded* associations. See {@link #getAssociatedData}
 /// @param {Ext.data.Model} record The Model instance
 /// @param {String[]} ids PRIVATE. The set of Model instance internalIds that have already been loaded
 /// @param {String} associationType (optional) The name of the type of association to limit to.
 /// @return {Object} The nested data set for the Model's loaded associations
 /// </summary>
 public object prepareAssociatedData(Model record, object ids, JsString associationType){return null;}
 /// <summary>
 /// Loads matching fields from a model instance into this form
 /// @param {Ext.data.Model} instance The model instance
 /// @return {Ext.form.FormPanel} this
 /// </summary>
 public FormPanel loadRecord(Model instance){return null;}