/// 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 {};