/**
 * MiniMax Chat Model Node - Version 1
 * For advanced usage with an AI chain
 */


export interface LcLmChatMinimaxV1Params {
/**
 * The model which will generate the completion. &lt;a href="https://platform.minimax.io/docs/api-reference/text-openai-api"&gt;Learn more&lt;/a&gt;.
 * @builderHint Default to the latest MiniMax-M2.x flagship (MiniMax-M2.7). Avoid MiniMax-M2 and earlier.
 * @default MiniMax-M2.7
 */
    model?: 'MiniMax-M2' | 'MiniMax-M2.1' | 'MiniMax-M2.1-highspeed' | 'MiniMax-M2.5' | 'MiniMax-M2.5-highspeed' | 'MiniMax-M2.7' | 'MiniMax-M2.7-highspeed' | Expression<string>;
/**
 * Additional options to add
 * @default {}
 */
    options?: {
    /** Whether to strip chain-of-thought reasoning from the response, returning only the final answer
     * @default true
     */
    hideThinking?: boolean | Expression<boolean>;
    /** The maximum number of tokens to generate in the completion. The limit depends on the selected model.
     * @default -1
     */
    maxTokens?: number | Expression<number>;
    /** Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.
     * @default 0.7
     */
    temperature?: number | Expression<number>;
    /** Maximum amount of time a request is allowed to take in milliseconds
     * @default 360000
     */
    timeout?: number | Expression<number>;
    /** Maximum number of retries to attempt
     * @default 2
     */
    maxRetries?: number | Expression<number>;
    /** Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.
     * @default 1
     */
    topP?: number | Expression<number>;
  };
}

export interface LcLmChatMinimaxV1Credentials {
  minimaxApi: CredentialReference;
}

interface LcLmChatMinimaxV1NodeBase {
  type: '@n8n/n8n-nodes-langchain.lmChatMinimax';
  version: 1;
  credentials?: LcLmChatMinimaxV1Credentials;
}

export type LcLmChatMinimaxV1ParamsNode = LcLmChatMinimaxV1NodeBase & {
  config: NodeConfig<LcLmChatMinimaxV1Params>;
};

export type LcLmChatMinimaxV1Node = LcLmChatMinimaxV1ParamsNode;