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

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

export type TemplateDetails =
    | Vapi.TemplateDetails.ApiRequest
    | Vapi.TemplateDetails.Bash
    | Vapi.TemplateDetails.Code
    | Vapi.TemplateDetails.Computer
    | Vapi.TemplateDetails.Dtmf
    | Vapi.TemplateDetails.EndCall
    | Vapi.TemplateDetails.Function
    | Vapi.TemplateDetails.GohighlevelCalendarAvailabilityCheck
    | Vapi.TemplateDetails.GohighlevelCalendarEventCreate
    | Vapi.TemplateDetails.GohighlevelContactCreate
    | Vapi.TemplateDetails.GohighlevelContactGet
    | Vapi.TemplateDetails.GoogleCalendarAvailabilityCheck
    | Vapi.TemplateDetails.GoogleCalendarEventCreate
    | Vapi.TemplateDetails.GoogleSheetsRowAppend
    | Vapi.TemplateDetails.Handoff
    | Vapi.TemplateDetails.Mcp
    | Vapi.TemplateDetails.Query
    | Vapi.TemplateDetails.SlackMessageSend
    | Vapi.TemplateDetails.Sms
    | Vapi.TemplateDetails.TextEditor
    | Vapi.TemplateDetails.TransferCall
    | Vapi.TemplateDetails.SipRequest
    | Vapi.TemplateDetails.Voicemail;

export namespace TemplateDetails {
    export interface ApiRequest extends Vapi.CreateApiRequestToolDto {
        type: "apiRequest";
    }

    export interface Bash extends Vapi.CreateBashToolDto {
        type: "bash";
    }

    export interface Code extends Vapi.CreateCodeToolDto {
        type: "code";
    }

    export interface Computer extends Vapi.CreateComputerToolDto {
        type: "computer";
    }

    export interface Dtmf extends Vapi.CreateDtmfToolDto {
        type: "dtmf";
    }

    export interface EndCall extends Vapi.CreateEndCallToolDto {
        type: "endCall";
    }

    export interface Function extends Vapi.CreateFunctionToolDto {
        type: "function";
    }

    export interface GohighlevelCalendarAvailabilityCheck extends Vapi.CreateGoHighLevelCalendarAvailabilityToolDto {
        type: "gohighlevel.calendar.availability.check";
    }

    export interface GohighlevelCalendarEventCreate extends Vapi.CreateGoHighLevelCalendarEventCreateToolDto {
        type: "gohighlevel.calendar.event.create";
    }

    export interface GohighlevelContactCreate extends Vapi.CreateGoHighLevelContactCreateToolDto {
        type: "gohighlevel.contact.create";
    }

    export interface GohighlevelContactGet extends Vapi.CreateGoHighLevelContactGetToolDto {
        type: "gohighlevel.contact.get";
    }

    export interface GoogleCalendarAvailabilityCheck extends Vapi.CreateGoogleCalendarCheckAvailabilityToolDto {
        type: "google.calendar.availability.check";
    }

    export interface GoogleCalendarEventCreate extends Vapi.CreateGoogleCalendarCreateEventToolDto {
        type: "google.calendar.event.create";
    }

    export interface GoogleSheetsRowAppend extends Vapi.CreateGoogleSheetsRowAppendToolDto {
        type: "google.sheets.row.append";
    }

    export interface Handoff extends Vapi.CreateHandoffToolDto {
        type: "handoff";
    }

    export interface Mcp extends Vapi.CreateMcpToolDto {
        type: "mcp";
    }

    export interface Query extends Vapi.CreateQueryToolDto {
        type: "query";
    }

    export interface SlackMessageSend extends Vapi.CreateSlackSendMessageToolDto {
        type: "slack.message.send";
    }

    export interface Sms extends Vapi.CreateSmsToolDto {
        type: "sms";
    }

    export interface TextEditor extends Vapi.CreateTextEditorToolDto {
        type: "textEditor";
    }

    export interface TransferCall extends Vapi.CreateTransferCallToolDto {
        type: "transferCall";
    }

    export interface SipRequest extends Vapi.CreateSipRequestToolDto {
        type: "sipRequest";
    }

    export interface Voicemail extends Vapi.CreateVoicemailToolDto {
        type: "voicemail";
    }
}
