-record(feature_provider, { initialize :: fun((openfeature@evaluation_context:evaluation_context()) -> {ok, nil} | {error, nil}), shutdown :: fun(() -> nil), get_metadata :: fun(() -> openfeature@provider:metadata()), resolve_bool_evaluation :: fun((binary(), boolean(), openfeature@evaluation_context:evaluation_context()) -> openfeature@evaluation:resolution_details(boolean())), resolve_string_evaluation :: fun((binary(), binary(), openfeature@evaluation_context:evaluation_context()) -> openfeature@evaluation:resolution_details(binary())), resolve_int_evaluation :: fun((binary(), integer(), openfeature@evaluation_context:evaluation_context()) -> openfeature@evaluation:resolution_details(integer())), resolve_float_evaluation :: fun((binary(), float(), openfeature@evaluation_context:evaluation_context()) -> openfeature@evaluation:resolution_details(float())), resolve_dynamic_evaluation :: fun((binary(), gleam@dynamic:dynamic_(), openfeature@evaluation_context:evaluation_context()) -> openfeature@evaluation:resolution_details(gleam@dynamic:dynamic_())) }).