/**
 * devopness API
 * Devopness API - Painless essential DevOps to everyone
 *
 * The version of the OpenAPI document: latest
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { ApiBaseService } from "../../../services/ApiBaseService";
import { ApiResponse } from "../../../common/ApiResponse";
import { MembershipRelation } from '../../generated/models';
import { Team } from '../../generated/models';
import { TeamEnvironmentLink } from '../../generated/models';
import { TeamMembershipRelation } from '../../generated/models';
import { TeamOrganizationCreate } from '../../generated/models';
import { TeamOrganizationLink } from '../../generated/models';
import { TeamProjectLink } from '../../generated/models';
import { TeamRelation } from '../../generated/models';
import { TeamUpdate } from '../../generated/models';
/**
 * TeamsApiService - Auto-generated
 */
export declare class TeamsApiService extends ApiBaseService {
    /**
     *
     * @summary Add a team to the given organization
     * @param {string} organizationId The numeric ID or URL Slug of an organization.
     * @param {TeamOrganizationCreate} teamOrganizationCreate A JSON object containing the resource data
     */
    addOrganizationTeam(organizationId: string, teamOrganizationCreate: TeamOrganizationCreate): Promise<ApiResponse<Team>>;
    /**
     *
     * @summary Delete a given team
     * @param {number} teamId The ID of the team.
     */
    deleteTeam(teamId: number): Promise<ApiResponse<void>>;
    /**
     *
     * @summary Get a team by ID
     * @param {number} teamId The ID of the team.
     */
    getTeam(teamId: number): Promise<ApiResponse<Team>>;
    /**
     *
     * @summary Link the given team to an environment with a specific role
     * @param {number} environmentId The ID of the environment.
     * @param {number} teamId The ID of the team.
     * @param {TeamEnvironmentLink} teamEnvironmentLink A JSON object containing the resource data
     */
    linkTeamToEnvironment(environmentId: number, teamId: number, teamEnvironmentLink: TeamEnvironmentLink): Promise<ApiResponse<void>>;
    /**
     *
     * @summary Link the given team to an organization with a specific role
     * @param {string} organizationId The ID of the organization.
     * @param {number} teamId The ID of the team.
     * @param {TeamOrganizationLink} teamOrganizationLink A JSON object containing the resource data
     */
    linkTeamToOrganization(organizationId: string, teamId: number, teamOrganizationLink: TeamOrganizationLink): Promise<ApiResponse<void>>;
    /**
     *
     * @summary Link the given team to a project with a specific role
     * @param {number} projectId The ID of the project.
     * @param {number} teamId The ID of the team.
     * @param {TeamProjectLink} teamProjectLink A JSON object containing the resource data
     */
    linkTeamToProject(projectId: number, teamId: number, teamProjectLink: TeamProjectLink): Promise<ApiResponse<void>>;
    /**
     *
     * @summary Return a list of teams with access to an environment
     * @param {number} environmentId The ID of the environment.
     * @param {number} [page] Number of the page to be retrieved
     * @param {number} [perPage] Number of items returned per page
     */
    listEnvironmentTeamMemberships(environmentId: number, page?: number, perPage?: number): Promise<ApiResponse<Array<TeamMembershipRelation>>>;
    /**
     *
     * @summary Return a list of teams with access to an organization
     * @param {string} organizationId The ID of the organization.
     * @param {number} [page] Number of the page to be retrieved
     * @param {number} [perPage] Number of items returned per page
     */
    listOrganizationTeamMemberships(organizationId: string, page?: number, perPage?: number): Promise<ApiResponse<Array<TeamMembershipRelation>>>;
    /**
     *
     * @summary Return a list of all teams belonging to an organization
     * @param {string} organizationId The numeric ID or URL Slug of an organization.
     * @param {number} [page] Number of the page to be retrieved
     * @param {number} [perPage] Number of items returned per page
     */
    listOrganizationTeams(organizationId: string, page?: number, perPage?: number): Promise<ApiResponse<Array<TeamRelation>>>;
    /**
     *
     * @summary Return a list of teams with access to a project
     * @param {number} projectId The ID of the project.
     * @param {number} [page] Number of the page to be retrieved
     * @param {number} [perPage] Number of items returned per page
     */
    listProjectTeamMemberships(projectId: number, page?: number, perPage?: number): Promise<ApiResponse<Array<TeamMembershipRelation>>>;
    /**
     *
     * @summary Return a list of all memberships of a team
     * @param {number} teamId The ID of the team.
     * @param {number} [page] Number of the page to be retrieved
     * @param {number} [perPage] Number of items returned per page
     * @param {string} [filterBy] Returns only memberships associated with the given link type.
     */
    listTeamMemberships(teamId: number, page?: number, perPage?: number, filterBy?: string): Promise<ApiResponse<Array<MembershipRelation>>>;
    /**
     *
     * @summary Unlink the given team from an environment
     * @param {number} environmentId The ID of the environment.
     * @param {number} teamId The ID of the team.
     */
    unlinkTeamFromEnvironment(environmentId: number, teamId: number): Promise<ApiResponse<void>>;
    /**
     *
     * @summary Unlink the given team from an organization
     * @param {string} organizationId The ID of the organization.
     * @param {number} teamId The ID of the team.
     */
    unlinkTeamFromOrganization(organizationId: string, teamId: number): Promise<ApiResponse<void>>;
    /**
     *
     * @summary Unlink the given team from a project
     * @param {number} projectId The ID of the project.
     * @param {number} teamId The ID of the team.
     */
    unlinkTeamFromProject(projectId: number, teamId: number): Promise<ApiResponse<void>>;
    /**
     *
     * @summary Update an existing team
     * @param {number} teamId The ID of the team.
     * @param {TeamUpdate} teamUpdate A JSON object containing the resource data
     */
    updateTeam(teamId: number, teamUpdate: TeamUpdate): Promise<ApiResponse<void>>;
}
