using System;
namespace StardewModdingAPI
{
/// Encapsulates access and changes to content being read from a data file.
public interface IContentEventHelper
{
/*********
** Accessors
*********/
/// The content's locale code, if the content is localised.
string Locale { get; }
/// The normalised asset name being read. The format may change between platforms; see to compare with a known path.
string AssetName { get; }
/// The content data being read.
object Data { get; }
/*********
** Public methods
*********/
/// Get whether the asset name being loaded matches a given name after normalisation.
/// The expected asset path, relative to the game's content folder and without the .xnb extension or locale suffix (like 'Data\ObjectInformation').
bool IsAssetName(string path);
/// Get a helper to manipulate the data as a dictionary.
/// The expected dictionary key.
/// The expected dictionary balue.
/// The content being read isn't a dictionary.
IContentEventHelperForDictionary AsDictionary();
/// Get a helper to manipulate the data as an image.
/// The content being read isn't an image.
IContentEventHelperForImage AsImage();
/// Get the data as a given type.
/// The expected data type.
/// The data can't be converted to .
TData GetData();
/// Replace the entire content value with the given value. This is generally not recommended, since it may break compatibility with other mods or different versions of the game.
/// The new content value.
/// The is null.
/// The 's type is not compatible with the loaded asset's type.
void ReplaceWith(object value);
}
}