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;
    /**
     * @deprecated use {@link tree} instead.
     */
    getTree(): Tree;
    get tree(): Tree;
    protected _init(model: InitModelOf<this>): void;
    protected _resolveTextKeys(properties: string[]): void;
    protected _resolveIconIds(properties: string[]): void;
    protected _jsonModel(): TreeNodeModel;
    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;
    /**
     * 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;
    setText(text: string): void;
    protected _renderText(): void;
    setChecked(checked: boolean): void;
    /** @internal */
    _renderChecked(): void;
    setIconId(iconId: string): void;
    protected _renderIcon(): void;
    $icon(): JQuery;
    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;
    setCssClass(cssClass: string): void;
    /**
     * Adds the given css class to {@link TreeNode#cssClass}.
     *
     * @see styles#addCssClass
     * @param cssClass may contain multiple css classes separated by space.
     */
    addCssClass(cssClass: string): void;
    /**
     * Removes the given css class from {@link TreeNode#cssClass}.
     *
     * @see styles#removeCssClass
     * @param cssClass may contain multiple css classes separated by space.
     */
    removeCssClass(cssClass: string): void;
    /**
     * Toggles the given css class in {@link TreeNode#cssClass}.
     *
     * @see styles#toggleCssClass
     * @param cssClass may contain multiple css classes separated by space.
     */
    toggleCssClass(cssClass: string, condition: boolean): void;
    /**
     * Checks whether the css class is contained in {@link TreeNode#cssClass}.
     *
     * @see styles#hasCssClass
     * @param cssClass may contain multiple css classes separated by space.
     */
    hasCssClass(cssClass: string): boolean;
    setEnabled(enabled: boolean): void;
    setExpanded(expanded: boolean): void;
    setExpandedLazy(expandedLazy: boolean): void;
    setLazyExpandingEnabled(lazyExpandingEnabled: boolean): void;
    setInitialExpanded(initialExpanded: boolean): void;
    setLeaf(leaf: boolean): void;
    setLevel(level: number): void;
    setHtmlEnabled(htmlEnabled: boolean): void;
    setParentNode(parentNode: TreeNode): void;
    setTooltipText(tooltipText: string): void;
    setBackgroundColor(color: string): void;
    setForegroundColor(color: string): void;
    setFont(font: string): void;
}
//# sourceMappingURL=TreeNode.d.ts.map