namespace Gpt4All.Bindings;
///
/// Represents the interface exposed by the universal wrapper for GPT4All language models built around llmodel C-API.
///
public interface ILLModel : IDisposable
{
ModelType ModelType { get; }
ulong GetStateSizeBytes();
int GetThreadCount();
void SetThreadCount(int threadCount);
bool IsLoaded();
bool Load(string modelPath);
void Prompt(
string text,
LLModelPromptContext context,
Func? promptCallback = null,
Func? responseCallback = null,
Func? recalculateCallback = null,
CancellationToken cancellationToken = default);
unsafe ulong RestoreStateData(byte* destination);
unsafe ulong SaveStateData(byte* source);
}