/**
 * herd
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * OpenAPI spec version: 0.219.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 { BusinessObjectDefinitionSubjectMatterExpert } from '../model/businessObjectDefinitionSubjectMatterExpert';
import { BusinessObjectDefinitionSubjectMatterExpertCreateRequest } from '../model/businessObjectDefinitionSubjectMatterExpertCreateRequest';
import { BusinessObjectDefinitionSubjectMatterExpertKeys } from '../model/businessObjectDefinitionSubjectMatterExpertKeys';
import { Configuration } from '../configuration';
export declare class BusinessObjectDefinitionSubjectMatterExpertService {
    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;
    /**
     * createBusinessObjectDefinitionSubjectMatterExpert
     * Creates a new business object definition subject matter expert. &lt;p&gt;Requires WRITE or WRITE_DESCRIPTIVE_CONTENT permission on namespace&lt;/p&gt;
     * @param businessObjectDefinitionSubjectMatterExpertCreateRequest the information needed to create a business object definition subject matter expert
     * @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.
     */
    businessObjectDefinitionSubjectMatterExpertCreateBusinessObjectDefinitionSubjectMatterExpert(businessObjectDefinitionSubjectMatterExpertCreateRequest: BusinessObjectDefinitionSubjectMatterExpertCreateRequest, observe?: 'body', reportProgress?: boolean): Observable<BusinessObjectDefinitionSubjectMatterExpert>;
    businessObjectDefinitionSubjectMatterExpertCreateBusinessObjectDefinitionSubjectMatterExpert(businessObjectDefinitionSubjectMatterExpertCreateRequest: BusinessObjectDefinitionSubjectMatterExpertCreateRequest, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BusinessObjectDefinitionSubjectMatterExpert>>;
    businessObjectDefinitionSubjectMatterExpertCreateBusinessObjectDefinitionSubjectMatterExpert(businessObjectDefinitionSubjectMatterExpertCreateRequest: BusinessObjectDefinitionSubjectMatterExpertCreateRequest, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BusinessObjectDefinitionSubjectMatterExpert>>;
    /**
     * deleteBusinessObjectDefinitionSubjectMatterExpert
     * Deletes an existing business object definition subject matter expert. &lt;p&gt;Requires WRITE or WRITE_DESCRIPTIVE_CONTENT permission on namespace&lt;/p&gt;
     * @param namespace the namespace of the business object definition
     * @param businessObjectDefinitionName the name of the business object definition
     * @param userId the user id of the subject matter expert
     * @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.
     */
    businessObjectDefinitionSubjectMatterExpertDeleteBusinessObjectDefinitionSubjectMatterExpert(namespace: string, businessObjectDefinitionName: string, userId: string, observe?: 'body', reportProgress?: boolean): Observable<BusinessObjectDefinitionSubjectMatterExpert>;
    businessObjectDefinitionSubjectMatterExpertDeleteBusinessObjectDefinitionSubjectMatterExpert(namespace: string, businessObjectDefinitionName: string, userId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BusinessObjectDefinitionSubjectMatterExpert>>;
    businessObjectDefinitionSubjectMatterExpertDeleteBusinessObjectDefinitionSubjectMatterExpert(namespace: string, businessObjectDefinitionName: string, userId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BusinessObjectDefinitionSubjectMatterExpert>>;
    /**
     * deleteBusinessObjectDefinitionSubjectMatterExpertsByBusinessObjectDefinition
     * Delete all business object definition subject matter experts for the specified business object definition. &lt;p&gt;Requires WRITE or WRITE_DESCRIPTIVE_CONTENT permission on namespace&lt;/p&gt;
     * @param namespace the namespace of the business object definition
     * @param businessObjectDefinitionName the name of the business object definition
     * @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.
     */
    businessObjectDefinitionSubjectMatterExpertDeleteBusinessObjectDefinitionSubjectMatterExpertsByBusinessObjectDefinition(namespace: string, businessObjectDefinitionName: string, observe?: 'body', reportProgress?: boolean): Observable<BusinessObjectDefinitionSubjectMatterExpertKeys>;
    businessObjectDefinitionSubjectMatterExpertDeleteBusinessObjectDefinitionSubjectMatterExpertsByBusinessObjectDefinition(namespace: string, businessObjectDefinitionName: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BusinessObjectDefinitionSubjectMatterExpertKeys>>;
    businessObjectDefinitionSubjectMatterExpertDeleteBusinessObjectDefinitionSubjectMatterExpertsByBusinessObjectDefinition(namespace: string, businessObjectDefinitionName: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BusinessObjectDefinitionSubjectMatterExpertKeys>>;
    /**
     * getBusinessObjectDefinitionSubjectMatterExpertsByBusinessObjectDefinition
     * Gets a list of keys for all existing business object definition subject matter experts for the specified business object definition.
     * @param namespace the namespace of the business object definition
     * @param businessObjectDefinitionName the name of the business object definition
     * @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.
     */
    businessObjectDefinitionSubjectMatterExpertGetBusinessObjectDefinitionSubjectMatterExpertsByBusinessObjectDefinition(namespace: string, businessObjectDefinitionName: string, observe?: 'body', reportProgress?: boolean): Observable<BusinessObjectDefinitionSubjectMatterExpertKeys>;
    businessObjectDefinitionSubjectMatterExpertGetBusinessObjectDefinitionSubjectMatterExpertsByBusinessObjectDefinition(namespace: string, businessObjectDefinitionName: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BusinessObjectDefinitionSubjectMatterExpertKeys>>;
    businessObjectDefinitionSubjectMatterExpertGetBusinessObjectDefinitionSubjectMatterExpertsByBusinessObjectDefinition(namespace: string, businessObjectDefinitionName: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BusinessObjectDefinitionSubjectMatterExpertKeys>>;
}
