using AnthropicClient.Models; namespace AnthropicClient; /// /// Represents a client for interacting with the Anthropic API. /// public interface IAnthropicApiClient { /// /// Creates a message asynchronously. /// /// The message request to create. /// A task that represents the asynchronous operation. The task result contains the response as an . Task> CreateMessageAsync(MessageRequest request); /// /// Creates a message asynchronously and streams the response. /// /// The message request to create. /// An asynchronous enumerable that yields the response event by event. IAsyncEnumerable CreateMessageAsync(StreamMessageRequest request); /// /// Creates a batch of messages asynchronously. /// /// The message batch request to create. /// A task that represents the asynchronous operation. The task result contains the response as an where T is . Task> CreateMessageBatchAsync(MessageBatchRequest request); /// /// Gets a message batch asynchronously. /// /// The ID of the message batch to get. /// A task that represents the asynchronous operation. The task result contains the response as an where T is . Task> GetMessageBatchAsync(string batchId); /// /// Lists the message batches asynchronously. /// /// The paging request to use for listing the message batches. /// A task that represents the asynchronous operation. The task result contains the response as an where T is where T is . Task>> ListMessageBatchesAsync(PagingRequest? request = null); /// /// Lists all message batches asynchronously. /// /// The maximum number of message batches to return in each page. /// An asynchronous enumerable that yields the response as an where T is where T is . IAsyncEnumerable>> ListAllMessageBatchesAsync(int limit = 20); /// /// Cancels a message batch asynchronously. /// /// The ID of the message batch to cancel. /// A task that represents the asynchronous operation. The task result contains the response as an where T is . Task> CancelMessageBatchAsync(string batchId); /// /// Deletes a message batch asynchronously. /// /// The ID of the message batch to delete. /// A task that represents the asynchronous operation. The task result contains the response as an where T is . Task> DeleteMessageBatchAsync(string batchId); /// /// Gets the results of a message batch asynchronously. /// /// The ID of the message batch to get the results for. /// A task that represents the asynchronous operation. The task result contains the response as an where T is where T is . Task>> GetMessageBatchResultsAsync(string batchId); /// /// Counts the tokens in a message asynchronously. /// /// The count message tokens request. /// A task that represents the asynchronous operation. The task result contains the response as an where T is . Task> CountMessageTokensAsync(CountMessageTokensRequest request); /// /// Lists the models asynchronously. /// /// The paging request to use for listing the models. /// A task that represents the asynchronous operation. The task result contains the response as an where T is where T is . Task>> ListModelsAsync(PagingRequest? request = null); /// /// Lists the models asynchronously /// /// The maximum number of models to return in each page. /// An asynchronous enumerable that yields the response as an where T is where T is . /// IAsyncEnumerable>> ListAllModelsAsync(int limit = 20); /// /// Gets a model by its ID asynchronously. /// /// The ID of the model to get. /// A task that represents the asynchronous operation. The task result contains the response as an where T is . Task> GetModelAsync(string modelId); }