using Microsoft.AspNetCore.Components.Forms; using Pldpro.Web.UI.Models; namespace Pldpro.Web.UI.Services; public interface IDocumentClient { Task> ListBucketsAsync(CancellationToken ct = default); Task<(IReadOnlyList Items, int Total)> SearchAsync( string bucket, string? query, string? pathPrefix, int page, int pageSize, CancellationToken ct = default); Task GetAsync(string bucket, string key, CancellationToken ct = default); Task UploadAsync(string bucket, string? pathPrefix, IBrowserFile file, long streamLimit, CancellationToken ct = default); Task DeleteAsync(string bucket, string key, CancellationToken ct = default); string GetDownloadUrl(string bucket, string key); }