import { Repository } from 'typeorm'; import { EnergySourceType } from '../energy.constants'; import { EnergyDeltaEntity } from '../entities/energy-delta.entity'; export interface EnergySummary { totalConsumptionKwh: number; totalProductionKwh: number; totalGridImportKwh: number; totalGridExportKwh: number; hasGridMetrics: boolean; lastUpdatedAt: string | null; } export interface EnergyDeltaRow { intervalStart: string; intervalEnd: string; consumptionDeltaKwh: number; productionDeltaKwh: number; gridImportDeltaKwh: number; gridExportDeltaKwh: number; } export interface SpaceEnergySummary { totalConsumptionKwh: number; totalProductionKwh: number; totalGridImportKwh: number; totalGridExportKwh: number; netKwh: number; netGridKwh: number; hasGridMetrics: boolean; lastUpdatedAt: string | null; } export interface TimeseriesPoint { intervalStart: string; intervalEnd: string; consumptionDeltaKwh: number; productionDeltaKwh: number; gridImportDeltaKwh: number; gridExportDeltaKwh: number; } export interface BreakdownItem { deviceId: string; deviceName: string; roomId: string | null; roomName: string | null; consumptionKwh: number; } export declare class EnergyDataService { private readonly deltaRepository; private readonly logger; constructor(deltaRepository: Repository); saveDelta(params: { deviceId: string; roomId: string | null; sourceType: EnergySourceType; deltaKwh: number; intervalStart: Date; intervalEnd: Date; }): Promise; getSummary(rangeStart: Date, rangeEnd: Date, roomId?: string): Promise; getDeltas(rangeStart: Date, rangeEnd: Date, roomId?: string): Promise; getSpaceSummary(rangeStart: Date, rangeEnd: Date, spaceId?: string): Promise; getSpaceTimeseries(rangeStart: Date, rangeEnd: Date, interval: string, spaceId?: string): Promise; getSpaceBreakdown(rangeStart: Date, rangeEnd: Date, spaceId?: string, limit?: number): Promise; private formatBucketKey; }