import { ITeamAnalyticsActivityEnum, ITeamAnalyticsActivityV2Enum } from '../../enum/team-analytics-activity/team-analytics-activity.enum'; import { IWorkingDaysAnalyticsActivityV2Enum } from '../../enum/working-days-analytics-activity.enum'; import { HeatmapIntervalSegment } from '../../interface/heat-maps/heat-map.interface'; export interface HeatmapPersistenceRecord { [IWorkingDaysAnalyticsActivityV2Enum.HeatmapSegment]: number; [IWorkingDaysAnalyticsActivityV2Enum.UserId]: string; [IWorkingDaysAnalyticsActivityV2Enum.TotalDuration]: string; [IWorkingDaysAnalyticsActivityV2Enum.count]: string; } export interface HeatmapPersistenceAnalyticsRecord { [ITeamAnalyticsActivityEnum.HeatmapSegment]: number; [ITeamAnalyticsActivityEnum.UserId]: string; [ITeamAnalyticsActivityEnum.TotalDuration]: string; [ITeamAnalyticsActivityEnum.Count]: string; } export interface HeatmapPersistenceAnalyticsRecordV2 { [ITeamAnalyticsActivityV2Enum.HeatmapSegment]: number; [ITeamAnalyticsActivityV2Enum.UserId]: string; [ITeamAnalyticsActivityV2Enum.TotalDuration]: string; [ITeamAnalyticsActivityV2Enum.Count]: string; } export interface HeatmapDomainEntityProps { heatmapSegment: HeatmapSegmentValueObject; userId: string; totalDuration: HeatmapSegmentTotalDurationValueObject; activityCount: HeatmapSegmentActivityCountValueObject; } export interface HeatmapDomainPresenterProps extends HeatmapDomainEntityProps { startDate: Date; endDate: Date; timezone: string; } export interface HeatmapSegmentValueObjectProps { value: number; interval: number; } export interface HeatmapSegmentTotalDurationValueObjectProps { value: number; } export declare class HeatmapSegmentTotalDurationValueObject { value: number; private constructor(); static create(props: HeatmapSegmentTotalDurationValueObjectProps): HeatmapSegmentTotalDurationValueObject; averageAcrossDateRange(start: Date, end: Date): number; } export interface HeatmapSegmentActivityCountValueObjectProps { value: number; } export declare class HeatmapSegmentActivityCountValueObject { value: number; private constructor(); static create(props: HeatmapSegmentActivityCountValueObjectProps): HeatmapSegmentActivityCountValueObject; averageAcrossDateRange(start: Date, end: Date): number; } export declare class HeatmapSegmentValueObject { value: number; interval: number; private constructor(); static create(props: HeatmapSegmentValueObjectProps): HeatmapSegmentValueObject; rotateHeatmapSegment(timezone: string): number; } export declare class HeatmapDomainEntity { heatmapSegment: HeatmapSegmentValueObject; userId: string; totalDuration: HeatmapSegmentTotalDurationValueObject; activityCount: HeatmapSegmentActivityCountValueObject; dayCount: number; private constructor(); static create(props: HeatmapDomainEntityProps): HeatmapDomainEntity; toJSON(): HeatmapDomainEntityProps; } export declare class HeatmapReforgeMapper { persistenceToDomain(record: HeatmapPersistenceRecord | HeatmapPersistenceAnalyticsRecord): HeatmapDomainEntity; static persistenceToDomain(record: HeatmapPersistenceRecord | HeatmapPersistenceAnalyticsRecord): HeatmapDomainEntity; persistenceToDomainV2(record: HeatmapPersistenceRecord | HeatmapPersistenceAnalyticsRecordV2): HeatmapDomainEntity; static persistenceToDomainV2(record: HeatmapPersistenceRecord | HeatmapPersistenceAnalyticsRecordV2): HeatmapDomainEntity; domainToInterface(entity: HeatmapDomainEntity): HeatmapDomainEntityProps; static domainToInterface(entity: HeatmapDomainEntity): HeatmapDomainEntityProps; interfaceToPresenter(entity: HeatmapDomainPresenterProps): HeatmapIntervalSegment; static interfaceToPresenter(entity: HeatmapDomainPresenterProps): HeatmapIntervalSegment; } //# sourceMappingURL=heatmap.mapper.d.ts.map