import { default as React } from 'react';
import { TreeViewBaseItem } from '@mui/x-tree-view';
import { RichTreeViewProps } from '@mui/x-tree-view/RichTreeView';
export interface TreeView2Props extends RichTreeViewProps<TreeViewBaseItem, boolean> {
    /** 외부 스타일 커스터마이징용 class */
    className?: string;
    /** 렌더링할 최상위 트리 데이터 */
    items: TreeViewBaseItem[];
    /** 외부에서 items 상태를 직접 제어하고 싶을 때 전달 (setState 함수) */
    setItems?: (next: TreeViewBaseItem[] | ((prev: TreeViewBaseItem[]) => TreeViewBaseItem[])) => void;
    /** 행 hover 시 배경 하이라이트 표시 여부 @default true */
    hoverHighlight?: boolean;
    /** 노드 open 토글을 외부에서 제어하고 싶을 때 호출됩니다. 제공되면 내부에서는 open 상태를 변경하지 않습니다. */
    onToggleOpen?: (id: string, nextOpen: boolean) => void;
    /** 아이템 비활성 조건 함수(비활성 시 클릭/체크 방지) */
    isItemDisabled?: (item: TreeViewBaseItem) => boolean;
    /** 체크박스 선택 기능 사용 여부 @default false*/
    /** item title 앞에 체크박스를 추가할지 여부 */
    checkboxSelection?: boolean;
    /** 다중 선택 허용 여부(선택 집합 유지) @default false*/
    multiSelect?: boolean;
    /** 선택/해제 토글 시 콜백
     *  @param event - 원본 이벤트
     *  @param itemId - 대상 아이템 id
     *  @param isSelected - 선택됨(true)/해제됨(false)
     */
    onItemSelectionToggle?: (event: React.SyntheticEvent, itemId: string, isSelected: boolean) => void;
    /** 아이템 클릭 시 콜백(싱글 클릭 확정 시점에 호출) */
    onItemClick?: (event: React.MouseEvent, itemId: string, value?: any) => void;
    /** 아이템 더블클릭 시 콜백 */
    onItemDoubleClick?: (itemId: string | undefined, value?: any) => void;
    /** 행 추가 기능
     *  - boolean: 헤더의 추가 버튼만 노출(true)
     *  - function: (item, parentId)로 신규 행 생성 로직 위임
     *    item: menuLvSeq 포함한 노드 정보
     */
    /** 행 삭제 콜백(실제 데이터 삭제는 부모에서 처리) */
    /** 저장 버튼 클릭/인라인 생성 완료 등 저장 트리거 콜백 */
    /** 프리뷰 바에 표시할 텍스트(옵션) */
    previewText?: string;
    /** 초기 전체 펼침 여부(true면 모든 브랜치 펼침) */
    defaultExpanded?: boolean;
    /** 로딩 상태 표시 여부(스피너 등) */
    isLoading?: boolean;
    /** 허용되는 최대 뎁스(이 값 이상 추가 불가) */
    maxLevel?: number;
    /** 허용되는 최소 뎁스(이 값 이하 추가/작업 제한용) */
    minLevel?: number;
    /** 해당 id로 스크롤 및 경로 자동 펼침/선택 */
    scrollTo?: string;
    /** 라벨 수정 등 외부 편집 패치용(id, label 매핑 리스트) */
    editItems?: {
        id: string;
        label: string;
    }[];
    /** 테이블 연동 검증용 데이터(id 존재 여부 확인 등에 사용) */
    tableData?: {
        id: string;
    }[];
    /** DnD 재정렬 모드 활성화 (같은 레벨/같은 그룹 내에서만 이동) */
    reorderMode?: boolean;
    /** 몇 레벨부터 드래그 가능하게 할지 (기본값: 1, 루트 레벨) */
    draggableFromLevel?: number;
    /** 재정렬 결과가 확정될 때 호출되는 콜백 (최상위 items 전체를 반환) */
    onReorder?: (nextItems: TreeViewBaseItem[]) => void;
}
declare const TreeView2: ({ className, items, setItems, hoverHighlight, onToggleOpen, isItemDisabled, checkboxSelection, multiSelect, reorderMode, draggableFromLevel, onItemSelectionToggle, onItemClick, onItemDoubleClick, defaultExpanded, isLoading, scrollTo, editItems, previewText, onReorder, }: TreeView2Props) => import("react/jsx-runtime").JSX.Element;
export default TreeView2;
