import { type HTMLAttributes, type MouseEvent, type ReactNode } from 'react'; export interface STreeNode { /** 노드 고유 ID */ id: string; /** 노드 라벨 */ label: ReactNode; /** 하위 노드 */ children?: STreeNode[]; /** 비활성 상태 */ disabled?: boolean; } export interface STreeItemRenderState { node: STreeNode; depth: number; expanded: boolean; selected: boolean; indeterminate: boolean; disabled: boolean; hasChildren: boolean; } export interface STreeItemProps extends Omit, 'children' | 'title' | 'onSelect' | 'onToggle'> { /** 렌더링할 노드 */ node: STreeNode; /** 중첩 단계 */ depth?: number; /** 마지막 자식 여부 */ isLast?: boolean; /** 상위 depth 별 마지막 자식 여부 */ ancestorLast?: boolean[]; /** 펼침 상태 */ expanded?: boolean; /** 선택 상태 */ selected?: boolean; /** depth 연결선 표시 여부 */ guideline?: boolean; /** 아이템 하단 border 표시 여부 */ border?: boolean; /** 일부 선택 상태 */ indeterminate?: boolean; /** 체크박스 표시 여부 */ selectable?: boolean; /** 사용자 지정 leading 콘텐츠 */ leading?: ReactNode | ((state: STreeItemRenderState) => ReactNode); /** 사용자 지정 trailing 콘텐츠 */ trailing?: ReactNode | ((state: STreeItemRenderState) => ReactNode); /** 아이템 확장/축소 토글 */ onToggle?: (node: STreeNode, event?: MouseEvent) => void; /** 선택 토글 */ onTreeSelect?: (node: STreeNode, event?: MouseEvent) => void; } export interface STreeProps extends Omit, 'children'> { /** 트리 노드 목록 */ items: STreeNode[]; /** 선택된 노드 ID 목록 */ value?: string[]; /** 비제어 선택 초기값 */ defaultValue?: string[]; /** 펼쳐진 노드 ID 목록 */ expandedIds?: string[]; /** 비제어 펼침 초기값 */ defaultExpandedIds?: string[]; /** 체크박스 표시 여부 */ selectable?: boolean; /** depth 연결선 표시 여부 */ guideline?: boolean; /** 아이템 하단 border 표시 여부 */ border?: boolean; /** 부모 선택 시 하위 노드까지 함께 토글 */ cascadeSelection?: boolean; /** 사용자 지정 leading 콘텐츠 */ leading?: ReactNode | ((state: STreeItemRenderState) => ReactNode); /** 사용자 지정 trailing 콘텐츠 */ trailing?: ReactNode | ((state: STreeItemRenderState) => ReactNode); /** 선택 변경 */ onValueChange?: (value: string[], node: STreeNode) => void; /** 펼침 변경 */ onExpandedChange?: (expandedIds: string[], node: STreeNode) => void; } export declare const STreeItem: import("react").ForwardRefExoticComponent>; export declare const STree: import("react").ForwardRefExoticComponent>;