/// <reference types="jquery" />
import { FilterElement, InitModelOf, ObjectWithType, Session, SomeRequired, Tree, TreeNodeModel } from '../index';
export declare class TreeNode implements TreeNodeModel, ObjectWithType, FilterElement {
    model: TreeNodeModel;
    initModel: SomeRequired<this['model'], 'parent'>;
    objectType: string;
    checked: boolean;
    childNodes: TreeNode[];
    cssClass: string;
    enabled: boolean;
    expanded: boolean;
    expandedLazy: boolean;
    htmlEnabled: boolean;
    iconId: string;
    id: string;
    initialExpanded: boolean;
    lazyExpandingEnabled: boolean;
    leaf: boolean;
    level: number;
    parent: Tree;
    parentNode: TreeNode;
    session: Session;
    text: string;
    tooltipText: string;
    foregroundColor: string;
    backgroundColor: string;
    font: string;
    initialized: boolean;
    rendered: boolean;
    attached: boolean;
    destroyed: boolean;
    filterAccepted: boolean;
    filterDirty: boolean;
    childrenLoaded: boolean;
    childrenChecked: boolean;
    height: number;
    width: number;
    displayBackup: string;
    prevSelectionAnimationDone: boolean;
    $node: JQuery;
    $text: JQuery<HTMLSpanElement>;
    childNodeIndex: number;
    /**
     * This internal variable stores the promise which is used when a loadChildren() operation is in progress.
     */
    protected _loadChildrenPromise: JQuery.Promise<any>;
    constructor();
    init(model: InitModelOf<this>): void;
    destroy(): void;
    /**
     * Override this method to do something when TreeNode gets destroyed. The default impl. does nothing.
     */
    protected _destroy(): void;
    getTree(): Tree;
    protected _init(model: InitModelOf<this>): void;
    protected _jsonModel(): Record<string, any>;
    reset(): void;
    hasChildNodes(): boolean;
    /**
     * @returns true, if this node is an ancestor of the given node
     */
    isAncestorOf(node: TreeNode): boolean;
    /**
     * @returns true, if the node is a descendant of the given node
     */
    isDescendantOf(node: TreeNode): boolean;
    setFilterAccepted(filterAccepted: boolean): void;
    /**
     * This method loads the child nodes of this node and returns a jQuery.Promise to register callbacks
     * when loading is done or has failed. To skip loading the children when they are already loaded, use
     * {@link #ensureLoadChildren} instead.
     *
     * @returns a Promise or null when TreeNode cannot load children (which is the case for all
     *     TreeNodes in the remote case). The default impl. returns an empty resolved promise.
     */
    loadChildren(): JQuery.Promise<any>;
    /**
     * This method calls loadChildren() but does nothing when children are already loaded or when loadChildren()
     * is already in progress.
     */
    ensureLoadChildren(): JQuery.Promise<any>;
    protected _onLoadChildrenDone(): void;
    setText(text: string): void;
    /**
     * This functions renders sets the $node and $text properties.
     *
     * @param $parent the tree DOM
     * @param paddingLeft calculated by tree
     */
    render($parent: JQuery, paddingLeft: number): void;
    protected _renderText(): void;
    /** @internal */
    _renderChecked(): void;
    protected _renderIcon(): void;
    $icon(): JQuery<HTMLElement>;
    protected _renderControl(): void;
    /** @internal */
    _updateControl($control: JQuery): void;
    /** @internal */
    _renderCheckbox(): void;
    /** @internal */
    _renderChildrenChecked(): void;
    /** @internal */
    _decorate(): void;
    /**
     * @returns The object that has the properties used for styles (colors, fonts, etc.)
     *     The default impl. returns "this". Override this function to return another object.
     */
    protected _getStyles(): object;
    /**
     * This function extracts all CSS classes that are set externally by the tree.
     * The classes depend on the tree hierarchy or the selection and thus cannot be determined by the node itself.
     */
    protected _preserveCssClasses($node: JQuery): string;
}
//# sourceMappingURL=TreeNode.d.ts.map