import { ITGitRequestConfig } from '..'; import { IMilestone, IPerPageParams, ProjectId } from '../base'; import { Issue } from './issues'; export type MilestoneState = 'active' | 'closed'; export type MilestoneOrder = 'id' | 'due_date' | 'create_at' | 'updated_at'; export type MilestoneSort = 'asc' | 'desc'; export interface IMilestones { ( params: { id: ProjectId; iid?: number; /** 里程碑的状态, 可选 active, closed */ state?: MilestoneState; /** 排序字段, 允许按 id, due_date, created_at, updated_at 排序(默认 created_at) */ order_by?: MilestoneOrder; /** 排序方式, 允许 asc, desc(默认 desc) */ sort?: MilestoneSort; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ): Promise; add: IMilestonesAdd; get: IMilestonesGet; modify: IMilestonesModify; issues: IMilestonesIssues; } export type IMilestonesAdd = ( params: { id: ProjectId; title: string; description?: string; due_date?: string; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IMilestonesGet = ( params: { id: ProjectId; milestone_id: number; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IMilestonesModify = ( params: { id: ProjectId; milestone_id: number; title: string; description?: string; due_date?: string; /** 里程碑的事件, 可选 active、close */ state_event: MilestoneState; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IMilestonesDelete = ( params: { id: ProjectId; milestone_id: number; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IMilestonesIssues = ( params: { id: ProjectId; milestone_id: number; }, requestOptions?: ITGitRequestConfig, ) => Promise;