import { AdtConnection } from "../adtConnection/adtConnection";
import { ResponsePackageContents, ResponsePackageLists, ResponsePackageContentsFlat } from "./packageAppTypes";
import { AdtRepository } from "../adtRepository/adtRepository";
export type ObjectTypeNodeID = {
    objectType: string;
    objectTypeDesc: string;
    nodeID: string;
    categoryTag: string;
};
export type ObjectTypesNodeIDs = ObjectTypeNodeID[];
export default class PackageApp {
    private connectionController;
    private AdtRepository;
    private adtExceptionController;
    private packageInfoObjectType?;
    private packageInfoType?;
    private levelPackages;
    constructor(connectionController: AdtConnection, AdtRepository: AdtRepository);
    /**
     * Devuelve los paquetes de desarrollo del sistema
     * @returns Result con la lista de valores o Errores
     */
    readAllPackages(): Promise<ResponsePackageLists>;
    /**
     * Lectura del contenido completo de un paquete o clase de desarrollo, eso incluye,
     * los paquetes hijos y sus objetos.
     * @param packageName Nombre del paquete
     * @returns Resultado con los objetos y subpaquetes
     */
    readFullPackagesContent(packageName: string): Promise<ResponsePackageContents>;
    readFullPackagesContentFlat(packageName: string): Promise<ResponsePackageContentsFlat>;
    /**
     * Recupera el contenido de un paquete. Hace recursividad para
     * ir obteniendo sus subpaquetes
     * @param packageName Nombre del paquete
     * @returns Result con el contenido del paquete
     */
    private readPackageContent;
    /**
     * Obtiene la información interna asociada al paquete
     */
    private getInfoPackageObjectType;
    /**
     * Lectura de los objetos asociados a los ID de nodos
     * @param packageName Nombre paquete
     * @param categoriesNodeIDs Array con los ID de nodos
     * @returns Resultado
     */
    private readPackageObjects;
    /**
     * Extrae los subpaquetes del cuerpo de la llamada del paquete principal
     * @param bodyPackage String con los datos del paquete principal
     * @returns Array con los subpaquetes
     */
    private extractSubPackages;
    /**
     * Extrae las categorias y los ID de los nodos para buscarlos.
     * @param bodyParsed | Cuerpo de la llamada
     * @returns Categorias y sus nodos
     */
    private extractCategoriesNodeIDs;
    private extractObjects;
    /**
     * Convierte los subpaquetes a una tabla plana mediante recursividad
     * @param subPackages Array con los subpaquetes
     
     * @param packageNameParent Nombre del paquete padre
     * @returns Array con los paquetes en formato plano
     */
    private convertSubPackages2FlatTable;
}
//# sourceMappingURL=packageApp.d.ts.map