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 ProjectProtectedEnvironments { all( projectId: string | number, options?: { search?: string } & Sudo & ShowExpanded & PaginationRequestOptions

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