import { PropType } from 'vue';
import { JSONDataType, NodeDataType } from '../interface';
export declare const treeNodePropsPass: {
    data: {
        type: PropType<JSONDataType>;
        default: null;
    };
    rootPath: {
        type: StringConstructor;
        default: string;
    };
    indent: {
        type: NumberConstructor;
        default: number;
    };
    showLength: {
        type: BooleanConstructor;
        default: boolean;
    };
    showDoubleQuotes: {
        type: BooleanConstructor;
        default: boolean;
    };
    renderNodeKey: PropType<(opt: {
        node: NodeDataType;
        defaultKey: string;
    }) => unknown>;
    renderNodeValue: PropType<(opt: {
        node: NodeDataType;
        defaultValue: string;
    }) => unknown>;
    renderNodeActions: {
        type: PropType<boolean | ((opt: {
            node: NodeDataType;
            defaultActions: {
                copy: () => void;
            };
        }) => unknown)>;
        default: undefined;
    };
    selectableType: PropType<"" | "multiple" | "single">;
    showSelectController: {
        type: BooleanConstructor;
        default: boolean;
    };
    showLine: {
        type: BooleanConstructor;
        default: boolean;
    };
    showLineNumber: {
        type: BooleanConstructor;
        default: boolean;
    };
    selectOnClickNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    nodeSelectable: {
        type: PropType<(node: NodeDataType) => boolean>;
        default: () => boolean;
    };
    highlightSelectedNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    showIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    theme: {
        type: PropType<"dark" | "light">;
        default: string;
    };
    showKeyValueSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    editable: {
        type: BooleanConstructor;
        default: boolean;
    };
    editableTrigger: {
        type: PropType<"click" | "dblclick">;
        default: string;
    };
    onNodeClick: {
        type: PropType<(node: NodeDataType) => void>;
    };
    onNodeMouseover: {
        type: PropType<(node: NodeDataType) => void>;
    };
    onBracketsClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    onIconClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    onValueChange: {
        type: PropType<(value: boolean, path: string) => void>;
    };
};
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    readonly node: {
        readonly type: PropType<NodeDataType>;
        readonly required: true;
    };
    readonly collapsed: BooleanConstructor;
    readonly checked: BooleanConstructor;
    readonly style: {
        readonly type: PropType<import('vue').CSSProperties>;
        readonly default: undefined;
    };
    readonly onSelectedChange: {
        readonly type: PropType<(node: NodeDataType) => void>;
        readonly default: undefined;
    };
    readonly data: {
        type: PropType<JSONDataType>;
        default: null;
    };
    readonly rootPath: {
        type: StringConstructor;
        default: string;
    };
    readonly indent: {
        type: NumberConstructor;
        default: number;
    };
    readonly showLength: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showDoubleQuotes: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly renderNodeKey: PropType<(opt: {
        node: NodeDataType;
        defaultKey: string;
    }) => unknown>;
    readonly renderNodeValue: PropType<(opt: {
        node: NodeDataType;
        defaultValue: string;
    }) => unknown>;
    readonly renderNodeActions: {
        type: PropType<boolean | ((opt: {
            node: NodeDataType;
            defaultActions: {
                copy: () => void;
            };
        }) => unknown)>;
        default: undefined;
    };
    readonly selectableType: PropType<"" | "multiple" | "single">;
    readonly showSelectController: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showLine: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showLineNumber: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly selectOnClickNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly nodeSelectable: {
        type: PropType<(node: NodeDataType) => boolean>;
        default: () => boolean;
    };
    readonly highlightSelectedNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly theme: {
        type: PropType<"dark" | "light">;
        default: string;
    };
    readonly showKeyValueSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly editable: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly editableTrigger: {
        type: PropType<"click" | "dblclick">;
        default: string;
    };
    readonly onNodeClick: {
        type: PropType<(node: NodeDataType) => void>;
    };
    readonly onNodeMouseover: {
        type: PropType<(node: NodeDataType) => void>;
    };
    readonly onBracketsClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    readonly onIconClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    readonly onValueChange: {
        type: PropType<(value: boolean, path: string) => void>;
    };
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("nodeClick" | "nodeMouseover" | "bracketsClick" | "iconClick" | "selectedChange" | "valueChange")[], "nodeClick" | "nodeMouseover" | "bracketsClick" | "iconClick" | "selectedChange" | "valueChange", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    readonly node: {
        readonly type: PropType<NodeDataType>;
        readonly required: true;
    };
    readonly collapsed: BooleanConstructor;
    readonly checked: BooleanConstructor;
    readonly style: {
        readonly type: PropType<import('vue').CSSProperties>;
        readonly default: undefined;
    };
    readonly onSelectedChange: {
        readonly type: PropType<(node: NodeDataType) => void>;
        readonly default: undefined;
    };
    readonly data: {
        type: PropType<JSONDataType>;
        default: null;
    };
    readonly rootPath: {
        type: StringConstructor;
        default: string;
    };
    readonly indent: {
        type: NumberConstructor;
        default: number;
    };
    readonly showLength: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showDoubleQuotes: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly renderNodeKey: PropType<(opt: {
        node: NodeDataType;
        defaultKey: string;
    }) => unknown>;
    readonly renderNodeValue: PropType<(opt: {
        node: NodeDataType;
        defaultValue: string;
    }) => unknown>;
    readonly renderNodeActions: {
        type: PropType<boolean | ((opt: {
            node: NodeDataType;
            defaultActions: {
                copy: () => void;
            };
        }) => unknown)>;
        default: undefined;
    };
    readonly selectableType: PropType<"" | "multiple" | "single">;
    readonly showSelectController: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showLine: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showLineNumber: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly selectOnClickNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly nodeSelectable: {
        type: PropType<(node: NodeDataType) => boolean>;
        default: () => boolean;
    };
    readonly highlightSelectedNode: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly showIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly theme: {
        type: PropType<"dark" | "light">;
        default: string;
    };
    readonly showKeyValueSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly editable: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly editableTrigger: {
        type: PropType<"click" | "dblclick">;
        default: string;
    };
    readonly onNodeClick: {
        type: PropType<(node: NodeDataType) => void>;
    };
    readonly onNodeMouseover: {
        type: PropType<(node: NodeDataType) => void>;
    };
    readonly onBracketsClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    readonly onIconClick: {
        type: PropType<(collapsed: boolean, node: NodeDataType) => void>;
    };
    readonly onValueChange: {
        type: PropType<(value: boolean, path: string) => void>;
    };
}>> & Readonly<{
    onSelectedChange?: ((...args: any[]) => any) | undefined;
    onNodeClick?: ((...args: any[]) => any) | undefined;
    onNodeMouseover?: ((...args: any[]) => any) | undefined;
    onBracketsClick?: ((...args: any[]) => any) | undefined;
    onIconClick?: ((...args: any[]) => any) | undefined;
    onValueChange?: ((...args: any[]) => any) | undefined;
}>, {
    readonly data: JSONDataType;
    readonly style: import('vue').CSSProperties;
    readonly theme: "dark" | "light";
    readonly collapsed: boolean;
    readonly showIcon: boolean;
    readonly checked: boolean;
    readonly indent: number;
    readonly onSelectedChange: (node: NodeDataType) => void;
    readonly rootPath: string;
    readonly showLength: boolean;
    readonly showDoubleQuotes: boolean;
    readonly renderNodeActions: boolean | ((opt: {
        node: NodeDataType;
        defaultActions: {
            copy: () => void;
        };
    }) => unknown);
    readonly showSelectController: boolean;
    readonly showLine: boolean;
    readonly showLineNumber: boolean;
    readonly selectOnClickNode: boolean;
    readonly nodeSelectable: (node: NodeDataType) => boolean;
    readonly highlightSelectedNode: boolean;
    readonly showKeyValueSpace: boolean;
    readonly editable: boolean;
    readonly editableTrigger: "click" | "dblclick";
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
//# sourceMappingURL=TreeNode.d.ts.map