import { ITGitRequestConfig } from '..'; import { ProjectId, IPerPageParams, IReleaseType, IRelease, IReleaseAttachment } from '../base'; export interface IReleases { ( params: { id: ProjectId; labels?: string; author_id?: number; type?: IReleaseType; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ): Promise; get: IReleasesGet; add: IReleasesAdd; modify: IReleasesModify; delete: IReleasesDelete; attachments: IReleasesAttachments; } export type IReleasesGet = ( params: { id: ProjectId; tag_name: string; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IReleasesAdd = ( params: { id: ProjectId; tag: string; start_point: string; tag_message?: string; title?: string; type?: IReleaseType | ''; description?: string; labels?: string; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IReleasesModify = ( params: { id: ProjectId; tag_name: string; type?: IReleaseType | ''; description?: string; labels?: string; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IReleasesDelete = ( params: { id: ProjectId; tag_name: string; }, requestOptions?: ITGitRequestConfig, ) => Promise; export interface IReleasesAttachments { add: IReleasesAttachmentsAdd; get: IReleasesAttachmentsGet; delete: IReleasesAttachmentsDelete; } export type IReleasesAttachmentsGet = ( params: { id: ProjectId; tag_name: string; attachment_name: string; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IReleasesAttachmentsAdd = ( params: { id: ProjectId; tag_name: string; file: any; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IReleasesAttachmentsDelete = ( params: { id: ProjectId; tag_name: string; attachment_name: string; }, requestOptions?: ITGitRequestConfig, ) => Promise;