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 GroupInvitations { add( groupId: string | number, accessLevel: Exclude, options: OneOf<{ email: string; userId: string }> & { expiresAt?: string; inviteSource?: string; tasksToBeDone?: string[]; tasksProjectId?: number; } & Sudo & ShowExpanded, ): Promise>; all( groupId: string | number, options?: PaginationRequestOptions

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