import { AnyEnvironment, Communication, IRunOptions, MultiCounter } from '@dazl/engine-core'; import { IDisposable, SetMultiMap } from '@dazl/patterns'; import { ConnectionHandlers, IdentityExtractor } from './ws-node-host.js'; import { ILaunchHttpServerOptions } from './launch-http-server.js'; import { type PerformanceMetrics } from './metrics-utils.js'; export interface RunningNodeEnvironment { id: string; dispose(): Promise; getMetrics(): Promise; activate?(value?: unknown): Promise; } export interface NodeEnvConfig extends Pick { envType: AnyEnvironment['envType'] | 'remote'; remoteUrl?: string; } export type NodeEnvsFeatureMapping = { featureToEnvironments: Record; availableEnvironments: Record; }; export declare class NodeEnvManager implements IDisposable { private importMeta; private featureEnvironmentsMapping; private disposables; isDisposed: () => boolean; dispose: () => Promise; envInstanceIdCounter: MultiCounter; id: string; openEnvironments: SetMultiMap; constructor(importMeta: { url: string; }, featureEnvironmentsMapping: NodeEnvsFeatureMapping); autoLaunch(runtimeOptions: Map, { connectionHandlers, identityExtractor, ...serverOptions }?: ILaunchHttpServerOptions & { connectionHandlers?: ConnectionHandlers; identityExtractor?: IdentityExtractor; }, lazy?: boolean): Promise<{ port: number; }>; activateEnvs(value?: unknown): Promise; closeAll(): Promise; private closeEnv; private runFeatureEnvironments; private createEnvironmentFileUrl; initializeEnvironment(envName: string, runtimeOptions: IRunOptions, forwardingCom: Communication, verbose: boolean): Promise; collectMetricsFromAllOpenEnvironments(): Promise<{ marks: PerformanceEntry[]; measures: PerformanceEntry[]; }>; } export declare function parseRuntimeOptions(): Map; //# sourceMappingURL=node-env-manager.d.ts.map