using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Threading.Tasks; using Wabbajack.Common; namespace Compression.BSA { public interface IFile { /// /// The path of the file inside the archive /// RelativePath Path { get; } /// /// The uncompressed file size /// uint Size { get; } /// /// Get the metadata for the file. /// FileStateObject State { get; } /// /// Copies this entry to the given stream. 100% thread safe, the .bsa will be opened multiple times /// in order to maintain thread-safe access. /// /// ValueTask CopyDataTo(Stream output); void Dump(Action print); ValueTask GetStreamFactory(); } }