import type { ListenOptions } from 'node:net';
+import type { ResourceLimits } from 'node:worker_threads';
import type { WorkerChoiceStrategy } from 'poolifier';
type ServerOptions = ListenOptions;
+export enum ConfigurationSection {
+ log = 'log',
+ performanceStorage = 'performanceStorage',
+ worker = 'worker',
+ uiServer = 'uiServer',
+}
+
export enum SupervisionUrlDistribution {
ROUND_ROBIN = 'round-robin',
RANDOM = 'random',
maxSize?: string | number;
}
+export enum ApplicationProtocolVersion {
+ VERSION_11 = 1.1,
+ VERSION_20 = 2.0,
+}
+
export interface UIServerConfiguration {
enabled?: boolean;
type?: ApplicationProtocol;
+ version?: ApplicationProtocolVersion;
options?: ServerOptions;
authentication?: {
enabled: boolean;
uri?: string;
}
+export type ElementsPerWorkerType = number | 'auto' | 'all';
+
export interface WorkerConfiguration {
processType?: WorkerProcessType;
startDelay?: number;
- elementsPerWorker?: number | 'auto';
+ elementsPerWorker?: ElementsPerWorkerType;
elementStartDelay?: number;
poolMinSize?: number;
poolMaxSize?: number;
- /** @deprecated Not publicly exposed to end users. */
- poolStrategy?: WorkerChoiceStrategy;
+ resourceLimits?: ResourceLimits;
}
export interface ConfigurationData {
worker?: WorkerConfiguration;
uiServer?: UIServerConfiguration;
performanceStorage?: StorageConfiguration;
+ /** @deprecated Moved to charging station template */
autoReconnectMaxRetries?: number;
/** @deprecated Moved to worker configuration section. */
workerProcess?: WorkerProcessType;