package com.atlassian.labs.speakeasy.manager;
import com.atlassian.plugin.PluginArtifact;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
*
*/
public interface PluginTypeHandler
{
String canInstall(File uploadedFile);
PluginArtifact createArtifact(File uploadedFile);
File createExample(String pluginKey, String name, String description) throws IOException;
File createFork(String pluginKey, String forkPluginKey, String user, String description) throws IOException;
String getPluginFile(String pluginKey, String fileName) throws IOException;
File getPluginArtifact(String pluginKey) throws IOException;
List<String> getPluginFileNames(String pluginKey);
File getPluginAsProject(String pluginKey, Map<String, Object> context);
File rebuildPlugin(String pluginKey, String fileName, String contents) throws IOException;
}