export interface CliArgs { repoPath: string; startDate: string; endDate: string; port: number; export?: string; noServer?: boolean; host?: string; } export interface LinesChanged { added: number; removed: number; net: number; } export interface HourActivity { hour: string; commits: number; } export interface DayActivity { day: string; commits: number; } export interface FileCommits { file: string; commits: number; } export interface MonthCommits { month: string; commits: number; } export interface DayCommits { date: string; commits: number; } export interface PRStats { opened: number; merged: number; } export interface MostCommentedPR { prNumber: number; comments: number; } export interface PullRequestData { prsByAuthor: Record; mostCommentedPRByAuthor: Record; totalPRs: PRStats; } export interface TeamSummary { totalCommits: number; linesAdded: number; linesDeleted: number; netChange: number; totalChanged: number; } export interface WrappedData { period: { start: string; end: string; }; repository: string; teamSummary: TeamSummary; busiestMonths: MonthCommits[]; commitsByDayOfWeek: Record; busiestDays: DayCommits[]; pullRequests: PullRequestData | null; commitsByAuthor: Record; linesChangedByAuthor: Record; longestStreakByAuthor: Record; uniqueActiveDaysByAuthor: Record; topFilesByAuthor: Record; mostActiveHourByAuthor: Record; mostActiveDayByAuthor: Record; avgCommitMessageLength: Record; nightOwlCommits: Record; earlyBirdCommits: Record; fridayWarriorCommits: Record; weekendWarriorCommits: Record; }