#pragma once

#include <functional>
#include <string>
#include <unordered_map>

namespace ta::foundation::serialization::json
{
    using StringMap = std::unordered_map<std::string, std::string>;
    using LocaleContainerPredicate = std::function<bool(const std::string&)>;

    bool parse_flat_object(const std::string& text, StringMap& out);

    bool parse_flattened_object(const std::string& text,
                                StringMap& out,
                                const LocaleContainerPredicate& is_locale_container = {});
}
