import { Session } from "@zowe/imperative";
import { IElementActionRequestOptions, IElementBasicData, IEndevorElement, IEndevorRestResponse, IEndevorStage, IEndevorType, IListActionRequestOptions } from "@broadcom/endevor-for-zowe-cli/lib/api";
import { IEndevorResponse } from "../doc/IEndevorResponse";
/**
 * Git developer build classes call functions in this class when there's need to interact with rest api.
 * By default, the functions in this class throws err and log report into traceReportsDir.
 * For those functions that doesn't do it, specify in the name, for example addElmWithoutThrowingErr
 *
 * @export
 * @class BuildRestActions
 */
export declare class EndevorService {
    private static readonly UNEXPECTED_ENDEVOR_RESPONSE;
    private static traceReportsDir;
    private static traceReportsDirMade;
    private static checkWrongMainframeCredentials;
    private static throwUnexpectedResponseError;
    private static printReportLogs;
    static mkdirSyncRecursive(dirPath: string): void;
    private static getReportFileName;
    static cleanAllReportFiles(): void;
    static addElement(endevorSession: Session, instance: string, elementSpec: IElementBasicData, postFormData: any): Promise<IEndevorResponse>;
    static deleteElement(endevorSession: Session, instance: string, deleteEleDef: IElementBasicData, deleteRequestBody: IElementActionRequestOptions): Promise<IEndevorRestResponse<any>>;
    static listTypeToGetFileExtension(endevorSession: Session, instance: string, typeDef: IElementBasicData): Promise<IEndevorType[]>;
    static getEntryStage(endevorSession: Session, instance: string, environment: string): Promise<number>;
    static getStages(endevorSession: Session, instance: string, environment: string): Promise<IEndevorStage[]>;
    static listElmFromSub(endevorSession: Session, instance: string, listEleDef: IElementBasicData, requestBody: IListActionRequestOptions): Promise<IEndevorElement[]>;
    static deleteFromSub(endevorSession: Session, instance: string, deleteEleDef: IElementBasicData, deleteRequestBody: IElementActionRequestOptions): Promise<IEndevorRestResponse<any>>;
    static retrieveElm(endevorSession: Session, instance: string, retrieveEleDef: IElementBasicData, retrieveRequestBody: IElementActionRequestOptions): Promise<any>;
    static updateElmWithoutThrowingErrOrLoggingReport(endevorSession: Session, instance: string, uploadEleDef: IElementBasicData, putFormData: any): Promise<IEndevorRestResponse<any>>;
    static generateSubWithoutThrowingErrOrLoggingReport(endevorSession: Session, instance: string, generateEleDef: IElementBasicData, generateRequestBody: IElementActionRequestOptions): Promise<IEndevorRestResponse<any>>;
    static getC1MSGS1report(endevorSession: Session, instance: string, resource: string): Promise<string>;
    static printListingWithoutThrowingErr(endevorSession: Session, instance: string, printEleDef: IElementBasicData): Promise<IEndevorRestResponse<any>>;
}
