/** * Athena API * REST API for the Athena system * * The version of the OpenAPI document: 1.0.0 * * * 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 { ChatRequestExternalFileUrl } from './ChatRequestExternalFileUrl'; import type { ChatRequestMessageMetadata } from './ChatRequestMessageMetadata'; import type { ChatRequestAttachmentsInner } from './ChatRequestAttachmentsInner'; import type { ChatRequestQuizContext } from './ChatRequestQuizContext'; /** * * @export * @interface ChatRequest */ export interface ChatRequest { /** * The user's message to send to the AI assistant. May be omitted or empty when the request carries at least one attachment or an externalFileUrl — the file is then the whole turn. * @type {string} * @memberof ChatRequest */ message?: string; /** * Optional ID of an existing chat to continue. If omitted, a new chat will be created. * @type {string} * @memberof ChatRequest */ chatId: string; /** * Optional chat type. Only applied when a new chat is created (ignored if chatId already exists). Use 'onboarding' to route to onboarding analysis. * @type {string} * @memberof ChatRequest */ chatType?: string; /** * File attachments to include with the message (max 10) * @type {Array} * @memberof ChatRequest */ attachments?: Array; /** * * @type {ChatRequestExternalFileUrl} * @memberof ChatRequest */ externalFileUrl?: ChatRequestExternalFileUrl; /** * * @type {ChatRequestQuizContext} * @memberof ChatRequest */ quizContext?: ChatRequestQuizContext; /** * When true, extract text from every PDF attachment up front and send it as text instead of as page-rendered file parts. Set by the client when retrying after a pdf_context_overflow failure. Acts as the loop guard: a textOnly request is never auto-retried again. * @type {boolean} * @memberof ChatRequest */ textOnly?: boolean; /** * Optional taxonomy ID to scope this chat to a taxonomy. Only applied when a new chat is created. Requires an active enrollment. * @type {string} * @memberof ChatRequest */ taxonomyId?: string; /** * Learning-session-chat lifecycle trigger. 'level-up-initiate' / 'quick-practice-initiate' are sent with a whitespace user message to kick off the session's first AI turn; 'level-up-resume' is sent when reopening a paused Level Up chat so the AI runs a welcome-back recap turn. Ignored for non-session chats. * @type {string} * @memberof ChatRequest */ trigger?: ChatRequestTriggerEnum; /** * * @type {ChatRequestMessageMetadata} * @memberof ChatRequest */ messageMetadata?: ChatRequestMessageMetadata; } /** * @export */ export declare const ChatRequestTriggerEnum: { readonly LevelUpInitiate: "level-up-initiate"; readonly QuickPracticeInitiate: "quick-practice-initiate"; readonly LevelUpResume: "level-up-resume"; }; export type ChatRequestTriggerEnum = typeof ChatRequestTriggerEnum[keyof typeof ChatRequestTriggerEnum]; /** * Check if a given object implements the ChatRequest interface. */ export declare function instanceOfChatRequest(value: object): value is ChatRequest; export declare function ChatRequestFromJSON(json: any): ChatRequest; export declare function ChatRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChatRequest; export declare function ChatRequestToJSON(json: any): ChatRequest; export declare function ChatRequestToJSONTyped(value?: ChatRequest | null, ignoreDiscriminator?: boolean): any;