import type { ReactiveController, ReactiveControllerHost } from 'lit';
type RootClickControllerConfig = {
    hideCallback?: () => void;
    target?: HTMLElement;
};
interface RootClickControllerHost extends ReactiveControllerHost, HTMLElement {
    open: boolean;
    keepOpenOnOutsideClick?: boolean;
    hide(): void;
}
export declare class RootClickController implements ReactiveController {
    private readonly host;
    private config?;
    constructor(host: RootClickControllerHost, config?: RootClickControllerConfig | undefined);
    private addEventListeners;
    private removeEventListeners;
    private configureListeners;
    private shouldHide;
    handleEvent(event: PointerEvent): void;
    private hide;
    update(config?: RootClickControllerConfig): void;
    hostConnected(): void;
    hostDisconnected(): void;
}
export declare function addRootClickHandler(host: RootClickControllerHost, config?: RootClickControllerConfig): RootClickController;
export {};
