import { ItemTreeNodeData } from "./services/contentService";
import { ItemDescriptor } from "./pageModel";
import { TreeNode } from "./ui/PerfectTree";
type CustomTreeNode = TreeNode & {
    isDraggable?: boolean;
    iconUrl?: string;
    url?: string;
    loading?: boolean;
    parent?: CustomTreeNode;
    selectable?: boolean;
    className?: string;
};
export default function ContentTree({ isDraggable, dragEnd, expandIdPath, initialExpandedKeys, selectionMode, multiSelectRequiresModifier, selectedItemIds, rootItemIds, onSelectionChange, onItemClick, filter, templateIds, className, includeEmbeddedItems, onDoubleClick, selectPagesOnly, renderNode, renderNodePrefix, onItemInserted, language, includeItemPath, scrollToSelected, disableAutoSelectOnExpand, showGrabCursorForDraggableNodes, nodeCursor, enableDragAndDrop, enableItemDrop, enableContextMenu, hideRootNodes, database, showCheckboxes, loadChildrenOverride, }: {
    isDraggable?: (item: ItemTreeNodeData) => boolean;
    dragEnd?: () => void;
    expandIdPath?: string;
    /** Keys to expand on first load (in addition to anything derived from expandIdPath). */
    initialExpandedKeys?: string[];
    selectionMode?: "single" | "multiple" | "none";
    multiSelectRequiresModifier?: boolean;
    rootItemIds?: string[];
    selectedItemIds?: string[];
    onSelectionChange?: (itemIds: ItemTreeNodeData[], selectedIds?: string[]) => void;
    onItemClick?: (item: ItemTreeNodeData, ev: any) => void;
    filter?: (items: ItemTreeNodeData[]) => ItemTreeNodeData[];
    templateIds?: string[];
    className?: string;
    includeEmbeddedItems?: boolean;
    onDoubleClick?: (item: ItemTreeNodeData) => void;
    selectPagesOnly?: boolean;
    onItemInserted?: (item: ItemDescriptor) => void;
    renderNode?: (node: CustomTreeNode, defaultRenderer: (node: CustomTreeNode) => React.ReactNode) => React.ReactNode;
    /** Render content at the far left of each node row (before the expand toggle) */
    renderNodePrefix?: (node: CustomTreeNode, depth: number) => React.ReactNode;
    language: string;
    includeItemPath?: boolean;
    scrollToSelected?: boolean;
    disableAutoSelectOnExpand?: boolean;
    showGrabCursorForDraggableNodes?: boolean;
    nodeCursor?: "pointer" | "default";
    enableDragAndDrop?: boolean;
    /**
     * Allows dragged items to be dropped back into this tree, which moves/copies
     * or reorders content items. Keep enabled for the main content tree.
     */
    enableItemDrop?: boolean;
    enableContextMenu?: boolean;
    hideRootNodes?: boolean;
    database?: string;
    /**
     * Render a checkbox in front of each node and switch click semantics to
     * "toggle selection (shift = cascade to descendants)". Disables onItemClick.
     */
    showCheckboxes?: boolean;
    /**
     * Replace the default `getChildren` call. Lets a caller feed pre-fetched
     * subtree data into ContentTree (e.g. when a single backend call returns the
     * whole forest faster than recursive client-side fetches).
     */
    loadChildrenOverride?: (parentId: string, language: string, database: string) => Promise<ItemTreeNodeData[]>;
}): import("react/jsx-runtime").JSX.Element;
export {};
