export type ParsedHistoryCommit = { authorName: string, datetimeUTC: number, branchName: string, commitHash: string, message: string, files: string[], commitToUnreleasedChangelog: boolean } export type UnreleasedCommitMessages = { [categoryName: string]: MessageT } export type UnreleasedChangelogCommit = { authorName: string, datetimeUTC: number, branchName: string, commitHash: string, messages: UnreleasedCommitMessagesT } export type ChangelogMessages = { [categoryName: string]: MessageT }; export type ChangelogEntry = { datetimeUTC: number, branchName: string, messages: ChangelogMessagesT } export type TrackedBranches = { [branchName: string]: { lastCommitDateTimeUTC: number, lastCommitHash: string } } export type GitHistoryType = { /** path to repository */ repository: string, trackedBranches: TrackedBranches, parsedHistory: ParsedHistoryCommit[], unreleasedChangelog: UnreleasedChangelogCommit[], changelog: ChangelogEntry[], messageCategories: { [categoryName: string]: { // some options will be } } }