import { Element } from '../../../../../client/element';
import { TreeNode } from '../../../../../spec/parser';
import { System } from '../../../../../system';
import { Dict } from '../../../../../types/Dict';
export interface Props {
    className?: string;
    style?: Dict<string>;
    path?: number[];
    data: TreeNode;
    parent?: TreeNode | null;
    appendChildren?: Element[];
    invalid?: boolean;
}
export declare const DEFAULT_STYLE: {
    width: string;
    height: string;
    color: string;
    boxSizing: string;
};
export default class DataTree extends Element<HTMLDivElement, Props> {
    private _data;
    private _root;
    private _child;
    private _leaf;
    constructor($props: Props, $system: System);
    private __primitive;
    private __key_value;
    private __array_expression;
    private __prop_expression;
    private __unit;
    private __object_expression;
    private __expression;
    private __object_literal;
    private __array_literal;
    private __and;
    private __or;
    private NODE_TYPE_TO_ELEMENT;
    private _reset;
    private _child_element;
    private _object_literal;
    private _array_literal;
    private _expression;
    private _key_value;
    private _primitive;
    private _unit;
    private _array_expression;
    private _prop_expression;
    private _object_expression;
    private _or;
    private _and;
    private _space;
    private _comma;
    private _separator;
    private _delimiter;
    update(data: TreeNode): void;
    onPropChanged(prop: string, current: any): void;
    focus: (options?: FocusOptions | undefined) => void;
    blur: () => void;
    getSelectionRange: () => {
        start: number;
        end: number;
    };
    setSelectionRange: (start: number, end: number, direction?: 'forward' | 'backward' | 'none' | undefined) => void;
    focusLeaf: (path: number[], options?: FocusOptions | undefined) => void;
    blurLeaf: (path: number[]) => void;
    getChild: (index: number) => DataTree | null;
    getChildAtPath: (path: number[]) => DataTree | null;
    setLeafSelectionRange(path: number[], start: number, end: number, direction?: 'forward' | 'backward' | 'none' | undefined): void;
}
