using System.Threading; using Svrnty.CQRS.Events.Abstractions.Configuration; using System.Threading.Tasks; namespace Svrnty.CQRS.Events.Abstractions.Streaming; /// /// Provides effective stream configuration by merging stream-specific and global settings. /// public interface IStreamConfigurationProvider { /// /// Gets the effective configuration for a stream (stream-specific merged with global defaults). /// /// The name of the stream. /// Cancellation token. /// The effective stream configuration. Task GetEffectiveConfigurationAsync( string streamName, CancellationToken cancellationToken = default); /// /// Gets the retention policy for a stream. /// /// The name of the stream. /// Cancellation token. /// The retention configuration if configured; otherwise null. Task GetRetentionConfigurationAsync( string streamName, CancellationToken cancellationToken = default); /// /// Gets the DLQ configuration for a stream. /// /// The name of the stream. /// Cancellation token. /// The DLQ configuration if configured; otherwise null. Task GetDeadLetterQueueConfigurationAsync( string streamName, CancellationToken cancellationToken = default); /// /// Gets the lifecycle configuration for a stream. /// /// The name of the stream. /// Cancellation token. /// The lifecycle configuration if configured; otherwise null. Task GetLifecycleConfigurationAsync( string streamName, CancellationToken cancellationToken = default); }