namespace BotSharp.Abstraction.Files; public interface IBotSharpFileService { string GetDirectory(string conversationId); IEnumerable GetChatImages(string conversationId, string source, List conversations, int? offset = null); IEnumerable GetMessageFiles(string conversationId, IEnumerable messageIds, string source, bool imageOnly = false); string GetMessageFile(string conversationId, string messageId, string source, string index, string fileName); bool HasConversationUserFiles(string conversationId); bool SaveMessageFiles(string conversationId, string messageId, string source, List files); string GetUserAvatar(); bool SaveUserAvatar(BotSharpFile file); /// /// Delete files under messages /// /// Conversation Id /// Files in these messages will be deleted /// The starting message to delete /// If not null, delete messages while input a new message; otherwise, delete messages only /// bool DeleteMessageFiles(string conversationId, IEnumerable messageIds, string targetMessageId, string? newMessageId = null); bool DeleteConversationFiles(IEnumerable conversationIds); /// /// Get file bytes and content type from data, e.g., "data:image/png;base64,aaaaaaaaa" /// /// /// (string, byte[]) GetFileInfoFromData(string data); }