import { Pbi } from './projectPbi.type'; import { Teams } from './projectService.type'; import { AssignedMember } from './projectSubModuleService.type'; export type Sprint = { _id: string; sprintNumber: number; status: SprintStatus; totalProductBacklogItems: number; totalTasks?: number; progressTasks?: string; sprintInterval: string; startAt: number; finishedAt: number; isNeedApproval: boolean; }; export type SprintStatus = 'Backlog' | 'Waiting for Approval' | 'Ready to Sprint' | 'Sprint' | 'Selesai'; export type SprintDetail = Omit & { finishAt: number; sprintInterval: number; sprintIntervalUnit: string; productBacklogItems: (Pick & { canViewDetail?: boolean; })[]; }; export interface PbiOptions { sprint?: boolean; editedBy?: boolean; } export interface IntervalPut { period: number; periodUnit: string; } export type SprintSummary = { membersDetails: SummaryMemberDetail[]; remainingTasks: number; finishedTasks: number; date: string; }; type SummaryMemberDetail = { taskProgress: string; _id?: string; nickName?: string; }; export type ReviewPbi = Pick; export type SprintMemberReview = { _id: string; nickName: string; imageUrl?: string; teams: Teams[]; totalFinishedProductBacklogItem: number; totalProductBacklogItemBug: number; averageDuration: string; productBacklogItems: ReviewPbi[]; }; export type SprintTimeline = { _id: string; key: number; status: string; pbi: PbiTimeline[]; }; export type PbiTimeline = { _id: string; name: string; status: string; daysOff: DateRange[]; assignedTo: AssignedMember[]; } & Record; export declare const durationTypes: readonly ["grayDuration", "yellowDuration", "redDuration", "greenDuration"]; export type DurationTypes = (typeof durationTypes)[number]; export type DateRange = { start: number; end: number; }; export {};