+
+
+--- Add an anonymous section.
+-- @class function
+-- @name Cursor.add
+-- @param config UCI config
+-- @param type UCI section type
+-- @return Name of created section
+
+--- Get a table of unsaved changes.
+-- @class function
+-- @name Cursor.changes
+-- @param config UCI config
+-- @return Table of changes
+
+--- Commit unsaved changes.
+-- @class function
+-- @name Cursor.commit
+-- @param config UCI config
+-- @return Boolean whether operation succeeded
+-- @see Cursor.revert
+
+--- Deletes a section or an option.
+-- @class function
+-- @name Cursor.delete
+-- @param config UCI config
+-- @param section UCI section name
+-- @param option UCI option (optional)
+-- @return Boolean whether operation succeeded
+
+--- Call a function for every section of a certain type.
+-- @class function
+-- @name Cursor.foreach
+-- @param config UCI config
+-- @param type UCI section type
+-- @param callback Function to be called
+-- @return Boolean whether operation succeeded
+
+--- Get a section type or an option
+-- @class function
+-- @name Cursor.get
+-- @param config UCI config
+-- @param section UCI section name
+-- @param option UCI option (optional)
+-- @return UCI value
+
+--- Get all sections of a config or all values of a section.
+-- @class function
+-- @name Cursor.get_all
+-- @param config UCI config
+-- @param section UCI section name (optional)
+-- @return Table of UCI sections or table of UCI values
+
+--- Manually load a config.
+-- @class function
+-- @name Cursor.load
+-- @param config UCI config
+-- @return Boolean whether operation succeeded
+-- @see Cursor.save
+-- @see Cursor.unload
+
+--- Revert unsaved changes.
+-- @class function
+-- @name Cursor.revert
+-- @param config UCI config
+-- @return Boolean whether operation succeeded
+-- @see Cursor.commit
+
+--- Saves changes made to a config to make them committable.
+-- @class function
+-- @name Cursor.save
+-- @param config UCI config
+-- @return Boolean whether operation succeeded
+-- @see Cursor.load
+-- @see Cursor.unload
+
+--- Set a value or create a named section.
+-- @class function
+-- @name Cursor.set
+-- @param config UCI config
+-- @param section UCI section name
+-- @param option UCI option or UCI section type
+-- @param value UCI value or nil if you want to create a section
+-- @return Boolean whether operation succeeded
+
+--- Get the configuration directory.
+-- @class function
+-- @name Cursor.get_confdir
+-- @return Configuration directory
+
+--- Get the directory for uncomitted changes.
+-- @class function
+-- @name Cursor.get_savedir
+-- @return Save directory
+
+--- Set the configuration directory.
+-- @class function
+-- @name Cursor.set_confdir
+-- @param directory UCI configuration directory
+-- @return Boolean whether operation succeeded
+
+--- Set the directory for uncommited changes.
+-- @class function
+-- @name Cursor.set_savedir
+-- @param directory UCI changes directory
+-- @return Boolean whether operation succeeded
+
+--- Discard changes made to a config.
+-- @class function
+-- @name Cursor.unload
+-- @param config UCI config
+-- @return Boolean whether operation succeeded
+-- @see Cursor.load
+-- @see Cursor.save