using Poe2Trade.Core; namespace Poe2Trade.Screen; public interface IScreenReader : IDisposable { GridReader Grid { get; } Task Warmup(); Task CaptureScreen(); Task CaptureRegion(Region region); Task Ocr(Region? region = null, string? preprocess = null); Task<(int X, int Y)?> FindTextOnScreen(string searchText, bool fuzzy = false); Task ReadFullScreen(); Task<(int X, int Y)?> FindTextInRegion(Region region, string searchText); Task ReadRegionText(Region region); Task CheckForText(Region region, string searchText); Task Snapshot(); Task DiffOcr(string? savePath = null, Region? region = null); Task TemplateMatch(string templatePath, Region? region = null); Task> TemplateMatchAll(string templatePath, Region? region = null, double threshold = 0.7); Task NameplateDiffOcr(System.Drawing.Bitmap reference, System.Drawing.Bitmap current); void SetLootBaseline(System.Drawing.Bitmap frame); List DetectLootLabels(System.Drawing.Bitmap reference, System.Drawing.Bitmap current); System.Drawing.Bitmap CaptureRawBitmap(); Task SaveScreenshot(string path); Task SaveRegion(Region region, string path); }