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

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

export interface ServerMessageResponseAssistantRequest {
    /**
     * This is the destination to transfer the inbound call to. This will immediately transfer without using any assistants.
     *
     * If this is sent, `assistantId`, `assistant`, `squadId`, and `squad` are ignored.
     */
    destination?: Vapi.ServerMessageResponseAssistantRequestDestination | undefined;
    /**
     * This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead.
     *
     * To start a call with:
     * - Assistant, use `assistantId` or `assistant`
     * - Squad, use `squadId` or `squad`
     * - Workflow, use `workflowId` or `workflow`
     */
    assistantId?: string | undefined;
    /**
     * This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant`
     * - Squad, use `squad`
     * - Workflow, use `workflow`
     */
    assistant?: Vapi.CreateAssistantDto | undefined;
    /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */
    assistantOverrides?: Vapi.AssistantOverrides | undefined;
    /**
     * This is the squad that will be used for the call. To use a transient squad, use `squad` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant` or `assistantId`
     * - Squad, use `squad` or `squadId`
     * - Workflow, use `workflow` or `workflowId`
     */
    squadId?: string | undefined;
    /**
     * This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant` or `assistantId`
     * - Squad, use `squad` or `squadId`
     * - Workflow, use `workflow` or `workflowId`
     */
    squad?: Vapi.CreateSquadDto | undefined;
    /**
     * These are the overrides for the `squad` or `squadId`'s member settings and template variables.
     * This will apply to all members of the squad.
     */
    squadOverrides?: Vapi.AssistantOverrides | undefined;
    /**
     * This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant` or `assistantId`
     * - Squad, use `squad` or `squadId`
     * - Workflow, use `workflow` or `workflowId`
     */
    workflowId?: string | undefined;
    /**
     * This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant` or `assistantId`
     * - Squad, use `squad` or `squadId`
     * - Workflow, use `workflow` or `workflowId`
     */
    workflow?: Vapi.CreateWorkflowDto | undefined;
    /** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */
    workflowOverrides?: Vapi.WorkflowOverrides | undefined;
    /**
     * This is the error if the call shouldn't be accepted. This is spoken to the customer.
     *
     * If this is sent, `assistantId`, `assistant`, `squadId`, `squad`, and `destination` are ignored.
     */
    error?: string | undefined;
}
