import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import * as core from "../../../../core/index.js";
import type * as Vapi from "../../../index.js";
export declare namespace ChatsClient {
    interface Options extends BaseClientOptions {
    }
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class ChatsClient {
    protected readonly _options: ChatsClient.Options;
    constructor(options: ChatsClient.Options);
    /**
     * @param {Vapi.ListChatsRequest} request
     * @param {ChatsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.chats.list()
     */
    list(request?: Vapi.ListChatsRequest, requestOptions?: ChatsClient.RequestOptions): core.HttpResponsePromise<Vapi.ChatPaginatedResponse>;
    private __list;
    /**
     * Creates a new chat with optional SMS delivery via transport field. Requires at least one of: assistantId/assistant, sessionId, or previousChatId. Note: sessionId and previousChatId are mutually exclusive. Transport field enables SMS delivery with two modes: (1) New conversation - provide transport.phoneNumberId and transport.customer to create a new session, (2) Existing conversation - provide sessionId to use existing session data. Cannot specify both sessionId and transport fields together. The transport.useLLMGeneratedMessageForOutbound flag controls whether input is processed by LLM (true, default) or forwarded directly as SMS (false).
     *
     * @param {Vapi.CreateChatDto} request
     * @param {ChatsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.chats.create({
     *         input: "input"
     *     })
     */
    create(request: Vapi.CreateChatDto, requestOptions?: ChatsClient.RequestOptions): core.HttpResponsePromise<Vapi.CreateChatsResponse>;
    private __create;
    /**
     * @param {Vapi.GetChatsRequest} request
     * @param {ChatsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.chats.get({
     *         id: "id"
     *     })
     */
    get(request: Vapi.GetChatsRequest, requestOptions?: ChatsClient.RequestOptions): core.HttpResponsePromise<Vapi.Chat>;
    private __get;
    /**
     * @param {Vapi.DeleteChatsRequest} request
     * @param {ChatsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.chats.delete({
     *         id: "id"
     *     })
     */
    delete(request: Vapi.DeleteChatsRequest, requestOptions?: ChatsClient.RequestOptions): core.HttpResponsePromise<Vapi.Chat>;
    private __delete;
    /**
     * @param {Vapi.OpenAiResponsesRequest} request
     * @param {ChatsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @example
     *     await client.chats.createResponse({
     *         input: "input"
     *     })
     */
    createResponse(request: Vapi.OpenAiResponsesRequest, requestOptions?: ChatsClient.RequestOptions): core.HttpResponsePromise<Vapi.CreateResponseChatsResponse>;
    private __createResponse;
    protected _getAuthorizationHeader(): Promise<string>;
}
