// This file was auto-generated by Fern from our API Definition.

import type * as Vapi from "../index.js";

export interface Chat {
    /** This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. */
    assistantId?: string | undefined;
    /** This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. */
    assistant?: Vapi.CreateAssistantDto | undefined;
    /**
     * These are the variable values that will be used to replace template variables in the assistant messages.
     * Only variable substitution is supported in chat contexts - other assistant properties cannot be overridden.
     */
    assistantOverrides?: Vapi.AssistantOverrides | undefined;
    /** This is the squad that will be used for the chat. To use a transient squad, use `squad` instead. */
    squadId?: string | undefined;
    /** This is the squad that will be used for the chat. To use an existing squad, use `squadId` instead. */
    squad?: Vapi.CreateSquadDto | undefined;
    /** This is the name of the chat. This is just for your own reference. */
    name?: string | undefined;
    /**
     * This is the ID of the session that will be used for the chat.
     * Mutually exclusive with previousChatId.
     */
    sessionId?: string | undefined;
    /**
     * This is the input text for the chat.
     * Can be a string or an array of chat messages.
     */
    input?: Vapi.ChatInput | undefined;
    /**
     * This is a flag that determines whether the response should be streamed.
     * When true, the response will be sent as chunks of text.
     */
    stream?: boolean | undefined;
    /**
     * This is the ID of the chat that will be used as context for the new chat.
     * The messages from the previous chat will be used as context.
     * Mutually exclusive with sessionId.
     */
    previousChatId?: string | undefined;
    /** This is the unique identifier for the chat. */
    id: string;
    /** This is the unique identifier for the org that this chat belongs to. */
    orgId: string;
    /**
     * This is an array of messages used as context for the chat.
     * Used to provide message history for multi-turn conversations.
     */
    messages?: Vapi.ChatMessagesItem[] | undefined;
    /** This is the output messages generated by the system in response to the input. */
    output?: Vapi.ChatOutputItem[] | undefined;
    /** This is the ISO 8601 date-time string of when the chat was created. */
    createdAt: string;
    /** This is the ISO 8601 date-time string of when the chat was last updated. */
    updatedAt: string;
    /** These are the costs of individual components of the chat in USD. */
    costs?: Vapi.ChatCostsItem[] | undefined;
    /** This is the cost of the chat in USD. */
    cost?: number | undefined;
}
