export declare function selectAutoWidthStyle(autoWidth: number | undefined, isAutoWidth: boolean): string | undefined;
export declare function getOptionListKey(option: unknown, fallbackKey: string): string;
export declare function bindParentScrollListeners(root: HTMLDivElement, onScroll: () => void): () => void;
export declare function calcSelectOptionsStyle(rect: DOMRect, optionsLength: number, minShowRows: number, maxShowRows: number): React.CSSProperties;
export declare function setSelectOptionsStyle(optionsRef: React.RefObject<HTMLDivElement | null>, anchorRef: React.RefObject<HTMLDivElement | null>, options: readonly unknown[] | undefined, minShowRows: number, maxShowRows: number): void;
interface IUseSelectPopupBehaviorParams {
    anchorRef: React.RefObject<HTMLDivElement | null>;
    isDisabled?: boolean | string;
    isLoading?: boolean;
    isReadonly?: boolean;
    maxShowRows: number;
    minShowRows: number;
    onClick?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
    onClose?: () => void;
    options: readonly unknown[];
    optionsRef: React.RefObject<HTMLDivElement | null>;
    scrollMode: 'document' | 'parent';
}
export declare function useSelectPopupBehavior({ anchorRef, optionsRef, options, minShowRows, maxShowRows, isReadonly, isDisabled, isLoading, onClose, onClick, scrollMode, }: IUseSelectPopupBehaviorParams): {
    close: () => void;
    handleClick: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
    isOpen: boolean;
    isTransitioning: boolean;
    onScroll: () => void;
    onTransitionEnd: () => void;
    open: () => void;
    scheduleOptionsStyle: () => void;
    unAvailable: boolean;
};
export {};
