export type SummaryObject = ISummaryTree | ISummaryBlob | ISummaryHandle | ISummaryAttachment ; export type SummaryTree = ISummaryTree | ISummaryHandle ; export interface ISummaryAuthor { name : string ; email : string ; date : string ; } export interface ISummaryCommitter { name : string ; email : string ; date : string ; } export namespace SummaryType { export type Tree = 1 ; export type Blob = 2 ; export type Handle = 3 ; export type Attachment = 4 ; export const Tree = 1 as const ; export const Blob = 2 as const ; export const Handle = 3 as const ; export const Attachment = 4 as const ; } export type SummaryType = SummaryType . Attachment | SummaryType . Blob | SummaryType . Handle | SummaryType . Tree ; export type SummaryTypeNoHandle = SummaryType . Tree | SummaryType . Blob | SummaryType . Attachment ; export interface ISummaryHandle { type : SummaryType . Handle ; handleType : SummaryTypeNoHandle ; handle : string ; } export interface ISummaryBlob { type : SummaryType . Blob ; content : string | Uint8Array ; } export interface ISummaryAttachment { type : SummaryType . Attachment ; id : string ; } export interface ISummaryTree { type : SummaryType . Tree ; tree : { [ path ] : SummaryObject ; } ; unreferenced ? : true ; }