declare module 'tabbable' {
  declare type TabbableOptions = {|
    includeContainer?: ?boolean,
  |};

  declare interface UntouchabilityChecker {
    hasDisplayNone(node: Node, nodeComputedStyle: any): boolean;
    isUntouchable(node: Node): boolean;
  }

  declare module.exports: {
    (el: Node, options?: ?TabbableOptions): Array<Node>,
    isTabbable(node: Node, untouchabilityChecker?: ?UntouchabilityChecker): boolean,
    isFocusable(node: Node, untouchabilityChecker?: ?UntouchabilityChecker): boolean,
  };
}

declare module 'tabbable' {
  declare type TabbableOptions = {|
    includeContainer?: ?boolean,
  |};

  declare interface UntouchabilityChecker {
    hasDisplayNone(node: HTMLElement, nodeComputedStyle: any): boolean;
    isUntouchable(node: HTMLElement): boolean;
  }

  declare module.exports: {
    (el: HTMLElement, options?: ?TabbableOptions): Array<HTMLElement>,
    isTabbable(node: HTMLElement, untouchabilityChecker?: ?UntouchabilityChecker): boolean,
    isFocusable(node: HTMLElement, untouchabilityChecker?: ?UntouchabilityChecker): boolean,
  };
}

Change tabbable types from Node to HTMLElement
Change tabbable types from Node to HTMLElement

The tabbable initial query uses querySelectorAll, which returns HTMLElements.
Element is different than Node because it includes methods like .focus().

- https://github.com/davidtheclark/tabbable/blob/master/index.js#L24
- https://github.com/facebook/flow/blob/master/lib/dom.js#L1036
- https://developer.mozilla.org/en-US/docs/Web/API/Element