import { BillingDataRow, CloudConstantsEmissionsFactors } from '.'; import { GroupBy, TagCollection } from '@cloud-carbon-footprint/common'; export default interface FootprintEstimate { timestamp: Date; kilowattHours: number; co2e: number; usesAverageCPUConstant?: boolean; } export declare type KilowattHourTotals = { usageAmount?: number; cost?: number; kilowattHours: number; }; export declare type KilowattHoursByServiceAndUsageUnit = { [key: string]: { [key: string]: KilowattHourTotals; }; }; export declare enum AccumulateKilowattHoursBy { COST = "cost", USAGE_AMOUNT = "usageAmount" } export declare const aggregateEstimatesByDay: (estimates: FootprintEstimate[]) => { [date: string]: FootprintEstimate; }; export interface MutableEstimationResult { timestamp: Date; serviceEstimates: MutableServiceEstimate[]; periodStartDate: Date; periodEndDate: Date; groupBy: GroupBy; } export interface MutableServiceEstimate { cloudProvider: string; accountId: string; accountName: string; serviceName: string; kilowattHours: number; co2e: number; cost: number; region: string; usesAverageCPUConstant: boolean; tags?: TagCollection; } export declare const accumulateKilowattHours: (kilowattHoursByServiceAndUsageUnit: KilowattHoursByServiceAndUsageUnit, billingDataRow: BillingDataRow, kilowattHours: number, accumulateBy: AccumulateKilowattHoursBy) => void; export declare const appendOrAccumulateEstimatesByDay: (results: MutableEstimationResult[], rowData: BillingDataRow, footprintEstimate: FootprintEstimate, grouping: GroupBy, tagNames: string[]) => void; export declare function getWattsByAverageOrMedian(computeProcessors: string[], wattsForProcessors: number[]): number; export declare function getAverage(nums: number[]): number; export declare function estimateCo2(estimatedKilowattHours: number, region: string, emissionsFactors: CloudConstantsEmissionsFactors): number; export declare function estimateKwh(estimatedCo2e: number, region: string, emissionsFactors: CloudConstantsEmissionsFactors, replicationFactor?: number): number;