import { ObjectTreeDefinition } from '../../integration/extension.provider';
import { ObjectNode } from '../../models';
import { ObjectTree } from '../../models/object-tree.model';
import { ApplicationService, CurrentContext } from '../application.service';
import { ContentEntityService } from '../content-entity/content-entity.service';
import { ObjectNodeService } from '../object-node/object-node.service';
import { ObjectTypeService } from '../object-type.service';
export declare class ObjectTreeService {
    private objectNodeService;
    private objectTypeService;
    private contentEntityService;
    private appCtx;
    get ready(): Promise<void>;
    constructor(objectNodeService: ObjectNodeService, objectTypeService: ObjectTypeService, contentEntityService: ContentEntityService, appCtx: ApplicationService);
    private createNewApplicationSubTree;
    private updateApplicationSubTree;
    registerApplicationTree(parentNode: ObjectNode, treeNodeName: string, treeNodeTypeId: string, tree: ObjectTreeDefinition, reset: boolean, ctx?: CurrentContext): Promise<ObjectNode>;
    getOwnerTreeNodes(ownerType: string, ownerName: string, ctx: CurrentContext): Promise<ObjectNode[]>;
    buildTreeFromNodes(treeNode: ObjectNode, availableNodes: ObjectNode[], ctx: CurrentContext): Promise<ObjectTree>;
    getOwnerTree(ownerType: string, ownerName: string, ctx: CurrentContext): Promise<ObjectTree>;
    getTree(ownerType: string, ownerName: string, namespaceType: string, namespaceName: string, treeType: string, treeName: string, ctx: CurrentContext): Promise<ObjectTree>;
    getNode(ownerType: string, ownerName: string, namespaceType: string, namespaceName: string, treeType: string, treeName: string, nodeType: string, nodeName: string, ctx: CurrentContext): Promise<ObjectTree>;
    getNamespaceNodes(ownerType: string, ownerName: string, namespaceType: string, namespaceName: string, ctx: CurrentContext): Promise<ObjectNode[]>;
    getNamespaceTree(ownerType: string, ownerName: string, namespaceType: string, namespaceName: string, ctx: CurrentContext): Promise<ObjectTree>;
    getChildrenByImplementedTypeId(tree: ObjectTree): Promise<{
        [objectTypeId: string]: ObjectTree[];
    }>;
    loadChildrenNodes(treeId: string, ctx: CurrentContext): Promise<ObjectNode[]>;
    loadTree(treeId: string, ctx: CurrentContext): Promise<ObjectTree>;
    isInTree(tree: ObjectTree, node: ObjectNode): boolean;
    getChildOfType(tree: ObjectTree, objectTypeId: string): ObjectTree;
}
