/**
 * herd
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * OpenAPI spec version: 0.220.0-SNAPSHOT
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { EmrCluster } from '../model/emrCluster';
import { EmrClusterCreateRequest } from '../model/emrClusterCreateRequest';
import { EmrHadoopJarStep } from '../model/emrHadoopJarStep';
import { EmrHadoopJarStepAddRequest } from '../model/emrHadoopJarStepAddRequest';
import { EmrHiveStep } from '../model/emrHiveStep';
import { EmrHiveStepAddRequest } from '../model/emrHiveStepAddRequest';
import { EmrPigStep } from '../model/emrPigStep';
import { EmrPigStepAddRequest } from '../model/emrPigStepAddRequest';
import { EmrShellStep } from '../model/emrShellStep';
import { EmrShellStepAddRequest } from '../model/emrShellStepAddRequest';
import { Configuration } from '../configuration';
export declare class EMRService {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    constructor(httpClient: HttpClient, basePath: string, configuration: Configuration);
    /**
     * @param consumes string[] mime-types
     * @return true: consumes contains 'multipart/form-data', false: otherwise
     */
    private canConsumeForm;
    /**
     * addHadoopJarStepToEmrCluster
     * Adds a Hadoop Jar step to the existing cluster &lt;p&gt;Requires EXECUTE permission on namespace&lt;/p&gt;
     * @param emrHadoopJarStepAddRequest the information needed to add Hadoop Jar step to the EMR cluster.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    eMRAddHadoopJarStepToEmrCluster(emrHadoopJarStepAddRequest: EmrHadoopJarStepAddRequest, observe?: 'body', reportProgress?: boolean): Observable<EmrHadoopJarStep>;
    eMRAddHadoopJarStepToEmrCluster(emrHadoopJarStepAddRequest: EmrHadoopJarStepAddRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<EmrHadoopJarStep>>;
    eMRAddHadoopJarStepToEmrCluster(emrHadoopJarStepAddRequest: EmrHadoopJarStepAddRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<EmrHadoopJarStep>>;
    /**
     * addHiveStepToEmrCluster
     * Adds a hive step to the existing cluster &lt;p&gt;Requires EXECUTE permission on namespace&lt;/p&gt;
     * @param emrHiveStepAddRequest the information needed to add hive step to the EMR cluster.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    eMRAddHiveStepToEmrCluster(emrHiveStepAddRequest: EmrHiveStepAddRequest, observe?: 'body', reportProgress?: boolean): Observable<EmrHiveStep>;
    eMRAddHiveStepToEmrCluster(emrHiveStepAddRequest: EmrHiveStepAddRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<EmrHiveStep>>;
    eMRAddHiveStepToEmrCluster(emrHiveStepAddRequest: EmrHiveStepAddRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<EmrHiveStep>>;
    /**
     * addPigStepToEmrCluster
     * Adds a Pig step to the existing cluster &lt;p&gt;Requires EXECUTE permission on namespace&lt;/p&gt;
     * @param emrPigStepAddRequest the information needed to add Pig step to the EMR cluster.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    eMRAddPigStepToEmrCluster(emrPigStepAddRequest: EmrPigStepAddRequest, observe?: 'body', reportProgress?: boolean): Observable<EmrPigStep>;
    eMRAddPigStepToEmrCluster(emrPigStepAddRequest: EmrPigStepAddRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<EmrPigStep>>;
    eMRAddPigStepToEmrCluster(emrPigStepAddRequest: EmrPigStepAddRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<EmrPigStep>>;
    /**
     * addShellStepToEmrCluster
     * Adds a shell step to the existing cluster &lt;p&gt;Requires EXECUTE permission on namespace&lt;/p&gt;
     * @param emrShellStepAddRequest the information needed to add shell step to the EMR cluster.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    eMRAddShellStepToEmrCluster(emrShellStepAddRequest: EmrShellStepAddRequest, observe?: 'body', reportProgress?: boolean): Observable<EmrShellStep>;
    eMRAddShellStepToEmrCluster(emrShellStepAddRequest: EmrShellStepAddRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<EmrShellStep>>;
    eMRAddShellStepToEmrCluster(emrShellStepAddRequest: EmrShellStepAddRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<EmrShellStep>>;
    /**
     * createEmrCluster
     * Creates a new EMR cluster. &lt;p&gt;Requires EXECUTE permission on namespace&lt;/p&gt;
     * @param emrClusterCreateRequest the information needed to create the EMR cluster.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    eMRCreateEmrCluster(emrClusterCreateRequest: EmrClusterCreateRequest, observe?: 'body', reportProgress?: boolean): Observable<EmrCluster>;
    eMRCreateEmrCluster(emrClusterCreateRequest: EmrClusterCreateRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<EmrCluster>>;
    eMRCreateEmrCluster(emrClusterCreateRequest: EmrClusterCreateRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<EmrCluster>>;
    /**
     * getEmrCluster
     * Gets an existing EMR cluster details. &lt;p&gt;Requires READ permission on namespace&lt;/p&gt;
     * @param namespace the namespace
     * @param emrClusterDefinitionName the EMR cluster definition name
     * @param emrClusterName the EMR cluster name
     * @param emrClusterId the cluster id of the cluster to get details
     * @param emrStepId the step id of the step to get details
     * @param verbose parameter for whether to return detailed information
     * @param accountId the account Id
     * @param retrieveInstanceFleets parameter for whether to retrieve instance fleets
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    eMRGetEmrCluster(namespace: string, emrClusterDefinitionName: string, emrClusterName: string, emrClusterId?: string, emrStepId?: string, verbose?: boolean, accountId?: string, retrieveInstanceFleets?: boolean, observe?: 'body', reportProgress?: boolean): Observable<EmrCluster>;
    eMRGetEmrCluster(namespace: string, emrClusterDefinitionName: string, emrClusterName: string, emrClusterId?: string, emrStepId?: string, verbose?: boolean, accountId?: string, retrieveInstanceFleets?: boolean, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<EmrCluster>>;
    eMRGetEmrCluster(namespace: string, emrClusterDefinitionName: string, emrClusterName: string, emrClusterId?: string, emrStepId?: string, verbose?: boolean, accountId?: string, retrieveInstanceFleets?: boolean, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<EmrCluster>>;
    /**
     * terminateEmrCluster
     * Terminates an existing EMR cluster. &lt;p&gt;Requires EXECUTE permission on namespace&lt;/p&gt;
     * @param namespace the namespace
     * @param emrClusterDefinitionName the EMR cluster definition name
     * @param emrClusterName the EMR cluster name
     * @param overrideTerminationProtection parameter for whether to override termination protection
     * @param emrClusterId EMR cluster ID
     * @param accountId account Id
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    eMRTerminateEmrCluster(namespace: string, emrClusterDefinitionName: string, emrClusterName: string, overrideTerminationProtection?: boolean, emrClusterId?: string, accountId?: string, observe?: 'body', reportProgress?: boolean): Observable<EmrCluster>;
    eMRTerminateEmrCluster(namespace: string, emrClusterDefinitionName: string, emrClusterName: string, overrideTerminationProtection?: boolean, emrClusterId?: string, accountId?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<EmrCluster>>;
    eMRTerminateEmrCluster(namespace: string, emrClusterDefinitionName: string, emrClusterName: string, overrideTerminationProtection?: boolean, emrClusterId?: string, accountId?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<EmrCluster>>;
}
