---@meta
---@class Controller
Controller = {}
Controller.Detection = {
VISUAL = 1,
OPTIC = 2,
RADAR = 4,
IRST = 8,
RWR = 16,
DLINK = 32
}
---Pushes the specified task to the front of the tasking queue. If no other tasks are currently active it will function effectively the same as `Controller.setTask()`.
---[Available Tasks](https://wiki.hoggitworld.com/view/DCS_func_pushTask)
---@param task table -- The task to be pushed to the front of the queue.
function Controller:pushTask(task) end
---Removes the top task from the tasking queue.
function Controller:popTask() end
---Resets the current task assigned to the controller.
function Controller:resetTask() end
---Commands are instant actions that require zero time to perform.
---Commands may be used both for control unit/group behavior and control game mechanics. Setting a command will have no impact on active tasking.
---[Available Commands](https://wiki.hoggitworld.com/view/DCS_func_command)
---@param command table -- The command to be set.
function Controller:setCommand(command) end
---Sets the controlled group to go the specified speed in meters per second.
---Optional boolean `keep` when set to true will maintain that speed on passing waypoints.
---If `keep` is not present or false, the controlled group will return to the speed as defined by their route.
---The following will set the tanker to fly slower at a speed an A-10 can achieve:
---```
---Group.getByName("KC-135"):getController():setSpeed(125)
---```
---@param speed number -- The speed in meters per second.
---@param keep boolean? -- Optional. If true, maintains the speed on passing waypoints.
function Controller:setSpeed(speed, keep) end
---Sets the specified task to the units or groups associated with the controller object. Tasks must fit a specified format.
---[Available Tasks](https://wiki.hoggitworld.com/view/DCS_func_setTask)
---@param task table -- The task to be set.
function Controller:setTask(task) end