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