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