import { ControllerBase, type ControllerHost } from './Abstracts/ControllerBase';
/**
 * The config options for a ClickOutsideController.
 *
 * @public
 */
export interface IClickOutsideControllerConfig {
    /**
     * An array of elements that should be ignored when detecting clicks outside the host element.
     *
     * @public
     */
    ignored?: () => Array<HTMLElement>;
    /**
     * The callback to be called when a click outside the host element is detected.
     *
     * @public
     */
    callback?: (e: Event) => void;
    /**
     * If true, the controller will not call the callback on initial connection.
     * This is useful to prevent immediate callbacks when the controller is first connected.
     *
     * @public
     */
    skipInitial?: boolean;
}
/**
 * ClickOutsideController - This controller is used to detect clicks outside of the host element.
 *
 * @public
 */
export declare class ClickOutsideController extends ControllerBase {
    private readonly _callback?;
    private readonly _skipInitial;
    private readonly _ignored;
    private _clickSubscription;
    private _keydownSubscription;
    private _resizeSubscription;
    /**
     * Constructs a new instance of the `ClickOutsideController` class.
     *
     * @public
     */
    constructor(host: ControllerHost, config: IClickOutsideControllerConfig);
    hostConnected(): void;
    hostDisconnected(): void;
    observe(): void;
    unobserve(): void;
    private onClick;
    private onKeyDown;
    private onResize;
}
//# sourceMappingURL=ClickOutsideController.d.ts.map