// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;
using System.Linq;

namespace OpenAI.Chat
{
    internal partial class InternalChatCompletionResponseMessage
    {
        internal IDictionary<string, BinaryData> SerializedAdditionalRawData { get; set; }
        internal InternalChatCompletionResponseMessage(IEnumerable<ChatMessageContentPart> content, string refusal)
        {
            Content = content?.ToList();
            Refusal = refusal;
            ToolCalls = new ChangeTrackingList<ChatToolCall>();
        }

        internal InternalChatCompletionResponseMessage(IReadOnlyList<ChatMessageContentPart> content, string refusal, IReadOnlyList<ChatToolCall> toolCalls, ChatMessageRole role, ChatFunctionCall functionCall, IDictionary<string, BinaryData> serializedAdditionalRawData)
        {
            Content = content;
            Refusal = refusal;
            ToolCalls = toolCalls;
            Role = role;
            FunctionCall = functionCall;
            SerializedAdditionalRawData = serializedAdditionalRawData;
        }

        internal InternalChatCompletionResponseMessage()
        {
        }
        public string Refusal { get; }
        public IReadOnlyList<ChatToolCall> ToolCalls { get; }
    }
}
