import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { CommonResult } from '../model/commonResult';
import { TechniqueApplicationSeriesForDisplay } from '../model/techniqueApplicationSeriesForDisplay';
import { TechniqueApplicationSeriesForTechniqueEditor } from '../model/techniqueApplicationSeriesForTechniqueEditor';
import { TechniqueApplicationSeriesRootForEdit } from '../model/techniqueApplicationSeriesRootForEdit';
import { TechniqueApplicationSeriesRootForUpdate } from '../model/techniqueApplicationSeriesRootForUpdate';
import { TechniqueApplicationSeriesStatus } from '../model/techniqueApplicationSeriesStatus';
import { TechniqueApplicationSeriesUsage } from '../model/techniqueApplicationSeriesUsage';
import { TechniqueApplicationSeriesUsageDetailsForEdit } from '../model/techniqueApplicationSeriesUsageDetailsForEdit';
import { TechniqueApplicationSeriesUsageUpdate } from '../model/techniqueApplicationSeriesUsageUpdate';
import { TechniqueDetailed } from '../model/techniqueDetailed';
import { Configuration } from '../configuration';
import { TechniqueSeriesServiceInterface } from './techniqueSeries.serviceInterface';
import * as i0 from "@angular/core";
export declare class TechniqueSeriesService implements TechniqueSeriesServiceInterface {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * Clear a Technique Application Series
     * @param TSID
     * @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.
     */
    techniqueApplicationSeriesClearAll(TSID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesClearAll(TSID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesClearAll(TSID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param TSID
     * @param TechniqueID
     * @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.
     */
    techniqueApplicationSeriesClearTechnique(TSID?: number, TechniqueID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesClearTechnique(TSID?: number, TechniqueID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesClearTechnique(TSID?: number, TechniqueID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * Delete a Technique Application Series
     * @param TechniqueApplicationSeriesUsage
     * @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.
     */
    techniqueApplicationSeriesDelete(TechniqueApplicationSeriesUsage?: TechniqueApplicationSeriesUsage, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesDelete(TechniqueApplicationSeriesUsage?: TechniqueApplicationSeriesUsage, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesDelete(TechniqueApplicationSeriesUsage?: TechniqueApplicationSeriesUsage, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * Select a Technique Application Series
     * @param TSID
     * @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.
     */
    techniqueApplicationSeriesDetailForDisplay(TSID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<TechniqueApplicationSeriesForDisplay>;
    techniqueApplicationSeriesDetailForDisplay(TSID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<TechniqueApplicationSeriesForDisplay>>;
    techniqueApplicationSeriesDetailForDisplay(TSID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<TechniqueApplicationSeriesForDisplay>>;
    /**
     * Select a Technique Application Series
     * @param TSID
     * @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.
     */
    techniqueApplicationSeriesDetailForEdit(TSID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<TechniqueApplicationSeriesRootForEdit>;
    techniqueApplicationSeriesDetailForEdit(TSID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<TechniqueApplicationSeriesRootForEdit>>;
    techniqueApplicationSeriesDetailForEdit(TSID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<TechniqueApplicationSeriesRootForEdit>>;
    /**
     *
     * @param TechniqueTypeID
     * @param TSID
     * @param MuscleGroupID
     * @param ExerciseClassID
     * @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.
     */
    techniqueApplicationSeriesForApplication(TechniqueTypeID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TechniqueApplicationSeriesForTechniqueEditor>>;
    techniqueApplicationSeriesForApplication(TechniqueTypeID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TechniqueApplicationSeriesForTechniqueEditor>>>;
    techniqueApplicationSeriesForApplication(TechniqueTypeID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TechniqueApplicationSeriesForTechniqueEditor>>>;
    /**
     * Select list of Technique Application Series for a Sport.
     * @param SportID
     * @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.
     */
    techniqueApplicationSeriesForSport(SportID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TechniqueApplicationSeriesForTechniqueEditor>>;
    techniqueApplicationSeriesForSport(SportID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TechniqueApplicationSeriesForTechniqueEditor>>>;
    techniqueApplicationSeriesForSport(SportID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TechniqueApplicationSeriesForTechniqueEditor>>>;
    /**
     * Insert a new Technique Application Series
     * @param TechniqueApplicationSeriesRootForUpdate
     * @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.
     */
    techniqueApplicationSeriesRootInsert(TechniqueApplicationSeriesRootForUpdate?: TechniqueApplicationSeriesRootForUpdate, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesRootInsert(TechniqueApplicationSeriesRootForUpdate?: TechniqueApplicationSeriesRootForUpdate, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesRootInsert(TechniqueApplicationSeriesRootForUpdate?: TechniqueApplicationSeriesRootForUpdate, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * Update Technique Application Series
     * @param TechniqueApplicationSeriesRootForUpdate
     * @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.
     */
    techniqueApplicationSeriesRootUpdate(TechniqueApplicationSeriesRootForUpdate?: TechniqueApplicationSeriesRootForUpdate, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesRootUpdate(TechniqueApplicationSeriesRootForUpdate?: TechniqueApplicationSeriesRootForUpdate, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesRootUpdate(TechniqueApplicationSeriesRootForUpdate?: TechniqueApplicationSeriesRootForUpdate, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param TSID
     * @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.
     */
    techniqueApplicationSeriesSelectAllTechniques(TSID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TechniqueDetailed>>;
    techniqueApplicationSeriesSelectAllTechniques(TSID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TechniqueDetailed>>>;
    techniqueApplicationSeriesSelectAllTechniques(TSID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TechniqueDetailed>>>;
    /**
     * Get the list of Technique Application Series status values
     * @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.
     */
    techniqueApplicationSeriesStatus(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TechniqueApplicationSeriesStatus>>;
    techniqueApplicationSeriesStatus(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TechniqueApplicationSeriesStatus>>>;
    techniqueApplicationSeriesStatus(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TechniqueApplicationSeriesStatus>>>;
    /**
     * @param TSUsageID
     * @param UserID
     * @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.
     */
    techniqueApplicationSeriesUsageDelete(TSUsageID?: number, UserID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesUsageDelete(TSUsageID?: number, UserID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesUsageDelete(TSUsageID?: number, UserID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * Insert a usage item.
     * @param TechniqueApplicationSeriesUsageUpdate
     * @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.
     */
    techniqueApplicationSeriesUsageInsert(TechniqueApplicationSeriesUsageUpdate?: TechniqueApplicationSeriesUsageUpdate, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesUsageInsert(TechniqueApplicationSeriesUsageUpdate?: TechniqueApplicationSeriesUsageUpdate, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesUsageInsert(TechniqueApplicationSeriesUsageUpdate?: TechniqueApplicationSeriesUsageUpdate, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * Updatee usage (Bulk Procedure).
     * @param TechniqueApplicationSeriesUsageUpdate
     * @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.
     */
    techniqueApplicationSeriesUsageInsertUpdateBulk(TechniqueApplicationSeriesUsageUpdate?: Array<TechniqueApplicationSeriesUsageUpdate>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesUsageInsertUpdateBulk(TechniqueApplicationSeriesUsageUpdate?: Array<TechniqueApplicationSeriesUsageUpdate>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesUsageInsertUpdateBulk(TechniqueApplicationSeriesUsageUpdate?: Array<TechniqueApplicationSeriesUsageUpdate>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * Move the Series up or down,etc.
     * @param TSUsageID
     * @param Direction
     * @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.
     */
    techniqueApplicationSeriesUsageMove(TSUsageID?: number, Direction?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesUsageMove(TSUsageID?: number, Direction?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesUsageMove(TSUsageID?: number, Direction?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * Select an individual Usage item.
     * @param TSUsageID
     * @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.
     */
    techniqueApplicationSeriesUsageSelectItem(TSUsageID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<TechniqueApplicationSeriesUsageDetailsForEdit>;
    techniqueApplicationSeriesUsageSelectItem(TSUsageID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<TechniqueApplicationSeriesUsageDetailsForEdit>>;
    techniqueApplicationSeriesUsageSelectItem(TSUsageID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<TechniqueApplicationSeriesUsageDetailsForEdit>>;
    /**
     * Select all the usage for a Series (for Maintenance purposes)
     * @param TSID
     * @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.
     */
    techniqueApplicationSeriesUsageSelectSeries(TSID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TechniqueApplicationSeriesUsageDetailsForEdit>>;
    techniqueApplicationSeriesUsageSelectSeries(TSID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TechniqueApplicationSeriesUsageDetailsForEdit>>>;
    techniqueApplicationSeriesUsageSelectSeries(TSID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TechniqueApplicationSeriesUsageDetailsForEdit>>>;
    /**
     * Update usage.
     * @param TechniqueApplicationSeriesUsageUpdate
     * @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.
     */
    techniqueApplicationSeriesUsageUpdate(TechniqueApplicationSeriesUsageUpdate?: TechniqueApplicationSeriesUsageUpdate, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    techniqueApplicationSeriesUsageUpdate(TechniqueApplicationSeriesUsageUpdate?: TechniqueApplicationSeriesUsageUpdate, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    techniqueApplicationSeriesUsageUpdate(TechniqueApplicationSeriesUsageUpdate?: TechniqueApplicationSeriesUsageUpdate, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param TSUsageID
     * @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.
     */
    techniquesForTSUsage(TSUsageID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TechniqueDetailed>>;
    techniquesForTSUsage(TSUsageID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TechniqueDetailed>>>;
    techniquesForTSUsage(TSUsageID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TechniqueDetailed>>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<TechniqueSeriesService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TechniqueSeriesService>;
}
