import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { CommonResult } from '../model/commonResult';
import { PracticePlanApplication } from '../model/practicePlanApplication';
import { PracticePlanApplicationTreeSport } from '../model/practicePlanApplicationTreeSport';
import { PracticePlanAssignmentUpdate } from '../model/practicePlanAssignmentUpdate';
import { PracticePlanCourseware } from '../model/practicePlanCourseware';
import { PracticePlanCurrentPosition } from '../model/practicePlanCurrentPosition';
import { PracticePlanDetail } from '../model/practicePlanDetail';
import { PracticePlanFlatApplication } from '../model/practicePlanFlatApplication';
import { PracticePlanRequest } from '../model/practicePlanRequest';
import { PracticePlanStatus } from '../model/practicePlanStatus';
import { PracticePlanTechniqueDetail } from '../model/practicePlanTechniqueDetail';
import { PracticePlanType } from '../model/practicePlanType';
import { TeamGroupMemberTreeNode } from '../model/teamGroupMemberTreeNode';
import { TechniqueDetailed } from '../model/techniqueDetailed';
import { Configuration } from '../configuration';
import { PracticePlanServiceInterface } from './practicePlan.serviceInterface';
import * as i0 from "@angular/core";
export declare class PracticePlanService implements PracticePlanServiceInterface {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * @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.
     */
    emptyPracticePlanRequest(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<PracticePlanRequest>;
    emptyPracticePlanRequest(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PracticePlanRequest>>;
    emptyPracticePlanRequest(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PracticePlanRequest>>;
    /**
     * @param PPTID
     * @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.
     */
    planApplicationDeleteItem(PPTID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    planApplicationDeleteItem(PPTID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    planApplicationDeleteItem(PPTID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    planApplicationDeletePlan(PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    planApplicationDeletePlan(PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    planApplicationDeletePlan(PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    planApplicationDetails(PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanApplicationTreeSport>>;
    planApplicationDetails(PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanApplicationTreeSport>>>;
    planApplicationDetails(PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanApplicationTreeSport>>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    planApplicationDetailsFlat(PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanFlatApplication>>;
    planApplicationDetailsFlat(PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanFlatApplication>>>;
    planApplicationDetailsFlat(PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanFlatApplication>>>;
    /**
     * @param PracticePlanTechniqueDetail
     * @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.
     */
    planApplicationInsert(PracticePlanTechniqueDetail?: PracticePlanTechniqueDetail, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    planApplicationInsert(PracticePlanTechniqueDetail?: PracticePlanTechniqueDetail, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    planApplicationInsert(PracticePlanTechniqueDetail?: PracticePlanTechniqueDetail, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanRequest
     * @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.
     */
    planApplicationOptionsFlat(PracticePlanRequest?: PracticePlanRequest, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanFlatApplication>>;
    planApplicationOptionsFlat(PracticePlanRequest?: PracticePlanRequest, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanFlatApplication>>>;
    planApplicationOptionsFlat(PracticePlanRequest?: PracticePlanRequest, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanFlatApplication>>>;
    /**
     * @param PracticePlanRequest
     * @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.
     */
    planApplicationOptionsTree(PracticePlanRequest?: PracticePlanRequest, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanApplicationTreeSport>>;
    planApplicationOptionsTree(PracticePlanRequest?: PracticePlanRequest, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanApplicationTreeSport>>>;
    planApplicationOptionsTree(PracticePlanRequest?: PracticePlanRequest, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanApplicationTreeSport>>>;
    /**
     * @param PracticePlanID
     * @param SearchText
     * @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.
     */
    planApplicationSearch(PracticePlanID?: number, SearchText?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanTechniqueDetail>>;
    planApplicationSearch(PracticePlanID?: number, SearchText?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanTechniqueDetail>>>;
    planApplicationSearch(PracticePlanID?: number, SearchText?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanTechniqueDetail>>>;
    /**
     * @param PracticePlanID
     * @param TechniqueTypeID
     * @param TechniqueID
     * @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.
     */
    planApplicationSelectFirst(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<TechniqueDetailed>;
    planApplicationSelectFirst(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<TechniqueDetailed>>;
    planApplicationSelectFirst(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<TechniqueDetailed>>;
    /**
     * @param PracticePlanID
     * @param TechniqueTypeID
     * @param TechniqueID
     * @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.
     */
    planApplicationSelectLast(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<TechniqueDetailed>;
    planApplicationSelectLast(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<TechniqueDetailed>>;
    planApplicationSelectLast(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<TechniqueDetailed>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    planApplicationSelectList(PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanTechniqueDetail>>;
    planApplicationSelectList(PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanTechniqueDetail>>>;
    planApplicationSelectList(PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanTechniqueDetail>>>;
    /**
     * @param PracticePlanID
     * @param TechniqueTypeID
     * @param TechniqueID
     * @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.
     */
    planApplicationSelectNext(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<TechniqueDetailed>;
    planApplicationSelectNext(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<TechniqueDetailed>>;
    planApplicationSelectNext(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<TechniqueDetailed>>;
    /**
     * @param PracticePlanID
     * @param TechniqueTypeID
     * @param TechniqueID
     * @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.
     */
    planApplicationSelectOrderedPosition(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<PracticePlanCurrentPosition>;
    planApplicationSelectOrderedPosition(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PracticePlanCurrentPosition>>;
    planApplicationSelectOrderedPosition(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PracticePlanCurrentPosition>>;
    /**
     * @param PracticePlanID
     * @param TechniqueTypeID
     * @param TechniqueID
     * @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.
     */
    planApplicationSelectPrev(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<TechniqueDetailed>;
    planApplicationSelectPrev(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<TechniqueDetailed>>;
    planApplicationSelectPrev(PracticePlanID?: number, TechniqueTypeID?: number, TechniqueID?: number, TSID?: number, MuscleGroupID?: number, ExerciseClassID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<TechniqueDetailed>>;
    /**
     * @param PracticePlanTechniqueDetail
     * @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.
     */
    planApplicationUpdate(PracticePlanTechniqueDetail?: PracticePlanTechniqueDetail, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    planApplicationUpdate(PracticePlanTechniqueDetail?: PracticePlanTechniqueDetail, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    planApplicationUpdate(PracticePlanTechniqueDetail?: PracticePlanTechniqueDetail, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanApplication
     * @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.
     */
    planApplicationUpdateBulk(PracticePlanApplication?: Array<PracticePlanApplication>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    planApplicationUpdateBulk(PracticePlanApplication?: Array<PracticePlanApplication>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    planApplicationUpdateBulk(PracticePlanApplication?: Array<PracticePlanApplication>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    planAssignmentClear(PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    planAssignmentClear(PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    planAssignmentClear(PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanAssignmentUpdate
     * @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.
     */
    planAssignmentUpdateBulk(PracticePlanAssignmentUpdate?: Array<PracticePlanAssignmentUpdate>, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    planAssignmentUpdateBulk(PracticePlanAssignmentUpdate?: Array<PracticePlanAssignmentUpdate>, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    planAssignmentUpdateBulk(PracticePlanAssignmentUpdate?: Array<PracticePlanAssignmentUpdate>, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param UserID
     * @param PracticePlanID
     * @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.
     */
    planAssignmentUserPlanOptionsFlat(UserID?: number, PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TeamGroupMemberTreeNode>>;
    planAssignmentUserPlanOptionsFlat(UserID?: number, PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TeamGroupMemberTreeNode>>>;
    planAssignmentUserPlanOptionsFlat(UserID?: number, PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TeamGroupMemberTreeNode>>>;
    /**
     * @param UserID
     * @param PracticePlanID
     * @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.
     */
    planAssignmentUserPlanOptionsTree(UserID?: number, PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TeamGroupMemberTreeNode>>;
    planAssignmentUserPlanOptionsTree(UserID?: number, PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TeamGroupMemberTreeNode>>>;
    planAssignmentUserPlanOptionsTree(UserID?: number, PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TeamGroupMemberTreeNode>>>;
    /**
     * @param UserID
     * @param TeamID
     * @param PracticePlanID
     * @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.
     */
    planAssignmentUserTeamPlanOptionsFlat(UserID?: number, TeamID?: number, PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TeamGroupMemberTreeNode>>;
    planAssignmentUserTeamPlanOptionsFlat(UserID?: number, TeamID?: number, PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TeamGroupMemberTreeNode>>>;
    planAssignmentUserTeamPlanOptionsFlat(UserID?: number, TeamID?: number, PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TeamGroupMemberTreeNode>>>;
    /**
     * @param UserID
     * @param TeamID
     * @param PracticePlanID
     * @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.
     */
    planAssignmentUserTeamPlanOptionsTree(UserID?: number, TeamID?: number, PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<TeamGroupMemberTreeNode>>;
    planAssignmentUserTeamPlanOptionsTree(UserID?: number, TeamID?: number, PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<TeamGroupMemberTreeNode>>>;
    planAssignmentUserTeamPlanOptionsTree(UserID?: number, TeamID?: number, PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<TeamGroupMemberTreeNode>>>;
    /**
     * @param PracticePlanID
     * @param OneTimeKey
     * @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.
     */
    plansCheckLogin(PracticePlanID?: number, OneTimeKey?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    plansCheckLogin(PracticePlanID?: number, OneTimeKey?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    plansCheckLogin(PracticePlanID?: number, OneTimeKey?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    plansDelete(PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    plansDelete(PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    plansDelete(PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanID
     * @param OneTimeKey
     * @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.
     */
    plansDeleteByKey(PracticePlanID?: number, OneTimeKey?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    plansDeleteByKey(PracticePlanID?: number, OneTimeKey?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    plansDeleteByKey(PracticePlanID?: number, OneTimeKey?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param PracticePlanDetail
     * @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.
     */
    plansInsert(PracticePlanDetail?: PracticePlanDetail, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    plansInsert(PracticePlanDetail?: PracticePlanDetail, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    plansInsert(PracticePlanDetail?: PracticePlanDetail, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @param SearchText
     * @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.
     */
    plansSearchByAuthor(SearchText?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanDetail>>;
    plansSearchByAuthor(SearchText?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanDetail>>>;
    plansSearchByAuthor(SearchText?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanDetail>>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    plansSearchByID(PracticePlanID?: string, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanDetail>>;
    plansSearchByID(PracticePlanID?: string, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanDetail>>>;
    plansSearchByID(PracticePlanID?: string, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanDetail>>>;
    /**
     * @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.
     */
    plansSelectActiveForUser(UserID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanDetail>>;
    plansSelectActiveForUser(UserID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanDetail>>>;
    plansSelectActiveForUser(UserID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanDetail>>>;
    /**
     * @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.
     */
    plansSelectAll(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanDetail>>;
    plansSelectAll(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanDetail>>>;
    plansSelectAll(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanDetail>>>;
    /**
     * @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.
     */
    plansSelectAllForUser(UserID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanDetail>>;
    plansSelectAllForUser(UserID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanDetail>>>;
    plansSelectAllForUser(UserID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanDetail>>>;
    /**
     * @param UserID
     * @param OwnershipFilter
     * @param StatusFilter
     * @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.
     */
    plansSelectAllForUserFilter(UserID?: number, OwnershipFilter?: number, StatusFilter?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanDetail>>;
    plansSelectAllForUserFilter(UserID?: number, OwnershipFilter?: number, StatusFilter?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanDetail>>>;
    plansSelectAllForUserFilter(UserID?: number, OwnershipFilter?: number, StatusFilter?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanDetail>>>;
    /**
     * @param SportID
     * @param TeamMemberID
     * @param UserID
     * @param IncludeUnreleased
     * @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.
     */
    plansSelectCourseWare(SportID?: number, TeamMemberID?: number, UserID?: number, IncludeUnreleased?: boolean, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanCourseware>>;
    plansSelectCourseWare(SportID?: number, TeamMemberID?: number, UserID?: number, IncludeUnreleased?: boolean, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanCourseware>>>;
    plansSelectCourseWare(SportID?: number, TeamMemberID?: number, UserID?: number, IncludeUnreleased?: boolean, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanCourseware>>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    plansSelectItem(PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<PracticePlanDetail>;
    plansSelectItem(PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PracticePlanDetail>>;
    plansSelectItem(PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PracticePlanDetail>>;
    /**
     * @param PracticePlanID
     * @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.
     */
    plansSelectItemPublic(PracticePlanID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<PracticePlanDetail>;
    plansSelectItemPublic(PracticePlanID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<PracticePlanDetail>>;
    plansSelectItemPublic(PracticePlanID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<PracticePlanDetail>>;
    /**
     * @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.
     */
    plansSelectSitePlans(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanDetail>>;
    plansSelectSitePlans(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanDetail>>>;
    plansSelectSitePlans(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanDetail>>>;
    /**
     * @param PracticePlanDetail
     * @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.
     */
    plansUpdate(PracticePlanDetail?: PracticePlanDetail, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<CommonResult>;
    plansUpdate(PracticePlanDetail?: PracticePlanDetail, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<CommonResult>>;
    plansUpdate(PracticePlanDetail?: PracticePlanDetail, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<CommonResult>>;
    /**
     * @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.
     */
    practicePlanStatusList(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanStatus>>;
    practicePlanStatusList(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanStatus>>>;
    practicePlanStatusList(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanStatus>>>;
    /**
     * @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.
     */
    practicePlanTypeList(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<PracticePlanType>>;
    practicePlanTypeList(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<PracticePlanType>>>;
    practicePlanTypeList(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<PracticePlanType>>>;
    /**
     * @param TargetIndex
     * @param Subject
     * @param Body
     * @param IsHtml
     * @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.
     */
    sendPracticePlanEmailAsync(TargetIndex?: number, Subject?: string, Body?: string, IsHtml?: boolean, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<any>;
    sendPracticePlanEmailAsync(TargetIndex?: number, Subject?: string, Body?: string, IsHtml?: boolean, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpResponse<any>>;
    sendPracticePlanEmailAsync(TargetIndex?: number, Subject?: string, Body?: string, IsHtml?: boolean, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: undefined;
        context?: HttpContext;
    }): Observable<HttpEvent<any>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PracticePlanService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PracticePlanService>;
}
