import 'zone.js';
import { SideCarLoadBalance } from "./MsLoadBalanceUtils";
export declare class GrayUtils {
    private envGrayConfigCache;
    private grayTargetCache;
    private updateCachePeriod;
    constructor();
    /**
    * 定时更新缓存
    * @param period 执行周期 毫秒
    */
    private scheduleAtUpdateCache;
    /**
        * 从Zone 中获取灰度标签
        * @param headers
        */
    static getGrayLabel(): any;
    grayHandle(msBalance: SideCarLoadBalance | undefined): Promise<SideCarLoadBalance | undefined>;
    private getGrayProjectConfig;
    private isSideCarBalance;
    private parseMinorVersion;
    /**
     * 判断是否需要灰度
     *
     * @param grayConfig     灰度配置
     * @param versionGrayKey stc.ms.UserAdmin_1.2
     * @return
     */
    private hasNeedGray;
    /**
     * 查找当前时间匹配的灰度步进规则
     *
     * @param grayConfig
     * @return
     */
    private findGrayRule;
    /**
   * 更新缓存
   */
    updateCache(): Promise<void>;
    private updateEnvGrayCache;
    private updateTargetCache;
    private getGrayMsTarget;
    /**
    * 获取灰度服务主机列表
    *
    * @param grayVersionKey
    * @return
    */
    private loadGrayMsTarget;
    private loadEnvGrayConfig;
}
