import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSIndexPath } from "../Foundation/NSIndexPath.js";
import type { _NSMutableArray } from "../Foundation/NSMutableArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
export declare class _NSTreeNode extends _NSObject {
    static alloc(): _NSTreeNode;
    static new(): _NSTreeNode;
    init(): _NSTreeNode;
    static treeNodeWithRepresentedObject$(modelObject: NobjcObject | null): _NSTreeNode;
    initWithRepresentedObject$(modelObject: NobjcObject | null): _NSTreeNode;
    /** traversal begins with receiver */
    descendantNodeAtIndexPath$(indexPath: _NSIndexPath): _NSTreeNode | null;
    /** sorts the entire subtree */
    sortWithSortDescriptors$recursively$(sortDescriptors: _NSArray, recursively: boolean): void;
    representedObject(): NobjcObject | null;
    /** represents the receiver's location in the entire tree */
    indexPath(): _NSIndexPath;
    /** determined by (count of child nodes == 0) */
    leaf(): boolean;
    /** traversal */
    childNodes(): _NSArray | null;
    /**
     * returns a mutable proxy - parentNode of inserted/removed child nodes is automatically updated
     */
    mutableChildNodes(): _NSMutableArray;
    parentNode(): _NSTreeNode | null;
}
