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