using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;

namespace Adaptation.Shared.Methods;

public interface IFileRead : Properties.IFileRead
{

    void WaitForThread();
    JsonProperty[] GetDefault();
    string GetEventDescription();
    List<string> GetHeaderNames();
    void CheckTests(Test[] tests, bool extra);
    Dictionary<string, string> GetDisplayNamesJsonElement();
    Tuple<string, Test[], JsonElement[], List<FileInfo>> ReExtract();
    List<IDescription> GetDescriptions(IFileRead fileRead, List<Test> tests, IProcessData processData);
    void Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception = null);
    Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, string eventName);
    string[] Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, string to, string from, string resolvedFileLocation, Exception exception);

}