using ComLight;
using System.ComponentModel;
namespace Whisper
{
/// A model in VRAM, loaded from GGML file.
/// This object doesn't keep any mutable state, and can be safely used from multiple threads concurrently
[ComInterface( "abefb4c9-e8d8-46a3-8747-5afbadef1adb", eMarshalDirection.ToManaged ), CustomConventions( typeof( Internal.NativeLogger ) )]
public interface iModel: IDisposable
{
/// Create a context to transcribe audio with this model
/// Don't call this method, use instead.
[RetValIndex, EditorBrowsable( EditorBrowsableState.Never )]
Internal.iContext createContextInternal();
/// True if this model is multi-lingual
bool isMultilingual();
/// Retrieve integer IDs of the special tokens defined by the model
[RetValIndex]
SpecialTokens getSpecialTokens();
/// Try to resolve integer token ID into string.
/// Don't call this method, use instead.
IntPtr stringFromTokenInternal( int id );
}
}