/**
 * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
 * Copyright 2025 by Keenthemes Inc
 */
import KTComponent from '../component';
import { KTSelectConfigInterface } from './config';
import { KTSelect } from './select';
/**
 * KTSelectDropdown
 *
 * A specialized dropdown implementation for the KTSelect component.
 * This module handles the dropdown functionality for the select component,
 * including positioning and showing/hiding.
 */
export declare class KTSelectDropdown extends KTComponent {
    protected readonly _name: string;
    protected readonly _config: KTSelectConfigInterface;
    protected _element: HTMLElement;
    private _toggleElement;
    private _dropdownElement;
    private _isOpen;
    private _isTransitioning;
    private _popperInstance;
    private _eventManager;
    private _focusManager;
    private _ktSelectInstance;
    /**
     * Constructor
     * @param element The parent element (select wrapper)
     * @param toggleElement The element that triggers the dropdown
     * @param dropdownElement The dropdown content element
     * @param config The configuration options
     */
    constructor(element: HTMLElement, toggleElement: HTMLElement, dropdownElement: HTMLElement, config: KTSelectConfigInterface, ktSelectInstance: KTSelect);
    /**
     * Set up event listeners for the dropdown
     */
    private _setupEventListeners;
    /**
     * Handle toggle element click
     */
    private _handleToggleClick;
    /**
     * Handle clicks outside the dropdown
     */
    private _handleOutsideClick;
    /**
     * Set width of dropdown based on toggle element
     */
    private _setDropdownWidth;
    /**
     * Detect if the select is inside a modal container
     * @returns The modal element if found, null otherwise
     */
    private _getModalContainer;
    /**
     * Get the appropriate boundary element for Popper positioning
     * For centered modals, use .kt-modal-content to avoid transform calculation issues
     * @returns The boundary element, or null if no modal found
     */
    private _getModalBoundary;
    /**
     * Get the appropriate positioning strategy based on context
     * @returns 'fixed' if inside non-centered modal, 'absolute' for centered modals or no modal
     */
    private _getPositioningStrategy;
    /**
     * Initialize the Popper instance for dropdown positioning
     */
    private _initPopper;
    /**
     * Parse offset string into an array of numbers
     */
    private _parseOffset;
    /**
     * Destroy the Popper instance
     */
    private _destroyPopper;
    /**
     * Update dropdown position
     */
    updatePosition(): void;
    /**
     * Open the dropdown
     */
    open(): void;
    /**
     * Close the dropdown
     */
    close(): void;
    /**
     * Check if dropdown is open
     */
    isOpen(): boolean;
    /**
     * Clean up component
     */
    dispose(): void;
    private _resolveDropdownContainer;
}
//# sourceMappingURL=dropdown.d.ts.map