import type { BaseResourceOptions } from '@gitbeaker/requester-utils'; import { ResourceMembers } from '../templates'; import type { AddMemberOptions, AllMembersOptions, IncludeInherited, MemberSchema, } from '../templates/ResourceMembers'; import type { GitlabAPIResponse, PaginationRequestOptions, PaginationTypes, ShowExpanded, Sudo, } from '../infrastructure'; import { AccessLevel } from '../constants'; export interface ProjectMembers extends ResourceMembers { add( projectId: string | number, accessLevel: Exclude, options?: AddMemberOptions & Sudo & ShowExpanded, ): Promise>; all( projectId: string | number, options?: IncludeInherited & PaginationRequestOptions

& AllMembersOptions & Sudo & ShowExpanded, ): Promise>; edit( projectId: string | number, userId: number, accessLevel: AccessLevel, options?: { expiresAt?: string; memberRoleId?: number } & Sudo & ShowExpanded, ): Promise>; show( projectId: string | number, userId: number, options?: IncludeInherited & Sudo & ShowExpanded, ): Promise>; remove( projectId: string | number, userId: number, options?: { skipSubresourceS?: boolean; unassignIssuables?: boolean } & Sudo & ShowExpanded, ): Promise>; } export class ProjectMembers extends ResourceMembers { constructor(options: BaseResourceOptions) { /* istanbul ignore next */ super('projects', options); } }