import { type CSSProperties, type PropType, type VNodeChild } from 'vue';
import type { FlatTreeLineState } from './flatten-tree-data/flatten-tree-data';
import type { RenderNode, TreeNodeData } from './Tree';
import type { TreeController } from './use-tree';
export interface FlatTreeNodeProps {
    node: TreeNodeData;
    level: number;
    parent: string | null;
    hasChildren: boolean;
    expanded: boolean;
    tree: TreeController;
    expandOnClick?: boolean;
    selectOnClick?: boolean;
    expandOnSpace?: boolean;
    checkOnSpace?: boolean;
    renderNode?: RenderNode;
    style?: CSSProperties;
    tabIndex?: number;
    linesPath?: FlatTreeLineState[];
}
export declare const FlatTreeNode: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    node: {
        type: PropType<TreeNodeData>;
        required: true;
    };
    level: {
        type: NumberConstructor;
        required: true;
    };
    parent: {
        type: PropType<string | null>;
        default: null;
    };
    hasChildren: {
        type: BooleanConstructor;
        required: true;
    };
    expanded: {
        type: BooleanConstructor;
        required: true;
    };
    tree: {
        type: PropType<TreeController>;
        required: true;
    };
    expandOnClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    selectOnClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    expandOnSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    checkOnSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    renderNode: {
        type: PropType<RenderNode>;
        default: undefined;
    };
    style: {
        type: PropType<CSSProperties>;
        default: undefined;
    };
    tabIndex: {
        type: NumberConstructor;
        default: number;
    };
    linesPath: {
        type: PropType<FlatTreeLineState[]>;
        default: undefined;
    };
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    node: {
        type: PropType<TreeNodeData>;
        required: true;
    };
    level: {
        type: NumberConstructor;
        required: true;
    };
    parent: {
        type: PropType<string | null>;
        default: null;
    };
    hasChildren: {
        type: BooleanConstructor;
        required: true;
    };
    expanded: {
        type: BooleanConstructor;
        required: true;
    };
    tree: {
        type: PropType<TreeController>;
        required: true;
    };
    expandOnClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    selectOnClick: {
        type: BooleanConstructor;
        default: boolean;
    };
    expandOnSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    checkOnSpace: {
        type: BooleanConstructor;
        default: boolean;
    };
    renderNode: {
        type: PropType<RenderNode>;
        default: undefined;
    };
    style: {
        type: PropType<CSSProperties>;
        default: undefined;
    };
    tabIndex: {
        type: NumberConstructor;
        default: number;
    };
    linesPath: {
        type: PropType<FlatTreeLineState[]>;
        default: undefined;
    };
}>> & Readonly<{}>, {
    style: CSSProperties;
    parent: string | null;
    tabIndex: number;
    expandOnClick: boolean;
    renderNode: RenderNode;
    selectOnClick: boolean;
    expandOnSpace: boolean;
    checkOnSpace: boolean;
    linesPath: FlatTreeLineState[];
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
