-import type { IncomingRequestCommand, RequestCommand } from './internal';
-import type { CircularArray } from '../utils';
-import type { WorkerData } from '../worker';
+import type { CircularBuffer } from 'mnemonist'
-export type TimeSeries = {
- timestamp: number;
- value: number;
-};
+import type { WorkerData } from '../worker/index.js'
+import type { IncomingRequestCommand, RequestCommand } from './ocpp/Requests.js'
-type StatisticsData = {
- countRequest: number;
- countResponse: number;
- countError: number;
- countTimeMeasurement: number;
- timeMeasurementSeries: CircularArray<TimeSeries>;
- currentTimeMeasurement: number;
- minTimeMeasurement: number;
- maxTimeMeasurement: number;
- totalTimeMeasurement: number;
- avgTimeMeasurement: number;
- medTimeMeasurement: number;
- ninetyFiveThPercentileTimeMeasurement: number;
- stdDevTimeMeasurement: number;
-};
+export interface TimestampedData {
+ timestamp: number
+ value: number
+}
-export type Statistics = {
- id: string;
- name: string;
- uri: string;
- createdAt: Date;
- updatedAt?: Date;
- statisticsData: Map<string | RequestCommand | IncomingRequestCommand, Partial<StatisticsData>>;
-} & WorkerData;
+export type StatisticsData = Partial<{
+ requestCount: number
+ responseCount: number
+ errorCount: number
+ timeMeasurementCount: number
+ measurementTimeSeries: CircularBuffer<TimestampedData> | TimestampedData[]
+ currentTimeMeasurement: number
+ minTimeMeasurement: number
+ maxTimeMeasurement: number
+ totalTimeMeasurement: number
+ avgTimeMeasurement: number
+ medTimeMeasurement: number
+ ninetyFiveThPercentileTimeMeasurement: number
+ stdDevTimeMeasurement: number
+}>
+
+export interface Statistics extends WorkerData {
+ id: string
+ name: string
+ uri: string
+ createdAt: Date
+ updatedAt?: Date
+ statisticsData: Map<string | RequestCommand | IncomingRequestCommand, StatisticsData>
+}
+
+export interface TemplateStatistics {
+ configured: number
+ provisioned: number
+ added: number
+ started: number
+ indexes: Set<number>
+}