import { nothing, PropertyValues } from 'lit';
import { InputSize } from '../../shared/types';
export type LuksoDropdownOnChangeEventDetail = {
    isOpen: boolean;
};
export type LuksoDropdownTrigger = 'click' | 'hover';
export type LuksoDropdownPosition = 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | 'auto';
declare const LuksoDropdown_base: typeof import('lit').LitElement;
/**
 * A floating dropdown panel that positions absolutely relative to its trigger element.
 *
 * @slot - Dropdown content, typically `lukso-dropdown-option` elements.
 */
export declare class LuksoDropdown extends LuksoDropdown_base {
    id: string;
    triggerId: string;
    isOpen: boolean;
    isOpenOnOutsideClick: boolean;
    position: LuksoDropdownPosition;
    isFullWidth: boolean;
    size: InputSize;
    trigger: LuksoDropdownTrigger;
    maxHeight: any;
    customClass: string;
    private boundHandleClick?;
    private boundHandleResize?;
    private boundHandleScroll?;
    private _scrollRafId?;
    private _dropdownHeight?;
    private _heightMeasured;
    private get _win();
    constructor();
    private styles;
    private handleMouseEnter;
    private handleMouseLeave;
    private _findScrollContainer;
    private _resolveTriggerElement;
    private resolveDirection;
    private _addAutoListeners;
    private _removeAutoListeners;
    updated(changedProperties: PropertyValues<this>): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    willUpdate(changedProperties: PropertyValues<this>): Promise<void>;
    private handleClick;
    render(): import('lit-html').TemplateResult<1> | typeof nothing;
}
declare global {
    interface HTMLElementTagNameMap {
        'lukso-dropdown': LuksoDropdown;
    }
}
export {};
//# sourceMappingURL=index.d.ts.map