lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
18 lines (17 loc) • 821 B
TypeScript
import { IDIService } from "./IDIService";
import { CancelationTokenSource } from './CancelationTokenSource';
import { ILoggerService } from './Services/Logging/ILoggerService';
export declare class DependencyContainer {
private static _instance;
private _services;
private _serviceRegistrationEvent;
static Log?: ILoggerService;
static IsInitialized: boolean;
private static _debugCalls;
set DebugCalls(value: boolean);
static get Instance(): DependencyContainer;
RegisterService(service: IDIService): void;
GetService<T extends IDIService>(serviceName: string): T;
GetServiceAsync<T extends IDIService>(serviceName: string, token?: CancelationTokenSource): Promise<T>;
GetServiceWithTimeoutAsync<T extends IDIService>(serviceName: string, timeout: number): Promise<T>;
}