import type { BaseResourceOptions } from '@gitbeaker/requester-utils'; import { ResourceDiscussions } from '../templates'; import { type GitlabAPIResponse, type PaginationRequestOptions, type PaginationTypes, RawPathSegment, type ShowExpanded, type Sudo, } from '../infrastructure'; import type { DiscussionNotePositionOptions, DiscussionNoteSchema, DiscussionSchema, } from '../templates/ResourceDiscussions'; export interface CommitDiscussions extends ResourceDiscussions { addNote( projectId: string | number, commitId: string, discussionId: string, body: string, options?: { createdAt?: string } & Sudo & ShowExpanded, ): Promise>; all( projectId: string | number, commitId: string, options?: PaginationRequestOptions

& Sudo & ShowExpanded, ): Promise>; create( projectId: string | number, commitId: string, body: string, options?: { position?: DiscussionNotePositionOptions; commitId?: string; createdAt?: string; } & Sudo & ShowExpanded, ): Promise>; editNote( projectId: string | number, commitId: string, discussionId: string, noteId: number, options?: Sudo & ShowExpanded & { body?: string }, ): Promise>; removeNote( projectId: string | number, commitId: string, discussionId: string, noteId: number, options?: Sudo & ShowExpanded, ): Promise>; show( projectId: string | number, commitId: string, discussionId: string, options?: Sudo & ShowExpanded, ): Promise>; } export class CommitDiscussions extends ResourceDiscussions { constructor(options: BaseResourceOptions) { /* istanbul ignore next */ super('projects', new RawPathSegment('repository/commits'), options); } }