import { type HTMLAttributes, type MouseEvent, type ReactNode } from 'react';
export interface SDraggableItemRenderState {
hovered: boolean;
dragging: boolean;
disabled: boolean;
}
export type SDraggableItemRenderProp = (state: SDraggableItemRenderState) => ReactNode;
export type SDraggableItemSlot = ReactNode | SDraggableItemRenderProp;
export type SDraggableItemSupportingTextPosition = 'right' | 'bottom';
export type SDraggableItemSize = 'sm' | 'md';
export interface SDraggableItemProps extends Omit, 'children' | 'title'> {
/** 드래그 아이템 제목 */
title: SDraggableItemSlot;
/** 제목을 보조하는 텍스트 */
supportingText?: SDraggableItemSlot;
/** 보조 텍스트 위치 */
supportingTextPosition?: SDraggableItemSupportingTextPosition;
/** 타이틀 뒤에 표시할 태그/콘텐츠 */
trailing?: SDraggableItemSlot;
/** 아이템 왼쪽 accent stripe 표시 여부 */
accentStripe?: boolean;
/** 외곽 테두리 사용 여부 */
bordered?: boolean;
/** 선택 상태 여부 */
selected?: boolean;
/** 드래그 중인 스타일을 고정해서 표시할지 여부 */
dragging?: boolean;
/** 조밀한 높이 사용 여부 */
dense?: boolean;
/** 타이포그래피·세로 패딩 크기 */
size?: SDraggableItemSize;
/** 비활성 상태 여부 */
disabled?: boolean;
/** 드래그 시 마우스를 따라가는 overlay 표시 여부 */
dragOverlay?: boolean;
/** 드래그 overlay 투명도 */
dragOverlayOpacity?: number;
/** 드래그 핸들에 전달할 속성 */
dragHandleProps?: HTMLAttributes;
/** 드래그 핸들 mouse down 이벤트 */
onDragHandleMouseDown?: (event: MouseEvent) => void;
}
export declare const SDraggableItem: import("react").ForwardRefExoticComponent>;