import { ServiceBindingInfo } from "navidev-adt-api";
import AdtExceptionController from "navidev-adt-api/dist/shared/exceptions/adtExceptionController";
import MetadataInterface from "./metadataInterface";
import { MetadataContent, MetadataInfoOptions, ResultLoadMetadata, ResultMetadataContent } from "./metadataTypes";
import ODataUtils from "../shared/utilities/general/odataUtils";
import { AdtConnection } from "../adtConnection/adtConnection";
export default class MetadataApp implements MetadataInterface {
    protected adtExceptionController: AdtExceptionController;
    protected connectionController: AdtConnection;
    protected serviceBindingInfo: ServiceBindingInfo;
    protected oDataUtils: ODataUtils;
    protected metadataContent: MetadataContent;
    protected entityTypes: any;
    protected options: MetadataInfoOptions;
    constructor(connectionController: AdtConnection, serviceBindingInfo: ServiceBindingInfo, options?: MetadataInfoOptions);
    getMetadataCommon(): Promise<ResultMetadataContent>;
    getMetadataInfo(): Promise<ResultMetadataContent>;
    /**
     * Construye la URL para obtener el metadata
     * @param serviceName
     * @param version
     * @returns
     */
    protected buildUrlMetadata(url: string): string;
    /**
     * Lectura del metadata de SAP
     */
    protected loadMetadata(url: string): Promise<ResultLoadMetadata>;
    /**
     * Obtiene el namespace del metadata necesario
     * @param bodyParsed
     * @returns
     */
    protected extractNamespace(bodyParsed: any): string;
    /**
     * Extrae el nombre de la entityType para buscar en el nodo de entityType que es donde están los campos
     * @param namespace
     * @param entityName
     * @returns
     */
    protected extractEntityName(namespace: string, entityName: string): string;
}
//# sourceMappingURL=metadataApp.d.ts.map