import { EventEmitter } from '@angular/core';
import * as tree from './treenodeoptions.model';
import { TreeNodeBaseModel } from './treenodebase.model';
/**
 * The base class for tree nodes.
 */
export declare class TreeNodeModel implements TreeNodeBaseModel {
    /**
     * Control appearance
     */
    options: tree.TreeNodeOptions;
    /**
     * structure
     */
    parent: TreeNodeModel;
    /**
     * Subsequent nodes.
     */
    children: TreeNodeModel[];
    /**
     * An identifier.
     */
    name: string;
    /**
     * Field id
     */
    id: number;
    /**
     * behavior
     */
    stateChange: EventEmitter<tree.TreeNodeState>;
    private _state;
    constructor(options?: tree.TreeNodeOptions, nodes?: TreeNodeModel | TreeNodeModel[]);
    get path(): TreeNodeModel[];
    hasDirectAncestor(node: TreeNodeBaseModel): boolean;
    get hasChildren(): boolean;
    add(nodes: TreeNodeModel | TreeNodeModel[]): void;
    remove(node: TreeNodeModel): boolean;
    get state(): tree.TreeNodeState;
    set state(value: tree.TreeNodeState);
    get stateIsExpandend(): boolean;
    get stateIsDisabled(): boolean;
    get stateIsSelected(): boolean;
    get stateIsChecked(): boolean;
}
