import { LogonData } from "../adtConnection/adtConnection";
import { ResultObjectStructure, ResultObjectCheck, ResultObjectLock, ResultObjectUnlock, ResultObjectActivate, ArtifactsCheckRun, ResultObjectElementInfo } from "./abapObjectsTypes";
import { Version } from "../shared/commonTypes";
export * from "./abapObjectsTypes";
export declare class AdtAbapObject {
    private ObjectStructureApp;
    private connectionController;
    private AdtRepository;
    private objectCheckRunApp;
    private objectLockApp;
    private objectActivateApp;
    private objectElementInfo;
    /**
     * CONSTRUCTOR
     */
    constructor(logonData: LogonData);
    /**
     * Lee la estructura de un objeto
     * @param objectUri URL del objeto
     * @param version version del código
     * @returns Estructura de datos
     */
    readObjectStructure(objectUri: string, version?: Version): Promise<ResultObjectStructure>;
    /**
     * Valida la sintaxis de un objeto
     * @param objectUri URL del objeto
     * @param artifacts Objetos/Contenido a validar su sintaxis
     * @returns Resultado de la validación
     */
    checkRun(objectUri: string, artifacts?: ArtifactsCheckRun): Promise<ResultObjectCheck>;
    /**
     * Bloqueo del objeto pasado por la URL
     * @param objectUri URL del objeto
     * @returns Resultado del bloqueo
     */
    lock(objectUri: string): Promise<ResultObjectLock>;
    /**
     * Desbloqueo del objeto
     * @param objectUri Url de objeto
     * @param lockHandle Bloqueo
     * @returns Nada si va todo bien
     */
    unlock(objectUri: string, lockHandle: string): Promise<ResultObjectUnlock>;
    /**
     * Graba el contenido de un include (codigo fuente principal, macros, etc..) la clase.
     * @param objectUri URL del objeto
     * @param objectName Nombre de la clase
     * @returns Resultado del proceso de la activación. Si va todo bien no devuelve nada
     */
    activate(objectUri: string, objectName: string): Promise<ResultObjectActivate>;
    /**
     * Información de una elemento en una línea y posición
     * @param objectUri url para obtener la información del elemento
     * @param line Línea del codigo fuente donde esta el objeto
     * @param pos Posición de la línea donde se obtendrá la info del elemento.
     * @param content Cpntenido del codigo
     * @returns Resultado del proceso
     */
    elementInfo(objectUri: string, line: number, pos: number, content: string): Promise<ResultObjectElementInfo>;
}
//# sourceMappingURL=adtAbapObject.d.ts.map