import type { BaseResourceOptions } from '@gitbeaker/requester-utils'; import { ResourceProtectedEnvironments } from '../templates'; import { ProtectedEnvironmentAccessLevelEntity, ProtectedEnvironmentSchema, } from '../templates/ResourceProtectedEnvironments'; import type { GitlabAPIResponse, PaginationRequestOptions, PaginationTypes, ShowExpanded, Sudo, } from '../infrastructure'; export interface GroupProtectedEnvironments { all( groupId: string | number, options?: { search?: string } & Sudo & ShowExpanded & PaginationRequestOptions

, ): Promise>; create( groupId: string | number, name: string, deployAccessLevel: ProtectedEnvironmentAccessLevelEntity[], options?: { requiredApprovalCount?: number; approvalRules?: ProtectedEnvironmentAccessLevelEntity[]; } & Sudo & ShowExpanded, ): Promise>; edit( groupId: string | number, name: string, options?: { deployAccessLevels?: ProtectedEnvironmentAccessLevelEntity[]; requiredApprovalCount?: number; approvalRules?: ProtectedEnvironmentAccessLevelEntity[]; } & Sudo & ShowExpanded, ): Promise>; show( groupId: string | number, name: string, options?: Sudo & ShowExpanded, ): Promise>; remove( groupId: string | number, name: string, options?: Sudo & ShowExpanded, ): Promise>; } export class GroupProtectedEnvironments< C extends boolean = false, > extends ResourceProtectedEnvironments { constructor(options: BaseResourceOptions) { /* istanbul ignore next */ super('groups', options); } }