using System;
using System.Collections.Generic;
using System.Reflection;
using StardewModdingAPI.Utilities;
namespace SMAPI.Tests.ModApiConsumer.Interfaces
{
/// A mod-provided API which provides basic events, properties, and methods.
public interface ISimpleApi
{
/*********
** Test interface
*********/
/****
** Events
****/
/// A simple event field.
event EventHandler OnEventRaised;
/// A simple event property with custom add/remove logic.
event EventHandler OnEventRaisedProperty;
/****
** Properties
****/
/// A simple numeric property.
int NumberProperty { get; set; }
/// A simple object property.
object ObjectProperty { get; set; }
/// A simple list property.
List ListProperty { get; set; }
/// A simple list property with an interface.
IList ListPropertyWithInterface { get; set; }
/// A property with nested generics.
IDictionary> GenericsProperty { get; set; }
/// A property using an enum available to both mods.
BindingFlags EnumProperty { get; set; }
/// A read-only property.
int GetterProperty { get; }
/****
** Methods
****/
/// A simple method with no return value.
void GetNothing();
/// A simple method which returns a number.
int GetInt(int value);
/// A simple method which returns an object.
object GetObject(object value);
/// A simple method which returns a list.
List GetList(string value);
/// A simple method which returns a list with an interface.
IList GetListWithInterface(string value);
/// A simple method which returns nested generics.
IDictionary> GetGenerics(string key, string value);
/// A simple method which returns a lambda.
Func GetLambda(Func value);
/// A simple method which returns out parameters.
bool TryGetOutParameter(int inputNumber, out int outNumber, out string outString, out PerScreen outReference, out IDictionary> outComplexType);
/****
** Inherited members
****/
/// A property inherited from a base class.
public string InheritedProperty { get; set; }
}
}