import { TConstructor } from '../types';
/**
 * Singleton injector holds all singleton instance.
 */
declare abstract class GlobalInjector {
    private static readonly injector;
    /**
     * Get target instance from injector by providing provider.
     *
     * @param {{new(...args): T}} Provider
     * @return {T}
     */
    static get<T>(Provider: new (...args: any[]) => T): T;
    /**
     * Register target as singleton provider into global injector.
     *
     * @param Providers
     */
    static addSingleton(...Providers: TConstructor[]): void;
    /**
     * Register target as transient provider into global injector.
     *
     * @param Providers
     */
    static addTransient(...Providers: TConstructor[]): void;
    /**
     * Check whether injector has registered this provider.
     *
     * @param Provider
     */
    static has(Provider: TConstructor): boolean;
}
export { GlobalInjector };
