import type { BaseResourceOptions } from '@gitbeaker/requester-utils'; import { ResourceInvitations } from '../templates'; import type { InvitationSchema } from '../templates/ResourceInvitations'; import type { GitlabAPIResponse, OneOf, PaginationRequestOptions, PaginationTypes, ShowExpanded, Sudo, } from '../infrastructure'; import { AccessLevel } from '../constants'; export interface ProjectInvitations { add( projectId: string | number, accessLevel: Exclude, options: OneOf<{ email: string; userId: string }> & { expiresAt?: string; inviteSource?: string; tasksToBeDone?: string[]; tasksProjectId?: number; } & Sudo & ShowExpanded, ): Promise>; all( projectId: string | number, options?: PaginationRequestOptions

& { query?: string } & Sudo & ShowExpanded, ): Promise>; edit( projectId: string | number, email: string, options?: { expiresAt?: string; accessLevel?: Exclude } & Sudo & ShowExpanded, ): Promise>; remove( projectId: string | number, email: string, options?: Sudo & ShowExpanded, ): Promise>; } export class ProjectInvitations extends ResourceInvitations { constructor(options: BaseResourceOptions) { /* istanbul ignore next */ super('projects', options); } }