import { NestContainer } from '@nestjs/core';
import { INestApplication } from '@nestjs/common';
import { IBoot, IConfig, IService, ILoadbalance, IProxy, IMemcached, IComponent, IEtcd, IKubernetes } from '@nestcloud/common';
import * as Consul from 'consul';
import { AxiosInstance, AxiosRequestConfig } from 'axios';
export declare class Global {
    private readonly callbackMap;
    /**
     * Nest Application
     */
    private _app;
    /**
     * NestCloud Components
     */
    private _boot;
    private _consul;
    private _config;
    private _service;
    private _loadbalance;
    private _proxy;
    private _memcached;
    private _etcd;
    private _kubernetes;
    /**
     * Global Http Client
     */
    private _axios;
    get app(): INestApplication;
    set app(app: INestApplication);
    get boot(): IBoot;
    set boot(boot: IBoot);
    get consul(): Consul;
    set consul(consul: Consul);
    get consulConfig(): IConfig;
    set consulConfig(config: IConfig);
    get consulService(): IService;
    set consulService(consulService: IService);
    get loadbalance(): ILoadbalance;
    set loadbalance(loadbalance: ILoadbalance);
    get proxy(): IProxy;
    set proxy(proxy: IProxy);
    get memcached(): IMemcached;
    set memcached(memcached: IMemcached);
    get axios(): AxiosInstance;
    set axiosConfig(axiosConfig: AxiosRequestConfig);
    get etcd(): IEtcd;
    set etcd(etcd: IEtcd);
    get kubernetes(): IKubernetes;
    set kubernetes(kubernetes: IKubernetes);
    watch<T extends IComponent>(component: string, callback: (component: T) => void): void;
    getContainer(): NestContainer;
    private trigger;
}
