import type { ReactiveController, ReactiveControllerHost } from 'lit';
import type { AtomicAriaLive } from '../components/common/atomic-aria-live/atomic-aria-live';
import type { AnyBindings } from '../components/common/interface/bindings';
export interface FindAriaLiveEventArgs {
    element?: AtomicAriaLive;
}
export declare class AriaLiveRegionController implements ReactiveController {
    private host;
    private regionName;
    private assertive;
    constructor(host: ReactiveControllerHost, regionName: string, assertive?: boolean);
    private getAriaLiveElement;
    private dispatchMessage;
    set message(msg: string);
    hostUpdate(): void;
}
export declare class FocusTargetController implements ReactiveController {
    private host;
    private bindings;
    private lastSearchId?;
    private element?;
    private internalOnFocusCallback?;
    private publicOnFocusCallbacks;
    private doFocusAfterSearch;
    private doFocusOnNextTarget;
    constructor(host: ReactiveControllerHost, bindings: AnyBindings);
    registerFocusCallback(callback: Function): void;
    private clearFocusCallbacks;
    setTarget(el?: HTMLElement): Promise<void>;
    focus(): Promise<void>;
    focusAfterSearch(): Promise<unknown>;
    focusOnNextTarget(): Promise<unknown>;
    disableForCurrentSearch(): void;
    hostUpdated(): Promise<void>;
}
export declare function getFirstFocusableDescendant(element: Element): HTMLElement | null;
