#pragma once

#include <balancer/kernel/process_common/main_options.h>

#include <library/cpp/config/config.h>

#include <util/generic/fwd.h>

namespace NBalancerServer {
    struct TServerOptions;
    struct TMainTaskOptions;

    struct TBalancerInstanceConfig {
    public:
        explicit TBalancerInstanceConfig(const TMainTaskOptions& options);
    public:
        TString LuaInstanceConfig;
        NConfig::TGlobals Globals;
        NSrvKernel::TMainOptions MainOptions;
    };

    struct TBalancerRootConfig {
    public:
        explicit TBalancerRootConfig(const TServerOptions& options);
    public:
        TString LuaRootConfig;
        NConfig::TGlobals Globals;
    private:
        const size_t Id_ = 0;
    };
}
