import { DropdownOption } from '../../../shared/types/dropdown';
import { InputRef } from '../../../shared/types/input';
interface UseDropdownProps {
    value?: string | number | (string | number)[];
    defaultValue?: string | number | (string | number)[];
    options: DropdownOption[];
    valueName?: string;
    idName?: string;
    onValueChange?: (value: string | number | (string | number)[]) => void;
    onOptionSelect?: (option: DropdownOption) => void;
    searchable?: boolean;
    closeOnClickOutside?: boolean;
    dropdownId?: string;
    disabled?: boolean;
    multiple?: boolean;
    maxSelectedItems?: number;
    absolute?: boolean;
    /** Cuando se define, el menú usa este z-index en lugar del por defecto (p. ej. en celdas de tabla para quedar bajo columnas sticky). */
    popoverZIndex?: number;
    onOpenChange?: (isOpen: boolean) => void;
    withCheckbox?: boolean;
    /** No permitir quitar selección desde el menú (solo añadir). */
    preventDeselectFromOptionsList?: boolean;
}
export declare const useDropdown: ({ value, defaultValue, options, valueName, idName, onValueChange, onOptionSelect, searchable, closeOnClickOutside, dropdownId, disabled, multiple, maxSelectedItems, absolute, popoverZIndex, onOpenChange, withCheckbox, preventDeselectFromOptionsList, }: UseDropdownProps) => {
    isOpen: boolean;
    isClosing: boolean;
    searchValue: string;
    selectedValue: string | number | (string | number)[];
    selectedOptions: DropdownOption[];
    filteredOptions: DropdownOption[];
    position: "top" | "bottom";
    dropdownStyle: import('react').CSSProperties;
    isControlled: boolean;
    multiple: boolean;
    inputRef: import('react').RefObject<InputRef>;
    dropdownRef: import('react').RefObject<HTMLDivElement>;
    containerRef: import('react').RefObject<HTMLDivElement>;
    dropdownUniqueId: string;
    toggleDropdown: (event?: React.MouseEvent) => void;
    closeDropdown: () => void;
    handleOptionSelect: (option: DropdownOption, event?: React.MouseEvent) => void;
    handleSearchChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
    handleClear: (e: React.MouseEvent) => void;
    clearSearch: () => void;
    calculatePosition: () => void;
    setValue: (newValue: string | number | (string | number)[]) => void;
    scrollToSelectedOption: () => void;
    normalizeToArray: (val: string | number | (string | number)[] | undefined) => (string | number)[];
};
export {};
//# sourceMappingURL=useDropdown.d.ts.map