lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
23 lines (22 loc) • 997 B
TypeScript
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;
}