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(); /// /// Gets what the provider said 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. /// /// Unlike content and sources, there is no separate check for whether a line carries it. This /// never fails on a line without one, and whether the answer means anything is what IsKnown of /// the returned usage says. /// /// The usage, or TokenUsage.UNKNOWN when the line carries none. public TokenUsage GetUsage() => TokenUsage.UNKNOWN; }