// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;
using OpenAI;

namespace OpenAI.LegacyCompletions
{
    internal partial class InternalCreateCompletionResponseChoiceLogprobs
    {
        private protected IDictionary<string, BinaryData> _additionalBinaryDataProperties;

        internal InternalCreateCompletionResponseChoiceLogprobs()
        {
            TextOffset = new ChangeTrackingList<int>();
            TokenLogprobs = new ChangeTrackingList<float>();
            Tokens = new ChangeTrackingList<string>();
            TopLogprobs = new ChangeTrackingList<IDictionary<string, float>>();
        }

        internal InternalCreateCompletionResponseChoiceLogprobs(IList<int> textOffset, IList<float> tokenLogprobs, IList<string> tokens, IList<IDictionary<string, float>> topLogprobs, IDictionary<string, BinaryData> additionalBinaryDataProperties)
        {
            TextOffset = textOffset;
            TokenLogprobs = tokenLogprobs;
            Tokens = tokens;
            TopLogprobs = topLogprobs;
            _additionalBinaryDataProperties = additionalBinaryDataProperties;
        }

        public IList<int> TextOffset { get; }

        public IList<float> TokenLogprobs { get; }

        public IList<string> Tokens { get; }

        public IList<IDictionary<string, float>> TopLogprobs { get; }

        internal IDictionary<string, BinaryData> SerializedAdditionalRawData
        {
            get => _additionalBinaryDataProperties;
            set => _additionalBinaryDataProperties = value;
        }
    }
}
