import type { ReactiveController, ReactiveControllerHost } from 'lit';
/**
 * Controller host type for FlowBoardComposerController.
 *
 * @public
 */
export type FlowBoardComposerControllerHost = ReactiveControllerHost & HTMLElement;
/**
 * Controller for FlowBoard composer elements (create forms with trigger+form pattern).
 *
 * @description
 * Provides common functionality for FlowBoard composers:
 * - Open/close state management
 * - Keyboard shortcuts (Escape to close)
 * - Focus management when opening
 * - Host attribute synchronization
 *
 * @remarks
 * This controller is completely data-agnostic. The actual form content
 * and data structure is provided by the user via slots.
 *
 * @public
 */
export declare class FlowBoardComposerController implements ReactiveController {
    private readonly _host;
    private _open;
    /**
     * Constructs a new instance of the `FlowBoardComposerController` class.
     *
     * @param host - The host element.
     *
     * @public
     */
    constructor(host: FlowBoardComposerControllerHost);
    /**
     * Gets or sets whether the composer form is open.
     *
     * @public
     */
    get open(): boolean;
    set open(value: boolean);
    /**
     * Toggles the composer between open and closed state.
     *
     * @public
     */
    toggle(): void;
    /**
     * Closes the composer form.
     *
     * @public
     */
    close(): void;
    /**
     * Handles keyboard events in the form.
     * Pressing Escape closes the form.
     *
     * @param evt - The keyboard event.
     *
     * @public
     */
    handleFormKeydown(evt: KeyboardEvent): void;
    /**
     * @public
     */
    hostConnected(): void;
    /**
     * Updates the host element's `open` attribute based on the open state.
     *
     * @private
     */
    private updateHostAttribute;
    /**
     * Focuses the first focusable element in the form slot when opened.
     *
     * @private
     */
    private focusFirstElement;
}
/**
 * Adds a FlowBoardComposerController to the host element.
 *
 * @param host - The host element.
 * @returns The controller instance.
 *
 * @public
 */
export declare function addFlowBoardComposerController(host: FlowBoardComposerControllerHost): FlowBoardComposerController;
//# sourceMappingURL=FlowBoardComposerController.d.ts.map