/** * Copyright 2026 Adobe. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ declare global { interface Window { applyFocusVisiblePolyfill?: (scope: Document | ShadowRoot) => void; } } type Constructor> = { new (...args: any[]): T; prototype: T; }; interface OptionalLifecycleCallbacks { connectedCallback?(): void; disconnectedCallback?(): void; manageAutoFocus?(): void; } type MixableBaseClass = HTMLElement & OptionalLifecycleCallbacks; /** * This mixin function is designed to be applied to a class that inherits * from HTMLElement. It makes it easy for a custom element to coordinate with * the :focus-visible polyfill. * * NOTE(cdata): The code here was adapted from an example proposed with the * introduction of ShadowDOM support in the :focus-visible polyfill. * * @see https://github.com/WICG/focus-visible/pull/196 * @param {Function} SuperClass The base class implementation to decorate with * implementation that coordinates with the :focus-visible polyfill */ export declare const FocusVisiblePolyfillMixin: >(SuperClass: T) => T; export {};