import { ItemWithSubtree } from "../../types";
import type { ItemDescriptor } from "../pageModel";
import type { ItemTreeNodeData } from "../services/contentService";
export type SelectedTreeItemInput = Pick<ItemTreeNodeData, "id"> & Partial<Pick<ItemTreeNodeData, "displayName" | "idPath" | "language" | "name" | "path" | "version">>;
export type ItemCollectionEditorProps = {
    /** Currently selected items with includeSubitems flag */
    items: ItemWithSubtree[];
    /** Selected nodes in the tree (for Add button) */
    selectedInTree: ItemTreeNodeData[];
    onSelectedInTreeChange: (items: ItemTreeNodeData[]) => void;
    /** Selected items in the right panel (for Remove button) */
    selectedFromList: ItemWithSubtree[];
    onSelectedFromListChange: (items: ItemWithSubtree[]) => void;
    /** Add selected tree items to the list */
    onAddToList: (items?: SelectedTreeItemInput[]) => void | Promise<void>;
    /** Remove selected list items */
    onRemoveFromList: () => void;
    /** Add a single item (from tree double-click or search) */
    onAddItem: (item: ItemTreeNodeData | (ItemDescriptor & {
        path?: string;
        idPath?: string;
        icon?: string;
    })) => void | Promise<void>;
    /** Remove item at index */
    onRemoveItem: (index: number) => void;
    /** Toggle includeSubitems at index */
    onToggleSubitems: (index: number) => void;
    /** Language for tree and item display */
    language: string;
    /** Root item IDs for the content tree */
    rootItemIds?: string[];
    /** Label for the selected items panel header */
    selectedItemsLabel?: string;
    /** Message when no items selected */
    emptyMessage?: string;
    emptyHint?: string;
    /** Height of the editor in pixels */
    height?: number;
    /** LocalStorage key for splitter position */
    localStorageKey?: string;
};
export declare function ItemCollectionEditor({ items, selectedInTree, onSelectedInTreeChange, selectedFromList, onSelectedFromListChange, onAddToList, onRemoveFromList, onAddItem, onRemoveItem, onToggleSubitems, language, rootItemIds, selectedItemsLabel, emptyMessage, emptyHint, height, localStorageKey, }: ItemCollectionEditorProps): import("react/jsx-runtime").JSX.Element;
