import { NTree } from './interface';
import { SwitcherIconProps } from './components/SwitcherIcon';
export declare const componentName = "CdsTree";
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    theme: {
        type: import('vue').PropType<import('../../composable').TTheme | string>;
        available: readonly ["cdsLight", "cdsDark", "b2bLight", "b2bDark", "promoLight", "promoDark"];
        default: undefined;
    };
    disabled: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    onFocus: {
        type: import('vue').PropType<(event: FocusEvent) => void>;
        default: undefined;
    };
    onBlur: {
        type: import('vue').PropType<(event: FocusEvent) => void>;
        default: undefined;
    };
    onKeydown: {
        type: import('vue').PropType<NTree.TEventHandler>;
        default: undefined;
    };
    onContextmenu: {
        type: import('vue').PropType<NTree.TEventHandler>;
        default: undefined;
    };
    onClick: {
        type: import('vue').PropType<NTree.TNodeMouseEventHandler>;
        default: undefined;
    };
    onDblclick: {
        type: import('vue').PropType<NTree.TNodeMouseEventHandler>;
        default: undefined;
    };
    onScroll: {
        type: import('vue').PropType<NTree.TEventHandler>;
        default: undefined;
    };
    onExpand: {
        type: import('vue').PropType<(expandedKeys: NTree.TKey[], info: {
            node: NTree.IEventDataNode;
            expanded: boolean;
            nativeEvent: MouseEvent;
        }) => void>;
        default: undefined;
    };
    onCheck: {
        type: import('vue').PropType<(checked: {
            checked: NTree.TKey[];
            halfChecked: NTree.TKey[];
        } | NTree.TKey[], info: NTree.ICheckInfo) => void>;
        default: undefined;
    };
    onSelect: {
        type: import('vue').PropType<(selectedKeys: NTree.TKey[], info: {
            event: "select";
            selected: boolean;
            node: NTree.IEventDataNode;
            selectedNodes: NTree.IDataNode[];
            nativeEvent: MouseEvent;
        }) => void>;
        default: undefined;
    };
    onLoad: {
        type: import('vue').PropType<(loadedKeys: NTree.TKey[], info: {
            event: "load";
            node: NTree.IEventDataNode;
        }) => void>;
        default: undefined;
    };
    onMouseenter: {
        type: import('vue').PropType<(info: NTree.TNodeMouseEventParams) => void>;
        default: undefined;
    };
    onMouseleave: {
        type: import('vue').PropType<(info: NTree.TNodeMouseEventParams) => void>;
        default: undefined;
    };
    onRightClick: {
        type: import('vue').PropType<(info: NTree.TNodeMouseEventParams) => void>;
        default: undefined;
    };
    onDragstart: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams) => void>;
        default: undefined;
    };
    onDragenter: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams & {
            expandedKeys: NTree.TKey[];
        }) => void>;
        default: undefined;
    };
    onDragover: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams) => void>;
        default: undefined;
    };
    onDragleave: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams) => void>;
        default: undefined;
    };
    onDragend: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams) => void>;
        default: undefined;
    };
    onDrop: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams & {
            dragNode: NTree.IEventDataNode | null;
            dragNodesKeys: NTree.TKey[];
            dropPosition: number;
            dropToGap: boolean;
        }) => void>;
        default: undefined;
    };
    onActiveChange: {
        type: import('vue').PropType<(key: NTree.TKey | null) => void>;
        default: undefined;
    };
    treeData: {
        type: import('vue').PropType<NTree.IDataNode[]>;
        default: undefined;
    };
    selectable: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    multiple: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    checkable: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    draggable: {
        type: import('vue').PropType<NTree.TDraggableConfig | boolean>;
        default: boolean;
    };
    checkedKeys: {
        type: import('vue').PropType<NTree.TKey[] | {
            checked: NTree.TKey[];
            halfChecked: NTree.TKey[];
        }>;
        default: undefined;
    };
    expandedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: undefined;
    };
    selectedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: undefined;
    };
    autoExpandParent: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    defaultExpandedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: () => never[];
    };
    defaultExpandParent: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    defaultExpandAll: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    defaultSelectedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: undefined;
    };
    expandAction: {
        type: import('vue').PropType<NTree.TExpandAction>;
        default: undefined;
    };
    checkStrictly: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    allowDrop: {
        type: import('vue').PropType<NTree.TAllowDrop>;
        default: () => true;
    };
    blockNode: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    fieldNames: {
        type: import('vue').PropType<NTree.IFieldNames>;
        default: undefined;
    };
    showLine: {
        type: import('vue').PropType<boolean | {
            showLeafIcon: boolean | import('@central-design-system/icons').TCdsIconsName;
        }>;
        default: undefined;
    };
    showIcon: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    filterTreeNode: {
        type: import('vue').PropType<(treeNode: NTree.IEventDataNode) => boolean>;
        default: undefined;
    };
    loadData: {
        type: import('vue').PropType<(treeNode: NTree.IEventDataNode) => Promise<any>>;
        default: undefined;
    };
    loadedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: () => never[];
    };
    icon: {
        type: import('vue').PropType<(nodeProps: NTree.ITreeNodeAttribute) => any>;
        default: undefined;
    };
    switcherIcon: {
        type: import('vue').PropType<(nodeProps: SwitcherIconProps) => any>;
        default: undefined;
    };
    openAnimation: {
        type: FunctionConstructor;
        default: undefined;
    };
    virtual: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    height: {
        type: import('vue').PropType<number>;
        default: undefined;
    };
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    /**
     * Событие выбора узла (v-model)
     */
    'update:selectedKeys': (selectedKeys: NTree.TKey[]) => true;
    /**
     * Событие выбора узла по чекбоксу (v-model)
     */
    'update:checkedKeys': (checkedKeys: NTree.TKey[] | {
        checked: NTree.TKey[];
        halfChecked: NTree.TKey[];
    }) => true;
    /**
     * Событие раскрытия узла (v-model)
     */
    'update:expandedKeys': (expandedKeys: NTree.TKey[]) => true;
    /**
     * Событие клика по узлу
     * @type { event: MouseEvent, node: NTree.IEventDataNode }
     */
    click: (event: MouseEvent, node: NTree.IEventDataNode) => true;
    /**
     * Событие выбора узла
     * @type { checked: { checked: NTree.TKey[]; halfChecked: NTree.TKey[] } | NTree.TKey[], info: NTree.ICheckInfo }
     */
    check: (checked: {
        checked: NTree.TKey[];
        halfChecked: NTree.TKey[];
    } | NTree.TKey[], info: NTree.ICheckInfo) => true;
    /**
     * Событие начала перетаскивания узла
     * @type { info: NTree.TNodeDragEventParams }
     */
    dragstart: (info: NTree.TNodeDragEventParams) => true;
    /**
     * Событие окончания перетаскивания узла
     * @type { info: NTree.TNodeDragEventParams }
     */
    dragend: (info: NTree.TNodeDragEventParams) => true;
    /**
     * Событие входа узла в зону перетаскивания
     */
    dragenter: (info: NTree.TNodeDragEventParams & {
        expandedKeys: NTree.TKey[];
    }) => true;
    /**
     * Событие выхода узла из зоны перетаскивания
     * @type { info: NTree.TNodeDragEventParams }
     */
    dragleave: (info: NTree.TNodeDragEventParams) => true;
    /**
     * Событие перемещения узла в зоне перетаскивания
     * @type { info: NTree.TNodeDragEventParams }
     */
    dragover: (info: NTree.TNodeDragEventParams) => true;
    /**
     * Событие перемещения узла
     */
    drop: (info: NTree.TNodeDragEventParams & {
        dragNode: NTree.IEventDataNode;
        dragNodesKeys: NTree.TKey[];
        dragPosition: number;
        dropToGap: boolean;
    }) => true;
    /**
     * Событие раскрытия узла
     * @type { expandedKeys: NTree.TKey[], info: { node: NTree.TEventHandler; expanded: boolean; nativeEvent: MouseEvent } }
     */
    expand: (expandedKeys: NTree.TKey[], info: {
        node: NTree.IEventDataNode;
        expanded: boolean;
        nativeEvent: MouseEvent;
    }) => true;
    /**
     * Событие выбора узла
     * @type { selectedKeys: NTree.TKey, info: { event: 'select'; selected: boolean; node: NTree.IEventDataNode; selectedNodes: NTree.IDataNode[]; nativeEvent: MouseEvent; } }
     */
    select: (selectedKeys: NTree.TKey[], info: {
        event: "select";
        selected: boolean;
        node: NTree.IEventDataNode;
        selectedNodes: NTree.IDataNode[];
        nativeEvent: MouseEvent;
    }) => true;
    /**
     * Событие загрузки узла
     * @type { treeNode: NTree.IEventDataNode }
     */
    load: (treeNode: NTree.IEventDataNode) => true;
    /**
     * Событие правого клика по узлу
     * @type { info: { event: MouseEvent; node: NTree.IEventDataNode } }
     */
    rightClick: (info: {
        event: MouseEvent;
        node: NTree.IEventDataNode;
    }) => true;
    /**
     * Событие двойного клика по узлу
     * @type { event: MouseEvent; node: NTree.IEventDataNode }
     */
    dblclick: (event: MouseEvent, node: NTree.IEventDataNode) => true;
    /**
     * Событие двойного клика по узлу
     * @type { event: MouseEvent; node: NTree.IEventDataNode }
     */
    doubleclick: (event: MouseEvent, node: NTree.IEventDataNode) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    theme: {
        type: import('vue').PropType<import('../../composable').TTheme | string>;
        available: readonly ["cdsLight", "cdsDark", "b2bLight", "b2bDark", "promoLight", "promoDark"];
        default: undefined;
    };
    disabled: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    onFocus: {
        type: import('vue').PropType<(event: FocusEvent) => void>;
        default: undefined;
    };
    onBlur: {
        type: import('vue').PropType<(event: FocusEvent) => void>;
        default: undefined;
    };
    onKeydown: {
        type: import('vue').PropType<NTree.TEventHandler>;
        default: undefined;
    };
    onContextmenu: {
        type: import('vue').PropType<NTree.TEventHandler>;
        default: undefined;
    };
    onClick: {
        type: import('vue').PropType<NTree.TNodeMouseEventHandler>;
        default: undefined;
    };
    onDblclick: {
        type: import('vue').PropType<NTree.TNodeMouseEventHandler>;
        default: undefined;
    };
    onScroll: {
        type: import('vue').PropType<NTree.TEventHandler>;
        default: undefined;
    };
    onExpand: {
        type: import('vue').PropType<(expandedKeys: NTree.TKey[], info: {
            node: NTree.IEventDataNode;
            expanded: boolean;
            nativeEvent: MouseEvent;
        }) => void>;
        default: undefined;
    };
    onCheck: {
        type: import('vue').PropType<(checked: {
            checked: NTree.TKey[];
            halfChecked: NTree.TKey[];
        } | NTree.TKey[], info: NTree.ICheckInfo) => void>;
        default: undefined;
    };
    onSelect: {
        type: import('vue').PropType<(selectedKeys: NTree.TKey[], info: {
            event: "select";
            selected: boolean;
            node: NTree.IEventDataNode;
            selectedNodes: NTree.IDataNode[];
            nativeEvent: MouseEvent;
        }) => void>;
        default: undefined;
    };
    onLoad: {
        type: import('vue').PropType<(loadedKeys: NTree.TKey[], info: {
            event: "load";
            node: NTree.IEventDataNode;
        }) => void>;
        default: undefined;
    };
    onMouseenter: {
        type: import('vue').PropType<(info: NTree.TNodeMouseEventParams) => void>;
        default: undefined;
    };
    onMouseleave: {
        type: import('vue').PropType<(info: NTree.TNodeMouseEventParams) => void>;
        default: undefined;
    };
    onRightClick: {
        type: import('vue').PropType<(info: NTree.TNodeMouseEventParams) => void>;
        default: undefined;
    };
    onDragstart: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams) => void>;
        default: undefined;
    };
    onDragenter: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams & {
            expandedKeys: NTree.TKey[];
        }) => void>;
        default: undefined;
    };
    onDragover: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams) => void>;
        default: undefined;
    };
    onDragleave: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams) => void>;
        default: undefined;
    };
    onDragend: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams) => void>;
        default: undefined;
    };
    onDrop: {
        type: import('vue').PropType<(info: NTree.TNodeDragEventParams & {
            dragNode: NTree.IEventDataNode | null;
            dragNodesKeys: NTree.TKey[];
            dropPosition: number;
            dropToGap: boolean;
        }) => void>;
        default: undefined;
    };
    onActiveChange: {
        type: import('vue').PropType<(key: NTree.TKey | null) => void>;
        default: undefined;
    };
    treeData: {
        type: import('vue').PropType<NTree.IDataNode[]>;
        default: undefined;
    };
    selectable: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    multiple: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    checkable: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    draggable: {
        type: import('vue').PropType<NTree.TDraggableConfig | boolean>;
        default: boolean;
    };
    checkedKeys: {
        type: import('vue').PropType<NTree.TKey[] | {
            checked: NTree.TKey[];
            halfChecked: NTree.TKey[];
        }>;
        default: undefined;
    };
    expandedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: undefined;
    };
    selectedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: undefined;
    };
    autoExpandParent: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    defaultExpandedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: () => never[];
    };
    defaultExpandParent: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    defaultExpandAll: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    defaultSelectedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: undefined;
    };
    expandAction: {
        type: import('vue').PropType<NTree.TExpandAction>;
        default: undefined;
    };
    checkStrictly: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    allowDrop: {
        type: import('vue').PropType<NTree.TAllowDrop>;
        default: () => true;
    };
    blockNode: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    fieldNames: {
        type: import('vue').PropType<NTree.IFieldNames>;
        default: undefined;
    };
    showLine: {
        type: import('vue').PropType<boolean | {
            showLeafIcon: boolean | import('@central-design-system/icons').TCdsIconsName;
        }>;
        default: undefined;
    };
    showIcon: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    filterTreeNode: {
        type: import('vue').PropType<(treeNode: NTree.IEventDataNode) => boolean>;
        default: undefined;
    };
    loadData: {
        type: import('vue').PropType<(treeNode: NTree.IEventDataNode) => Promise<any>>;
        default: undefined;
    };
    loadedKeys: {
        type: import('vue').PropType<NTree.TKey[]>;
        default: () => never[];
    };
    icon: {
        type: import('vue').PropType<(nodeProps: NTree.ITreeNodeAttribute) => any>;
        default: undefined;
    };
    switcherIcon: {
        type: import('vue').PropType<(nodeProps: SwitcherIconProps) => any>;
        default: undefined;
    };
    openAnimation: {
        type: FunctionConstructor;
        default: undefined;
    };
    virtual: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    height: {
        type: import('vue').PropType<number>;
        default: undefined;
    };
}>> & Readonly<{
    onClick?: ((event: MouseEvent, node: NTree.IEventDataNode) => any) | undefined;
    onCheck?: ((checked: NTree.TKey[] | {
        checked: NTree.TKey[];
        halfChecked: NTree.TKey[];
    }, info: NTree.ICheckInfo) => any) | undefined;
    onExpand?: ((expandedKeys: NTree.TKey[], info: {
        node: NTree.IEventDataNode;
        expanded: boolean;
        nativeEvent: MouseEvent;
    }) => any) | undefined;
    onDblclick?: ((event: MouseEvent, node: NTree.IEventDataNode) => any) | undefined;
    onDragend?: ((info: NTree.TNodeDragEventParams) => any) | undefined;
    onDragenter?: ((info: NTree.TNodeDragEventParams & {
        expandedKeys: NTree.TKey[];
    }) => any) | undefined;
    onDragleave?: ((info: NTree.TNodeDragEventParams) => any) | undefined;
    onDragover?: ((info: NTree.TNodeDragEventParams) => any) | undefined;
    onDragstart?: ((info: NTree.TNodeDragEventParams) => any) | undefined;
    onDrop?: ((info: NTree.TNodeDragEventParams & {
        dragNode: NTree.IEventDataNode;
        dragNodesKeys: NTree.TKey[];
        dragPosition: number;
        dropToGap: boolean;
    }) => any) | undefined;
    onLoad?: ((treeNode: NTree.IEventDataNode) => any) | undefined;
    onSelect?: ((selectedKeys: NTree.TKey[], info: {
        event: "select";
        selected: boolean;
        node: NTree.IEventDataNode;
        selectedNodes: NTree.IDataNode[];
        nativeEvent: MouseEvent;
    }) => any) | undefined;
    onDoubleclick?: ((event: MouseEvent, node: NTree.IEventDataNode) => any) | undefined;
    "onUpdate:selectedKeys"?: ((selectedKeys: NTree.TKey[]) => any) | undefined;
    "onUpdate:checkedKeys"?: ((checkedKeys: NTree.TKey[] | {
        checked: NTree.TKey[];
        halfChecked: NTree.TKey[];
    }) => any) | undefined;
    "onUpdate:expandedKeys"?: ((expandedKeys: NTree.TKey[]) => any) | undefined;
    onRightClick?: ((info: {
        event: MouseEvent;
        node: NTree.IEventDataNode;
    }) => any) | undefined;
}>, {
    draggable: boolean | NTree.TDraggableConfig;
    icon: (nodeProps: NTree.ITreeNodeAttribute) => any;
    disabled: boolean;
    multiple: boolean;
    onClick: NTree.TNodeMouseEventHandler;
    onContextmenu: NTree.TEventHandler;
    onDblclick: NTree.TNodeMouseEventHandler;
    onKeydown: NTree.TEventHandler;
    onSelect: (selectedKeys: NTree.TKey[], info: {
        event: "select";
        selected: boolean;
        node: NTree.IEventDataNode;
        selectedNodes: NTree.IDataNode[];
        nativeEvent: MouseEvent;
    }) => void;
    onFocus: (event: FocusEvent) => void;
    onBlur: (event: FocusEvent) => void;
    onDragend: (info: NTree.TNodeDragEventParams) => void;
    onDragenter: (info: NTree.TNodeDragEventParams & {
        expandedKeys: NTree.TKey[];
    }) => void;
    onDragleave: (info: NTree.TNodeDragEventParams) => void;
    onDragover: (info: NTree.TNodeDragEventParams) => void;
    onDragstart: (info: NTree.TNodeDragEventParams) => void;
    onDrop: (info: NTree.TNodeDragEventParams & {
        dragNode: NTree.IEventDataNode | null;
        dragNodesKeys: NTree.TKey[];
        dropPosition: number;
        dropToGap: boolean;
    }) => void;
    onLoad: (loadedKeys: NTree.TKey[], info: {
        event: "load";
        node: NTree.IEventDataNode;
    }) => void;
    onMouseenter: (info: NTree.TNodeMouseEventParams) => void;
    onMouseleave: (info: NTree.TNodeMouseEventParams) => void;
    onScroll: NTree.TEventHandler;
    height: number;
    theme: string;
    onExpand: (expandedKeys: NTree.TKey[], info: {
        node: NTree.IEventDataNode;
        expanded: boolean;
        nativeEvent: MouseEvent;
    }) => void;
    checkable: boolean;
    selectable: boolean;
    switcherIcon: (nodeProps: SwitcherIconProps) => any;
    treeData: NTree.IDataNode[];
    checkedKeys: NTree.TKey[] | {
        checked: NTree.TKey[];
        halfChecked: NTree.TKey[];
    };
    expandedKeys: NTree.TKey[];
    selectedKeys: NTree.TKey[];
    autoExpandParent: boolean;
    defaultExpandedKeys: NTree.TKey[];
    defaultExpandParent: boolean;
    defaultExpandAll: boolean;
    defaultSelectedKeys: NTree.TKey[];
    expandAction: NTree.TExpandAction;
    checkStrictly: boolean;
    allowDrop: NTree.TAllowDrop<NTree.IDataNode>;
    blockNode: boolean;
    fieldNames: NTree.IFieldNames;
    showLine: boolean | {
        showLeafIcon: boolean | import('@central-design-system/icons').TCdsIconsName;
    };
    showIcon: boolean;
    filterTreeNode: (treeNode: NTree.IEventDataNode) => boolean;
    loadData: (treeNode: NTree.IEventDataNode) => Promise<any>;
    loadedKeys: NTree.TKey[];
    openAnimation: Function;
    virtual: boolean;
    onCheck: (checked: {
        checked: NTree.TKey[];
        halfChecked: NTree.TKey[];
    } | NTree.TKey[], info: NTree.ICheckInfo) => void;
    onActiveChange: (key: NTree.TKey | null) => void;
    onRightClick: (info: NTree.TNodeMouseEventParams) => void;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
