/**
 * soccr.io API
 * An ASP.NET Core Web API for managing Soccer items
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AgeGroup } from '../model/models';
import { CommonResult } from '../model/models';
import { Gender } from '../model/models';
import { MemberAttendanceStatus } from '../model/models';
import { MemberHealthStatus } from '../model/models';
import { MemberParticipationStatus } from '../model/models';
import { MemberPaymentStatus } from '../model/models';
import { Team } from '../model/models';
import { TeamGroup } from '../model/models';
import { TeamGroupMember } from '../model/models';
import { TeamGroupMemberFlatNode } from '../model/models';
import { TeamGroupMemberTreeNode } from '../model/models';
import { TeamGroupMemberUpdate } from '../model/models';
import { TeamGroupStatus } from '../model/models';
import { TeamMember } from '../model/models';
import { TeamMemberRoleDetail } from '../model/models';
import { TeamMemberRoleUpdate } from '../model/models';
import { TeamRecruitingStatus } from '../model/models';
import { TeamRole } from '../model/models';
import { TeamStatus } from '../model/models';
import { Configuration } from '../configuration';
export interface TeamsServiceInterface {
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    /**
     *
     *
     */
    ageGroups(extraHttpRequestParams?: any): Observable<Array<AgeGroup>>;
    /**
     *
     *
     */
    genders(extraHttpRequestParams?: any): Observable<Array<Gender>>;
    /**
     *
     *
     */
    gendersForIndividual(extraHttpRequestParams?: any): Observable<Array<Gender>>;
    /**
     *
     *
     */
    gendersForLeagueTeams(extraHttpRequestParams?: any): Observable<Array<Gender>>;
    /**
     *
     *
     * @param TargetIndex
     * @param Subject
     * @param Body
     * @param IsHtml
     */
    sendTeamEmailAsync(TargetIndex?: number, Subject?: string, Body?: string, IsHtml?: boolean, extraHttpRequestParams?: any): Observable<{}>;
    /**
     *
     *
     * @param TeamGroupID
     */
    teamGroupMemberDeleteGroup(TeamGroupID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroupMemberID
     */
    teamGroupMemberDeleteItem(TeamGroupMemberID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamID
     * @param TeamGroupID
     * @param TeamMemberID
     * @param InvitationStatusID
     * @param ParticipationStatusID
     * @param HealthStatusID
     * @param PaymentStatusID
     */
    teamGroupMemberInsertItem(TeamID?: number, TeamGroupID?: number, TeamMemberID?: number, InvitationStatusID?: number, ParticipationStatusID?: number, HealthStatusID?: number, PaymentStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamID
     * @param TeamGroupID
     * @param PrecisionMode
     */
    teamGroupMemberOptionsFlat(TeamID?: number, TeamGroupID?: number, PrecisionMode?: number, extraHttpRequestParams?: any): Observable<Array<TeamGroupMemberFlatNode>>;
    /**
     *
     *
     * @param TeamID
     * @param TeamGroupID
     * @param PrecisionMode
     */
    teamGroupMemberOptionsTree(TeamID?: number, TeamGroupID?: number, PrecisionMode?: number, extraHttpRequestParams?: any): Observable<Array<TeamGroupMemberTreeNode>>;
    /**
     *
     *
     * @param TeamGroupMemberUpdate
     */
    teamGroupMemberOptionsUpdateBulk(TeamGroupMemberUpdate?: Array<TeamGroupMemberUpdate>, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroupMemberID
     * @param HealthStatusID
     */
    teamGroupMemberUpdateHealthStatus(TeamGroupMemberID?: number, HealthStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroupMemberID
     * @param InvitationID
     */
    teamGroupMemberUpdateInvitation(TeamGroupMemberID?: number, InvitationID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroupMemberID
     * @param InvitationStatusID
     * @param ParticipationStatusID
     * @param HealthStatusID
     * @param PaymentStatusID
     */
    teamGroupMemberUpdateItem(TeamGroupMemberID?: number, InvitationStatusID?: number, ParticipationStatusID?: number, HealthStatusID?: number, PaymentStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroupMemberID
     * @param ParticipationStatusID
     */
    teamGroupMemberUpdateParticipationStatus(TeamGroupMemberID?: number, ParticipationStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroupMemberID
     * @param PaymentStatusID
     */
    teamGroupMemberUpdatePaymentStatus(TeamGroupMemberID?: number, PaymentStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param Team
     */
    teamInsert(Team?: Team, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMemberID
     */
    teamMemberRoleDetailSelectInner(TeamMemberID?: number, extraHttpRequestParams?: any): Observable<Array<TeamMemberRoleDetail>>;
    /**
     *
     *
     * @param TeamMemberID
     */
    teamMemberRoleDetailSelectOuter(TeamMemberID?: number, extraHttpRequestParams?: any): Observable<Array<TeamMemberRoleDetail>>;
    /**
     *
     *
     * @param TeamMemberRoleUpdate
     */
    teamMemberRolesBulkUpdate(TeamMemberRoleUpdate?: Array<TeamMemberRoleUpdate>, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMemberID
     */
    teamMembersDeleteItem(TeamMemberID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamID
     */
    teamMembersDeleteTeam(TeamID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMember
     */
    teamMembersInsertItem(TeamMember?: TeamMember, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMemberID
     */
    teamMembersSelectItem(TeamMemberID?: number, extraHttpRequestParams?: any): Observable<TeamMember>;
    /**
     *
     *
     * @param TeamID
     */
    teamMembersSelectList(TeamID?: number, extraHttpRequestParams?: any): Observable<Array<TeamMember>>;
    /**
     *
     *
     * @param TeamMemberID
     * @param HealthStatusID
     */
    teamMembersUpdateHealthStatus(TeamMemberID?: number, HealthStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMemberID
     * @param InvitationID
     */
    teamMembersUpdateInvitation(TeamMemberID?: number, InvitationID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMember
     */
    teamMembersUpdateItem(TeamMember?: TeamMember, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMemberID
     * @param ParticipationStatusID
     */
    teamMembersUpdateParticipationStatus(TeamMemberID?: number, ParticipationStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMemberID
     * @param PaymentStatusID
     */
    teamMembersUpdatePaymentStatus(TeamMemberID?: number, PaymentStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamMemberID
     * @param UserID
     */
    teamMembersUpdateUserID(TeamMemberID?: number, UserID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     */
    teamRoleList(extraHttpRequestParams?: any): Observable<Array<TeamRole>>;
    /**
     *
     *
     * @param TeamMemberID
     */
    teamRoleListForMember(TeamMemberID?: number, extraHttpRequestParams?: any): Observable<Array<TeamRole>>;
    /**
     *
     *
     * @param TeamID
     */
    teamRoleListForTeam(TeamID?: number, extraHttpRequestParams?: any): Observable<Array<TeamRole>>;
    /**
     *
     *
     */
    teamStatusAttendanceStatusList(extraHttpRequestParams?: any): Observable<Array<MemberAttendanceStatus>>;
    /**
     *
     *
     */
    teamStatusHealthStatusList(extraHttpRequestParams?: any): Observable<Array<MemberHealthStatus>>;
    /**
     *
     *
     */
    teamStatusList(extraHttpRequestParams?: any): Observable<Array<TeamStatus>>;
    /**
     *
     *
     */
    teamStatusParticipationStatusList(extraHttpRequestParams?: any): Observable<Array<MemberParticipationStatus>>;
    /**
     *
     *
     */
    teamStatusPaymentStatusList(extraHttpRequestParams?: any): Observable<Array<MemberPaymentStatus>>;
    /**
     *
     *
     */
    teamStatusRecruitingStatusList(extraHttpRequestParams?: any): Observable<Array<TeamRecruitingStatus>>;
    /**
     *
     *
     * @param Team
     */
    teamUpdate(Team?: Team, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamID
     */
    teamsDeleteItem(TeamID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroupID
     */
    teamsGroupsDeleteItem(TeamGroupID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamID
     */
    teamsGroupsDeleteTeam(TeamID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroup
     */
    teamsGroupsInsert(TeamGroup?: TeamGroup, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     */
    teamsGroupsSelectCanned(extraHttpRequestParams?: any): Observable<Array<TeamGroup>>;
    /**
     *
     *
     * @param TeamGroupID
     */
    teamsGroupsSelectItem(TeamGroupID?: number, extraHttpRequestParams?: any): Observable<TeamGroup>;
    /**
     *
     *
     * @param TeamGroupID
     */
    teamsGroupsSelectItemForEdit(TeamGroupID?: number, extraHttpRequestParams?: any): Observable<TeamGroup>;
    /**
     *
     *
     * @param TeamGroupID
     */
    teamsGroupsSelectItemForUse(TeamGroupID?: number, extraHttpRequestParams?: any): Observable<TeamGroup>;
    /**
     *
     *
     * @param TeamID
     * @param TeamGroupID
     */
    teamsGroupsSelectRosterInner(TeamID?: number, TeamGroupID?: number, extraHttpRequestParams?: any): Observable<Array<TeamGroupMember>>;
    /**
     *
     *
     * @param TeamID
     * @param TeamGroupID
     * @param TeamMemberID
     */
    teamsGroupsSelectRosterInnerForMember(TeamID?: number, TeamGroupID?: number, TeamMemberID?: number, extraHttpRequestParams?: any): Observable<Array<TeamGroupMember>>;
    /**
     *
     *
     * @param TeamGroupMemberID
     */
    teamsGroupsSelectRosterMember(TeamGroupMemberID?: number, extraHttpRequestParams?: any): Observable<TeamGroupMember>;
    /**
     *
     *
     * @param TeamID
     * @param TeamGroupID
     */
    teamsGroupsSelectRosterOuter(TeamID?: number, TeamGroupID?: number, extraHttpRequestParams?: any): Observable<Array<TeamGroupMember>>;
    /**
     *
     *
     * @param TeamID
     * @param TeamGroupID
     * @param TeamMemberID
     */
    teamsGroupsSelectRosterOuterForMember(TeamID?: number, TeamGroupID?: number, TeamMemberID?: number, extraHttpRequestParams?: any): Observable<Array<TeamGroupMember>>;
    /**
     *
     *
     * @param TeamID
     */
    teamsGroupsSelectTeamForEdit(TeamID?: number, extraHttpRequestParams?: any): Observable<Array<TeamGroup>>;
    /**
     *
     *
     * @param TeamID
     */
    teamsGroupsSelectTeamForUse(TeamID?: number, extraHttpRequestParams?: any): Observable<Array<TeamGroup>>;
    /**
     *
     *
     */
    teamsGroupsStatusList(extraHttpRequestParams?: any): Observable<Array<TeamGroupStatus>>;
    /**
     *
     *
     * @param TeamGroup
     */
    teamsGroupsUpdate(TeamGroup?: TeamGroup, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamGroupID
     * @param TeamGroupStatusID
     */
    teamsGroupsUpdateStatus(TeamGroupID?: number, TeamGroupStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamOwnerUserID
     */
    teamsSelectByOwner(TeamOwnerUserID?: number, extraHttpRequestParams?: any): Observable<Array<Team>>;
    /**
     *
     *
     * @param UserID
     */
    teamsSelectByOwnerMember(UserID?: number, extraHttpRequestParams?: any): Observable<Array<Team>>;
    /**
     *
     *
     * @param TeamID
     */
    teamsSelectItem(TeamID?: number, extraHttpRequestParams?: any): Observable<Team>;
    /**
     *
     *
     * @param TeamID
     * @param TeamOwnerUserID
     */
    teamsUpdateOwner(TeamID?: number, TeamOwnerUserID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamID
     * @param RecruitingStatusID
     */
    teamsUpdateRecruiting(TeamID?: number, RecruitingStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param TeamID
     * @param TeamStatusID
     */
    teamsUpdateStatus(TeamID?: number, TeamStatusID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
}
