/**
 * MiniMax Node - Version 1
 * Discriminator: resource=video, operation=textToVideo
 */


interface Credentials {
  minimaxApi: CredentialReference;
}

/** Generate a video from a text prompt */
export type LcMinimaxV1VideoTextToVideoParams = {
  resource: 'video';
  operation: 'textToVideo';
/**
 * The model to use for video generation
 * @default MiniMax-Hailuo-2.3
 */
    modelId?: 'MiniMax-Hailuo-2.3' | 'MiniMax-Hailuo-02' | 'T2V-01-Director' | 'T2V-01' | Expression<string>;
/**
 * Text description of the video (max 2000 characters). Camera movements can be controlled using [command] syntax, e.g. [Push in], [Pan left].
 */
    prompt: string | Expression<string>;
/**
 * Duration of the generated video
 * @default 6
 */
    duration?: 6 | 10 | Expression<number>;
/**
 * Resolution of the generated video. Available options depend on the model.
 * @default 768P
 */
    resolution?: '720P' | '768P' | '1080P' | Expression<string>;
/**
 * Whether to download the generated video as binary data. When disabled, only the video URL is returned.
 * @default true
 */
    downloadVideo?: boolean | Expression<boolean>;
/**
 * Options
 * @default {}
 */
    options?: {
    /** Whether to automatically optimize the prompt for better results
     * @default true
     */
    promptOptimizer?: boolean | Expression<boolean>;
  };
};

export interface LcMinimaxV1VideoTextToVideoSubnodeConfig {
  tools?: ToolInstance[];
}

export type LcMinimaxV1VideoTextToVideoNode = {
  type: '@n8n/n8n-nodes-langchain.minimax';
  version: 1;
  credentials?: Credentials;
  isTrigger: true;
  config: NodeConfig<LcMinimaxV1VideoTextToVideoParams> & { subnodes?: LcMinimaxV1VideoTextToVideoSubnodeConfig };
};