/**
 * Alibaba Cloud Model Studio Node - Version 1.1
 * Discriminator: resource=video, operation=textToVideo
 */


interface Credentials {
  alibabaCloudApi: CredentialReference;
}

/** Generate a video from a text prompt */
export type LcAlibabaCloudV11VideoTextToVideoParams = {
  resource: 'video';
  operation: 'textToVideo';
/**
 * Model
 * @searchListMethod textToVideoModelSearch
 * @default {"mode":"list","value":""}
 */
    modelId?: { __rl: true; mode: 'list' | 'id'; value: string; cachedResultName?: string };
/**
 * The text prompt to generate video from
 */
    prompt: string | Expression<string>;
/**
 * Resolution tier of the generated video
 * @default 1080P
 */
    resolution?: '720P' | '1080P' | Expression<string>;
/**
 * Duration of the generated video in seconds (2–15)
 * @default 5
 */
    duration?: number | Expression<number>;
/**
 * Whether to generate a single-shot or multi-shot narrative video
 * @default single
 */
    shotType?: 'single' | 'multi' | 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>;
/**
 * Whether to return a simplified version of the response instead of the raw data
 * @default true
 */
    simplify?: boolean | Expression<boolean>;
/**
 * Options
 * @default {}
 */
    videoOptions?: {
    /** Whether to automatically extend and enhance the prompt
     * @default false
     */
    promptExtend?: boolean | Expression<boolean>;
    /** Whether to generate audio for the video
     * @default true
     */
    audio?: boolean | Expression<boolean>;
    /** Audio Input Type
     * @default url
     */
    audioInputType?: 'url' | 'binary' | Expression<string>;
    /** URL of the audio file to use for the video
     * @displayOptions.show { audioInputType: ["url"] }
     */
    audioUrl?: string | Expression<string>;
    /** Audio Data Field Name
     * @hint The name of the input field containing the binary audio data
     * @displayOptions.show { audioInputType: ["binary"] }
     * @default audio
     */
    audioBinaryPropertyName?: string | Expression<string>;
  };
};

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

export type LcAlibabaCloudV11VideoTextToVideoNode = {
  type: '@n8n/n8n-nodes-langchain.alibabaCloud';
  version: 1.1;
  credentials?: Credentials;
  isTrigger: true;
  config: NodeConfig<LcAlibabaCloudV11VideoTextToVideoParams> & { subnodes?: LcAlibabaCloudV11VideoTextToVideoSubnodeConfig };
};