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>;
}
