import { LitElement } from "lit";
import { FocusClass } from "./FocusMixin";
export type AnyConstructor<A = LitElement> = new (...args: any[]) => A;
export declare abstract class FocusTrapClass extends LitElement {
    protected deactivateFocusTrap?(): void;
    protected activateFocusTrap?(): void;
    protected focusableElements?: HTMLElement[];
    protected initialFocusComplete?: boolean;
    protected setFocusableElements?(): void;
    protected setInitialFocus?(prefferableElement?: HTMLElement | number, ignoreAutoFocus?: boolean): void;
    protected setFocusOnTrigger?(triggerEleement?: HTMLElement): void;
    protected setFocusOnDeepestNestedElement?(element?: HTMLElement): void;
}
export interface FocusTrapInterface {
    activeFocusTrap: boolean;
    preventClickOutside: boolean;
    preventScroll: boolean;
    focusTrapIndex: number;
}
export declare const FocusTrapMixin: <T extends AnyConstructor<FocusClass & FocusTrapClass>>(base: T) => T & AnyConstructor<FocusTrapClass & FocusTrapInterface & FocusClass>;
