import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { TablePerformerListStudio } from '../model/tablePerformerList';
import { TablePerformerMetricsStudio } from '../model/tablePerformerMetrics';
import { WebPerformerGeopointListStudio } from '../model/webPerformerGeopointList';
import { WebPerformerStudio } from '../model/webPerformer';
import { Configuration } from '../configuration';
import { PerformersServiceInterface, CreatePerformerRequestParams, DeletePerformerRequestParams, DisablePerformersRequestParams, EnablePerformersRequestParams, ReadPerformerRequestParams, ReadPerformersRequestParams, ReadPerformersGeopointsRequestParams, ReadPerformersMetricsRequestParams, UpdatePerformerRequestParams } from './performersServiceInterface';
import * as i0 from "@angular/core";
export declare class PerformersService implements PerformersServiceInterface {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * Create performer
     * Create performer.
     * @param requestParameters
     * @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.
     */
    createPerformer(requestParameters: CreatePerformerRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<WebPerformerStudio>;
    createPerformer(requestParameters: CreatePerformerRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<WebPerformerStudio>>;
    createPerformer(requestParameters: CreatePerformerRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<WebPerformerStudio>>;
    /**
     * Remove performer
     * Removing a performer by key.
     * @param requestParameters
     * @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.
     */
    deletePerformer(requestParameters: DeletePerformerRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<any>;
    deletePerformer(requestParameters: DeletePerformerRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<any>>;
    deletePerformer(requestParameters: DeletePerformerRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     * Disable performers
     * Disable performers in the calculation.
     * @param requestParameters
     * @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.
     */
    disablePerformers(requestParameters: DisablePerformersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<any>;
    disablePerformers(requestParameters: DisablePerformersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<any>>;
    disablePerformers(requestParameters: DisablePerformersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     * Enable performers
     * Enable performers in the calculation.
     * @param requestParameters
     * @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.
     */
    enablePerformers(requestParameters: EnablePerformersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<any>;
    enablePerformers(requestParameters: EnablePerformersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<any>>;
    enablePerformers(requestParameters: EnablePerformersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<any>>;
    /**
     * Read performer
     * Getting performer information by key.
     * @param requestParameters
     * @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.
     */
    readPerformer(requestParameters: ReadPerformerRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<WebPerformerStudio>;
    readPerformer(requestParameters: ReadPerformerRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<WebPerformerStudio>>;
    readPerformer(requestParameters: ReadPerformerRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<WebPerformerStudio>>;
    /**
     * Performers list
     * Getting a performers list.
     * @param requestParameters
     * @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.
     */
    readPerformers(requestParameters: ReadPerformersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<TablePerformerListStudio>;
    readPerformers(requestParameters: ReadPerformersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<TablePerformerListStudio>>;
    readPerformers(requestParameters: ReadPerformersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<TablePerformerListStudio>>;
    /**
     * Performer geopoints
     * Getting a geopoints.
     * @param requestParameters
     * @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.
     */
    readPerformersGeopoints(requestParameters: ReadPerformersGeopointsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<WebPerformerGeopointListStudio>;
    readPerformersGeopoints(requestParameters: ReadPerformersGeopointsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<WebPerformerGeopointListStudio>>;
    readPerformersGeopoints(requestParameters: ReadPerformersGeopointsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<WebPerformerGeopointListStudio>>;
    /**
     * Performer metrics
     * Calculate general metrics for selected performers.
     * @param requestParameters
     * @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.
     */
    readPerformersMetrics(requestParameters: ReadPerformersMetricsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<TablePerformerMetricsStudio>;
    readPerformersMetrics(requestParameters: ReadPerformersMetricsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<TablePerformerMetricsStudio>>;
    readPerformersMetrics(requestParameters: ReadPerformersMetricsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<TablePerformerMetricsStudio>>;
    /**
     * Update performer
     * Updating the performer by key.
     * @param requestParameters
     * @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.
     */
    updatePerformer(requestParameters: UpdatePerformerRequestParams, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<WebPerformerStudio>;
    updatePerformer(requestParameters: UpdatePerformerRequestParams, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpResponse<WebPerformerStudio>>;
    updatePerformer(requestParameters: UpdatePerformerRequestParams, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
        transferCache?: boolean;
    }): Observable<HttpEvent<WebPerformerStudio>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PerformersService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PerformersService>;
}
