import type { ReactiveController } from 'lit'; import { LuzmoAbstractOverlay } from './abstract-overlay'; export declare enum InteractionTypes { click = "click", hover = "hover", longpress = "longpress" } export declare const lastInteractionType: unique symbol; export declare const SAFARI_FOCUS_RING_CLASS = "remove-focus-ring-safari-hack"; export type ControllerOptions = { overlay?: LuzmoAbstractOverlay; handleOverlayReady?: (overlay: LuzmoAbstractOverlay) => void; isPersistent?: boolean; }; type InteractionTarget = HTMLElement & { [lastInteractionType]?: InteractionTypes; }; export declare class InteractionController implements ReactiveController { target: InteractionTarget; abortController: AbortController; get activelyOpening(): boolean; private handleOverlayReady?; private isLazilyOpen; get open(): boolean; /** * Set `open` against the associated Overlay lazily. */ set open(open: boolean); get overlay(): LuzmoAbstractOverlay; set overlay(overlay: LuzmoAbstractOverlay | undefined); private _overlay; protected isPersistent: boolean; type: InteractionTypes; constructor(target: InteractionTarget, { overlay, isPersistent, handleOverlayReady }: ControllerOptions); prepareDescription(_: HTMLElement): void; releaseDescription(): void; shouldCompleteOpen(): void; init(): void; initOverlay(): void; abort(): void; hostConnected(): void; hostDisconnected(): void; } export {};