text: /**
   * @fileoverview added by tsickle
   * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
   */
  /**
   * @license
   * Copyright Google LLC All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://angular.io/license
   */
  import { ListKeyManager } from './list-key-manager';
  /**
   * This is the interface for focusable items (used by the FocusKeyManager).
   * Each item must know how to focus itself, whether or not it is currently disabled
   * and be able to supply it's label.
   * @record
   */
  export function FocusableOption() { }
  if (false) {
      /**
       * Focuses the `FocusableOption`.
       * @param {?=} origin
       * @return {?}
       */
      FocusableOption.prototype.focus = function (origin) { };
  }
  /**
   * @template T
   */
  export class FocusKeyManager extends ListKeyManager {
      constructor() {
          super(...arguments);
          this._origin = 'program';
      }
      /**
       * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.
       * @template THIS
       * @this {THIS}
       * @param {?} origin Focus origin to be used when focusing items.
       * @return {THIS}
       */
      setFocusOrigin(origin) {
          (/** @type {?} */ (this))._origin = origin;
          return (/** @type {?} */ (this));
      }
      /**
       * @param {?} item
       * @return {?}
       */
      setActiveItem(item) {
          super.setActiveItem(item);
          if (this.activeItem) {
              this.activeItem.focus(this._origin);
          }
      }
  }
  if (false) {
      /**
       * @type {?}
       * @private
       */
      FocusKeyManager.prototype._origin;
  }
  //# sourceMappingURL=focus-key-manager.js.map