@UnstableApi
    default StreamMessage<T> timeout(Duration timeoutDuration) {
        return timeout(timeoutDuration, StreamTimeoutMode.UNTIL_NEXT);
    }
Configures a timeout for the stream based on the specified duration with
{@link StreamTimeoutMode#UNTIL_NEXT}. If no events are received within the specified duration,
the stream will be terminated with a {@link StreamTimeoutException}.

<p>Example usage:
<pre>{@code
StreamMessage<String> stream = ...;
// An item must be received within 10 seconds of the previous item to avoid a timeout.
StreamMessage<String> timeoutStream = stream.timeout(Duration.ofSeconds(10));
}</pre>

@param timeoutDuration the duration before a timeout occurs
@return a new {@link StreamMessage} with the specified timeout duration and default mode
core/src/main/java/com/linecorp/armeria/common/stream/StreamMessage.java