using AIStudio.Chat;
namespace AIStudio.Tools.Media;
///
/// Persists a completed media transcript for a feature-specific owner.
///
public interface IMediaTranscriptStorage
{
///
/// Determines whether this storage handles the specified media-import owner.
///
/// The feature-specific media-import owner.
/// when the transcript can be stored.
bool CanStore(MediaImportOwner owner);
///
/// Persists a completed transcript and returns the attachment exposed to the calling workflow.
///
/// The stable media-import target.
/// The original media path.
/// The completed transcript text.
/// The cancellation token.
/// The attachment representing the persisted transcript.
Task StoreAsync(
MediaImportTarget target,
string originalMediaPath,
string transcript,
CancellationToken token);
}