using Automata.Core; using Automata.Screen; namespace Automata.Inventory; public interface IInventoryManager { event Action? Updated; InventoryTracker Tracker { get; } byte[]? LastScreenshot { get; } bool IsAtOwnHideout { get; } string SellerAccount { get; } void SetLocation(bool atHome, string? seller = null); Task ScanInventory(PostAction defaultAction = PostAction.Stash); Task SnapshotInventory(); Task ClearToStash(); Task EnsureAtOwnHideout(); Task ProcessInventory(); Task WaitForAreaTransition(int timeoutMs, Func? triggerAction = null); Task<(int X, int Y)?> FindAndClickNameplate(string name, int maxRetries = 3, int retryDelayMs = 1000, System.Drawing.Rectangle? scanRegion = null, string? savePath = null); Task DepositItemsToStash(List items); Task DepositAllToOpenStash(); Task SalvageItems(List items); Task IdentifyItems(); (bool[,] Grid, List Items, int Free) GetInventoryState(); Task ClickStashTab(StashTabInfo tab, StashTabInfo? parentFolder = null); void ResetStashTabState(); Task GrabItemsFromStash(string layoutName, int maxItems, string? templatePath = null); }