using System; using System.Data; using System.Data.Common; using System.Threading; using System.Threading.Tasks; namespace PluralKit.Core { public interface IPKCommand: IDbCommand, IAsyncDisposable { public Task PrepareAsync(CancellationToken ct = default); public Task<int> ExecuteNonQueryAsync(CancellationToken ct = default); public Task<object?> ExecuteScalarAsync(CancellationToken ct = default); public Task<DbDataReader> ExecuteReaderAsync(CancellationToken ct = default); public Task<DbDataReader> ExecuteReaderAsync(CommandBehavior behavior, CancellationToken ct = default); } }