import { CrowdinApi, Pagination, PaginationOptions, PatchRequest, ProjectRole, ProjectRoles, ResponseList, ResponseObject } from '../core'; import { ProjectsGroupsModel } from '../projectsGroups'; export declare class Teams extends CrowdinApi { /** * @requiredScope group:read * @param groupId group identifier * @param options request options * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/Teams/operation/api.groups.teams.getMany */ listGroupTeams(groupId: number, options?: TeamsModel.ListGroupTeamsOptions): Promise>; /** * @requiredScope group:write * @param groupId group identifier * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/Teams/operation/api.groups.teams.patch */ updateGroupTeams(groupId: number, request: PatchRequest[]): Promise>; /** * @requiredScope group:read * @param groupId group identifier * @param teamId team identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/Teams/operation/api.groups.teams.get */ getGroupTeam(groupId: number, teamId: number): Promise>; /** * @requiredScope team:read * @param teamId team identifier * @param options request options * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.teams.projects.permissions.getMany */ listTeamProjectPermissions(teamId: number, options?: PaginationOptions): Promise>; /** * @requiredScope team:write * @param teamId team identifier * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.teams.projects.permissions.patch */ editTeamProjectPermissions(teamId: number, request: PatchRequest[]): Promise>; /** * @requiredScope project.member:write * @param projectId project identifier * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.projects.teams.post */ addTeamToProject(projectId: number, request: TeamsModel.AddTeamToProjectRequest): Promise; /** * @requiredScope team:read * @param options optional pagination parameters for the request * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.getMany */ listTeams(options?: TeamsModel.ListTeamsOptions): Promise>; /** * @requiredScope team:read * @param limit maximum number of items to retrieve (default 25) * @param offset starting offset in the collection (default 0) * @deprecated optional parameters should be passed through an object * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.getMany */ listTeams(limit?: number, offset?: number): Promise>; /** * @requiredScope team:write * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.post */ addTeam(request: TeamsModel.AddTeamRequest): Promise>; /** * @requiredScope team:read * @param teamId team identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.get */ getTeam(teamId: number): Promise>; /** * @requiredScope team:write * @param teamId team identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.delete */ deleteTeam(teamId: number): Promise; /** * @requiredScope team:write * @param teamId team identifier * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.patch */ editTeam(teamId: number, request: PatchRequest[]): Promise>; /** * @requiredScope team:read * @param teamId team identifier * @param options optional pagination parameters for the request * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.getMany */ teamMembersList(teamId: number, options?: PaginationOptions): Promise>; /** * @requiredScope team:read * @param teamId team identifier * @param limit maximum number of items to retrieve (default 25) * @param offset starting offset in the collection (default 0) * @deprecated optional parameters should be passed through an object * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.getMany */ teamMembersList(teamId: number, limit?: number, offset?: number): Promise>; /** * @requiredScope team:write * @param teamId team identifier * @param request request body * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.post */ addTeamMembers(teamId: number, request: TeamsModel.AddTeamMembersRequest): Promise; /** * @requiredScope team:write * @param teamId team identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.deleteMany */ deleteAllTeamMembers(teamId: number): Promise; /** * @requiredScope team:write * @param teamId team identifier * @param memberId member identifier * @see https://support.crowdin.com/enterprise/api/#operation/api.teams.members.delete */ deleteTeamMember(teamId: number, memberId: number): Promise; } export declare namespace TeamsModel { interface ListGroupTeamsOptions extends PaginationOptions { orderBy?: string; } interface ProjectPermissions { id: number; roles: ProjectRole[]; project: ProjectsGroupsModel.Project | ProjectsGroupsModel.ProjectSettings; } interface AddTeamToProjectRequest { teamId: number; managerAccess?: boolean; developerAccess?: boolean; roles?: ProjectRole[]; /** * @deprecated */ accessToAllWorkflowSteps?: boolean; /** * @deprecated */ permissions?: Permissions; } interface ListTeamsOptions extends PaginationOptions { search?: string; projectIds?: string; projectRoles?: ProjectRoles[]; languageIds?: string; groupIds?: string; orderBy?: string; } interface ProjectTeamResources { skipped: ProjectTeamResource; added: ProjectTeamResource; updated?: ProjectTeamResource; } interface ProjectTeamResource { id: number; hasManagerAccess: boolean; hasDeveloperAccess: boolean; /** * @deprecated */ hasAccessToAllWorkflowSteps: boolean; /** * @deprecated */ permissions: Permissions; roles: ProjectRole[]; } interface Permissions { [lang: string]: { workflowStepIds: number[] | 'all'; }; } interface Team { id: number; name: string; totalMembers: number; webUrl: string; createdAt: string; updatedAt: string | null; } interface TeamGroup { id: number; team: Team; } interface AddTeamRequest { name: string; } interface TeamMember { id: number; username: string; firstName: string | null; lastName: string | null; avatarUrl: string | null; addedAt: string | null; } interface AddTeamMembersRequest { userIds: number[]; } interface AddTeamMembersResponse { skipped: ResponseObject[]; added: ResponseObject[]; pagination: Pagination; } }