/**
 * Fireblocks API
 * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
 *
 * The version of the OpenAPI document: 1.6.2
 * Contact: developers@fireblocks.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import { RequestArgs, BaseAPI } from '../base';
import { GenieChatMessage } from '../models';
import { GenieCreateSessionResponse } from '../models';
import { GenieSendMessageRequest } from '../models';
/**
 * GenieBetaApi - axios parameter creator
 * @export
 */
export declare const GenieBetaApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation.  **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Create a Genie session
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createGenieSession: (idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context.  **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Send a message to a Genie session
     * @param {GenieSendMessageRequest} genieSendMessageRequest
     * @param {string} sessionId The Genie session ID returned from &#x60;POST /genie/sessions&#x60;.
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sendGenieMessage: (genieSendMessageRequest: GenieSendMessageRequest, sessionId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * GenieBetaApi - functional programming interface
 * @export
 */
export declare const GenieBetaApiFp: (configuration?: Configuration) => {
    /**
     * Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation.  **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Create a Genie session
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createGenieSession(idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GenieCreateSessionResponse>>;
    /**
     * Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context.  **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Send a message to a Genie session
     * @param {GenieSendMessageRequest} genieSendMessageRequest
     * @param {string} sessionId The Genie session ID returned from &#x60;POST /genie/sessions&#x60;.
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sendGenieMessage(genieSendMessageRequest: GenieSendMessageRequest, sessionId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GenieChatMessage>>;
};
/**
 * GenieBetaApi - factory interface
 * @export
 */
export declare const GenieBetaApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation.  **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Create a Genie session
     * @param {GenieBetaApiCreateGenieSessionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createGenieSession(requestParameters?: GenieBetaApiCreateGenieSessionRequest, options?: RawAxiosRequestConfig): AxiosPromise<GenieCreateSessionResponse>;
    /**
     * Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context.  **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Send a message to a Genie session
     * @param {GenieBetaApiSendGenieMessageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    sendGenieMessage(requestParameters: GenieBetaApiSendGenieMessageRequest, options?: RawAxiosRequestConfig): AxiosPromise<GenieChatMessage>;
};
/**
 * Request parameters for createGenieSession operation in GenieBetaApi.
 * @export
 * @interface GenieBetaApiCreateGenieSessionRequest
 */
export interface GenieBetaApiCreateGenieSessionRequest {
    /**
     * A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @type {string}
     * @memberof GenieBetaApiCreateGenieSession
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for sendGenieMessage operation in GenieBetaApi.
 * @export
 * @interface GenieBetaApiSendGenieMessageRequest
 */
export interface GenieBetaApiSendGenieMessageRequest {
    /**
     *
     * @type {GenieSendMessageRequest}
     * @memberof GenieBetaApiSendGenieMessage
     */
    readonly genieSendMessageRequest: GenieSendMessageRequest;
    /**
     * The Genie session ID returned from &#x60;POST /genie/sessions&#x60;.
     * @type {string}
     * @memberof GenieBetaApiSendGenieMessage
     */
    readonly sessionId: string;
    /**
     * A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @type {string}
     * @memberof GenieBetaApiSendGenieMessage
     */
    readonly idempotencyKey?: string;
}
/**
 * GenieBetaApi - object-oriented interface
 * @export
 * @class GenieBetaApi
 * @extends {BaseAPI}
 */
export declare class GenieBetaApi extends BaseAPI {
    /**
     * Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation.  **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Create a Genie session
     * @param {GenieBetaApiCreateGenieSessionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GenieBetaApi
     */
    createGenieSession(requestParameters?: GenieBetaApiCreateGenieSessionRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<GenieCreateSessionResponse>>;
    /**
     * Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context.  **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Send a message to a Genie session
     * @param {GenieBetaApiSendGenieMessageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof GenieBetaApi
     */
    sendGenieMessage(requestParameters: GenieBetaApiSendGenieMessageRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<GenieChatMessage>>;
}
