import { ReactiveController, ReactiveControllerHost } from 'lit'; import { DropdownController, DropdownHost, DropdownPosition, DropdownSpace } from './dropdown.interface.js'; /** * Shared dropdown controller for components that need dropdown functionality * Based on the select component's dropdown controller but generalized for reuse */ export declare class SharedDropdownController implements ReactiveController, DropdownController { private _host; private _isOpen; private _position; private _dropdownElement; private _triggerElement; constructor(host: ReactiveControllerHost & DropdownHost); hostConnected(): void; hostDisconnected(): void; private handleOutsidePointerDown; private handleKeyDown; private attachOutsideListeners; private detachOutsideListeners; /** * Check if dropdown is open */ get isOpen(): boolean; /** * Get current dropdown position */ get position(): DropdownPosition; /** * Open the dropdown */ open(): void; /** * Close the dropdown */ close(): void; /** * Toggle dropdown visibility */ toggle(): void; /** * Calculate optimal dropdown placement */ calculatePosition(): void; /** * Reset dropdown position */ resetPosition(): void; /** * Set dropdown and trigger element references */ setElements(dropdownElement: HTMLElement, triggerElement: HTMLElement): void; /** * Find dropdown and trigger elements */ private findElements; /** * Determine optimal dropdown placement */ private determineOptimalPlacement; /** * Apply calculated position to dropdown element */ private applyPosition; /** * Calculate available space around trigger */ getAvailableSpace(): DropdownSpace; /** * Handle window resize to recalculate position */ private handleResize; /** * Handle scroll to manage dropdown visibility */ private handleScroll; /** * Handle errors with fallback */ private handleError; } //# sourceMappingURL=dropdown.controller.d.ts.map