class Statsig::ConfigResult

def self.from_user_persisted_values(config_name, user_persisted_values)

def self.from_user_persisted_values(config_name, user_persisted_values)
  sticky_values = user_persisted_values[config_name]
  return nil if sticky_values.nil?
  from_hash(config_name, sticky_values)
end

def initialize(

def initialize(
  name:,
  gate_value: false,
  json_value: nil,
  rule_id: nil,
  secondary_exposures: [],
  config_delegate: nil,
  explicit_parameters: nil,
  is_experiment_group: false,
  evaluation_details: nil,
  group_name: nil,
  id_type: nil,
  target_app_ids: nil,
  disable_evaluation_details: false,
  disable_exposures: false,
  config_version: nil,
  include_local_overrides: true,
  forward_all_exposures: false,
  sampling_rate: nil,
  has_seen_analytical_gates: false
)
  @name = name
  @gate_value = gate_value
  @json_value = json_value
  @rule_id = rule_id
  @secondary_exposures = secondary_exposures
  @undelegated_sec_exps = @secondary_exposures
  @config_delegate = config_delegate
  @explicit_parameters = explicit_parameters
  @is_experiment_group = is_experiment_group
  @evaluation_details = evaluation_details
  @group_name = group_name
  @id_type = id_type
  @target_app_ids = target_app_ids
  @disable_evaluation_details = disable_evaluation_details
  @disable_exposures = disable_exposures
  @config_version = config_version
  @include_local_overrides = include_local_overrides
  @forward_all_exposures = forward_all_exposures
  @sampling_rate = sampling_rate
  @has_seen_analytical_gates = has_seen_analytical_gates
end

def to_hash

def to_hash
  {
    json_value: @json_value,
    gate_value: @gate_value,
    rule_id: @rule_id,
    secondary_exposures: @secondary_exposures,
    config_sync_time: @evaluation_details.config_sync_time,
    init_time: @init_time,
    group_name: @group_name,
    id_type: @id_type,
    target_app_ids: @target_app_ids
  }
end