---@meta
---@class cc.Action :cc.Ref
local Action={ }
cc.Action=Action
---* Called before the action start. It will also set the target.
---* param target A certain target.
---@param target cc.Node
---@return self
function Action:startWithTarget (target) end
---* Set the original target, since target can be nil.
---* Is the target that were used to run the action. Unless you are doing something complex, like ActionManager, you should NOT call this method.
---* The target is 'assigned', it is not 'retained'.
---* since v0.8.2
---* param originalTarget Is 'assigned', it is not 'retained'.
---@param originalTarget cc.Node
---@return self
function Action:setOriginalTarget (originalTarget) end
---* Returns a clone of action.
---* return A clone action.
---@return self
function Action:clone () end
---* Return a original Target.
---* return A original Target.
---@return cc.Node
function Action:getOriginalTarget () end
---* Called after the action has finished. It will set the 'target' to nil.
---* IMPORTANT: You should never call "Action::stop()" manually. Instead, use: "target->stopAction(action);".
---@return self
function Action:stop () end
---* Called once per frame. time a value between 0 and 1.
---* For example:
---* - 0 Means that the action just started.
---* - 0.5 Means that the action is in the middle.
---* - 1 Means that the action is over.
---* param time A value between 0 and 1.
---@param time float
---@return self
function Action:update (time) end
---* Return certain target.
---* return A certain target.
---@return cc.Node
function Action:getTarget () end
---* Returns a flag field that is used to group the actions easily.
---* return A tag.
---@return unsigned_int
function Action:getFlags () end
---* Called every frame with it's delta time, dt in seconds. DON'T override unless you know what you are doing.
---* param dt In seconds.
---@param dt float
---@return self
function Action:step (dt) end
---* Changes the tag that is used to identify the action easily.
---* param tag Used to identify the action easily.
---@param tag int
---@return self
function Action:setTag (tag) end
---* Changes the flag field that is used to group the actions easily.
---* param flags Used to group the actions easily.
---@param flags unsigned_int
---@return self
function Action:setFlags (flags) end
---* Returns a tag that is used to identify the action easily.
---* return A tag.
---@return int
function Action:getTag () end
---* The action will modify the target properties.
---* param target A certain target.
---@param target cc.Node
---@return self
function Action:setTarget (target) end
---* Return true if the action has finished.
---* return Is true if the action has finished.
---@return boolean
function Action:isDone () end
---* Returns a new action that performs the exact reverse of the action.
---* return A new action that performs the exact reverse of the action.
---* js NA
---@return self
function Action:reverse () end