namespace PKHeX.Core;
///
/// Plugin interface used by an editor to notify third-party code providers.
///
public interface IPlugin
{
///
/// Plugin Name.
///
string Name { get; }
///
/// Plugin Loading Priority (lowest is initialized first).
///
int Priority { get; }
///
/// Entry point for the parent to initialize the plugin with provided arguments.
///
/// Arguments containing objects useful for initializing the plugin.
void Initialize(params object[] args);
///
/// Notifies the plugin that a save file was just loaded.
///
void NotifySaveLoaded();
///
/// Notifies the plugin that the display language has changed.
///
/// Short code for language name
/// Useful to translate controls if any added.
void NotifyDisplayLanguageChanged(string language) { }
///
/// Attempts to load a file using the plugin.
///
/// Path to file to be loaded.
/// True if the plugin has handled the file.
bool TryLoadFile(string filePath);
///
/// Retrieves the object which can provide a .
///
ISaveFileProvider SaveFileEditor { get; }
}