export interface IFocusTrap { inactive: boolean; readonly focused: boolean; focusFirstElement: (() => void); focusLastElement: (() => void); getFocusableChildren: (() => HTMLElement[]); } export declare class FocusTrap extends HTMLElement implements IFocusTrap { static readonly observedAttributes: string[]; inactive: boolean; private $backup; private debounceId; private $start; private $end; private _focused; /** * Returns whether the element currently has focus. */ readonly focused: boolean; constructor(); /** * Hooks up the component. */ connectedCallback(): void; /** * Tears down the component. */ disconnectedCallback(): void; /** * When the attributes changes we need to re-render the template. */ attributeChangedCallback(): void; /** * Focuses the first focusable element in the focus trap. */ focusFirstElement(): void; /** * Focuses the last focusable element in the focus trap. */ focusLastElement(): void; /** * Returns a list of the focusable children found within the element. */ getFocusableChildren(): HTMLElement[]; /** * Focuses on either the last or first focusable element. * @param {boolean} trapToEnd */ protected trapFocus(trapToEnd?: boolean): void; /** * When the element gains focus this function is called. */ private onFocusIn; /** * When the element looses its focus this function is called. */ private onFocusOut; /** * Updates the has focus property and updates the view. * The update is debounces because the focusin and focusout out * might fire multiple times in a row. * @param value */ private updateHasFocus; /** * Updates the template. */ protected render(): void; }