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


interface Credentials {
  alibabaCloudApi: CredentialReference;
}

/** Take in images and answer questions about them */
export type LcAlibabaCloudV11ImageAnalyzeParams = {
  resource: 'image';
  operation: 'analyze';
/**
 * Model
 * @searchListMethod visionModelSearch
 * @default {"mode":"list","value":""}
 */
    modelId?: { __rl: true; mode: 'list' | 'id'; value: string; cachedResultName?: string };
/**
 * How to provide the image for analysis
 * @default url
 */
    inputType?: 'url' | 'binary' | Expression<string>;
/**
 * The URL of the image to analyze
 * @displayOptions.show { inputType: ["url"] }
 */
    imageUrl: string | Expression<string>;
/**
 * Input Data Field Name
 * @hint The name of the input field containing the binary file data to be processed
 * @displayOptions.show { inputType: ["binary"] }
 * @default data
 */
    binaryPropertyName?: string | Expression<string>;
/**
 * The question or instruction about the image
 */
    question: string | Expression<string>;
/**
 * Whether to return a simplified version of the response instead of the raw data
 * @default true
 */
    simplify?: boolean | Expression<boolean>;
/**
 * Options
 * @default {}
 */
    visionOptions?: {
    /** Controls randomness in the output. Lower values make output more focused and deterministic.
     * @default 1
     */
    temperature?: number | Expression<number>;
    /** Maximum number of tokens to generate
     * @default 2000
     */
    maxTokens?: number | Expression<number>;
  };
};

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

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