namespace AIStudio.Provider; /// /// A contract for a streamed response line that may contain content and annotations. /// public interface IResponseStreamLine : IAnnotationStreamLine { /// /// Checks if the response line contains any content. /// /// True when the response line contains content, false otherwise. public bool ContainsContent(); /// /// Gets the content of the response line. /// /// The content of the response line. public ContentStreamChunk GetContent(); /// /// Checks whether the response line states what the request cost. /// /// /// Answered here for every wire format which says nothing about it, which is most of them: a /// provider who reports no usage is the normal case, not a gap somebody has to fill in. /// /// True when the response line carries a token usage, false otherwise. public bool ContainsUsage() => false; /// /// Gets what the provider said the request cost. /// /// The usage, or TokenUsage.UNKNOWN when the line carries none. public TokenUsage GetUsage() => TokenUsage.UNKNOWN; }