import ConnectionCode from "./ConnectionCode";
import WebSite from "./Website";
import Exploration from "./Exploration";
import { CheckList } from "./CheckList";
import Session from "./Session";
import AifexPluginInfo from "./AifexPluginInfo";
import ChecklistEvaluation from "./ChecklistEvaluation";

export default interface AifexService {
	getSession(webSiteId: string): Promise<Session> ;

	getWebSite(webSiteId: string): Promise<WebSite> ;

	getProbabilityMap(
		connectionCode: ConnectionCode,
		exploration: Exploration
	): Promise<Map<string, number>> ;

	addExploration(
		connectionCode: ConnectionCode,
		testerName: string,
		exploration: Exploration
	): Promise<any> ;

	getCommentList(connectionCode: ConnectionCode, exploration: Exploration): Promise<any> ;

	addScreenshotList(connectionCode: ConnectionCode, explorationNumber, list): Promise<any> ;
	
	addVideo(connectionCode: ConnectionCode, explorationNumber:number, video:Blob): Promise<any> ;
    
	getPluginInfo(): Promise<AifexPluginInfo> ;

	evaluateSequence(connectionCode: ConnectionCode, exploration: Exploration): Promise<ChecklistEvaluation>;

	getObjectiveCheckList(connectionCode: ConnectionCode): Promise<CheckList>;

}