///
import { UseFloatingOptions, UseFloatingReturn, FloatingContext, UseClickProps, UseDismissProps, UseRoleProps, UseListNavigationProps, UseTypeaheadProps, SizeOptions, OffsetOptions } from '@floating-ui/react';
interface UseDropdownFloatingProps extends UseFloatingOptions {
/** @default 4 */
offsetSize?: OffsetOptions;
/** @default 4 */
padding?: number;
/** @default true */
optionsMatchRefWidth?: boolean;
maxHeight?: number;
/**
* floating 요소가 reference 영역을 넘어갈 경우 자동 위치 처리 사용 유무
* - 자동 위치 상/하만 적용됩니다.
* @default true
*/
autoPlacement?: boolean;
sizeMiddlewareOptions?: SizeOptions;
}
/**
* @desc Dropdown floating 메인 훅
* - 반환값 https://floating-ui.com/docs/useFloating#return-value 참고
* - middleware 기본 정의값을 사용하지 않을 경우 전체 middleware(https://floating-ui.com/docs/useFloating#middleware)를 재정의할 수 있습니다.
*/
export declare const useDropdownFloating: ({ open, onOpenChange, offsetSize, padding, optionsMatchRefWidth, maxHeight, autoPlacement: autoPlacementProps, sizeMiddlewareOptions, middleware, }: UseDropdownFloatingProps) => UseFloatingReturn;
export type DropdownInteraction = 'useClick' | 'useDismiss' | 'useRole' | 'useListNavigation' | 'useTypeahead';
type UseDropdownInteractionsProps = {
context: FloatingContext;
/**
* 미사용할 이벤트 핸들러 목록
*/
disabledInteractions?: DropdownInteraction[];
useClickProps?: UseClickProps;
useDismissProps?: UseDismissProps;
useRoleProps?: UseRoleProps;
useListNavigationProps?: UseListNavigationProps;
useTypeaheadProps?: UseTypeaheadProps;
};
/**
* @desc Dropdown 공통 이벤트 핸들러 훅
* - 반환값 https://floating-ui.com/docs/useInteractions#return-value 참고
*/
export declare const useDropdownInteractions: ({ context, disabledInteractions, useClickProps, useDismissProps, useRoleProps, useListNavigationProps, useTypeaheadProps, }: UseDropdownInteractionsProps) => {
getReferenceProps: (userProps?: import("react").HTMLProps | undefined) => Record;
getFloatingProps: (userProps?: import("react").HTMLProps | undefined) => Record;
getItemProps: (userProps?: (Omit, "selected" | "active"> & {
active?: boolean | undefined;
selected?: boolean | undefined;
}) | undefined) => Record;
};
export {};