UNPKG

lavva.exalushome

Version:

Library implementing communication and abstraction layers for ExalusHome system

23 lines (22 loc) 997 B
import { ILoggerService } from './Services/Logging/ILoggerService'; import { CancelationTokenSource } from './CancelationTokenSource'; import { IDIService } from './IDIService'; export declare class DependencyContainer { private constructor(); private _services; private _serviceRegistrationEvent; private _pendingResolutions; private _nextResolutionId; static readonly ServiceName = "DependencyContainer"; static Log?: ILoggerService; static IsInitialized: boolean; private static get Timers(); static get Instance(): DependencyContainer; RegisterService(srv: IDIService): void; GetService<T extends IDIService>(name: string): T; GetServiceAsync<T extends IDIService>(name: string, token?: CancelationTokenSource): Promise<T>; GetServiceWithTimeoutAsync<T extends IDIService>(name: string, timeout: number): Promise<T>; private CreatePendingResolution; private TryCompleteResolution; private GetRegisteredServiceNamesForLogs; }