import _WidgetBase = require("./_WidgetBase"); import { Handle } from "dojo/interfaces"; declare namespace focus { /** * Tracks the currently focused node, and which widgets are currently "active". * Access via require(["dijit/focus"], function(focus){ ... }). * * A widget is considered active if it or a descendant widget has focus, * or if a non-focusable node of this widget or a descendant was recently clicked. * * Call focus.watch("curNode", callback) to track the current focused DOMNode, * or focus.watch("activeStack", callback) to track the currently focused stack of widgets. * * Call focus.on("widget-blur", func) or focus.on("widget-focus", ...) to monitor when * when widgets become active/inactive * * Finally, focus(node) will focus a node, suppressing errors if the node doesn't exist. */ interface FocusManager { /** * Currently focused item on screen */ curNode: Element; /** * List of currently active widgets (focused widget and it's ancestors) */ activeStack: _WidgetBase[]; /** * Registers listeners on the specified iframe so that any click * or focus event on that iframe (or anything in it) is reported * as a focus/click event on the `