VertexAIPlugin: {
    embedder(
        name: string,
        config?: {
            location?: string;
            outputDimensionality?: number;
            taskType?:
                | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
            title?: string;
            version?: string;
        },
    ): EmbedderReference<
        z.ZodObject<
            {
                location: z.ZodOptional<z.ZodString>;
                outputDimensionality: z.ZodOptional<z.ZodNumber>;
                taskType: z.ZodOptional<
                    z.ZodEnum<
                        [
                            "RETRIEVAL_DOCUMENT",
                            "RETRIEVAL_QUERY",
                            "SEMANTIC_SIMILARITY",
                            "CLASSIFICATION",
                            "CLUSTERING",
                        ],
                    >,
                >;
                title: z.ZodOptional<z.ZodString>;
                version: z.ZodOptional<z.ZodString>;
            },
            "strip",
            z.ZodTypeAny,
            {
                location?: string;
                outputDimensionality?: number;
                taskType?: | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
                title?: string;
                version?: string;
            },
            {
                location?: string;
                outputDimensionality?: number;
                taskType?: | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
                title?: string;
                version?: string;
            },
        >,
    >;
    model(
        name: `gemini-${string}`,
        config?: z.objectOutputType<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    functionCallingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                allowedFunctionNames: z.ZodOptional<
                                    z.ZodArray<z.ZodString, "many">,
                                >;
                                mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                        >,
                    >;
                    googleSearchRetrieval: z.ZodOptional<
                        z.ZodObject<
                            { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                            "strip",
                            z.ZodTypeAny,
                            { disableAttribution?: boolean },
                            { disableAttribution?: boolean },
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    safetySettings: z.ZodOptional<
                        z.ZodArray<
                            z.ZodObject<
                                {
                                    category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                    threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                            >,
                            "many",
                        >,
                    >;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    vertexRetrieval: z.ZodOptional<
                        z.ZodObject<
                            {
                                datastore: z.ZodObject<
                                    {
                                        dataStoreId: z.ZodString;
                                        location: z.ZodOptional<(...)>;
                                        projectId: z.ZodOptional<(...)>;
                                    },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                >;
                                disableAttribution: z.ZodOptional<z.ZodBoolean>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                        >,
                    >;
                },
            >,
            z.ZodTypeAny,
            "passthrough",
        >,
    ): ModelReference<
        z.ZodObject<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    functionCallingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                allowedFunctionNames: z.ZodOptional<
                                    z.ZodArray<z.ZodString, "many">,
                                >;
                                mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                        >,
                    >;
                    googleSearchRetrieval: z.ZodOptional<
                        z.ZodObject<
                            { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                            "strip",
                            z.ZodTypeAny,
                            { disableAttribution?: boolean },
                            { disableAttribution?: boolean },
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    safetySettings: z.ZodOptional<
                        z.ZodArray<
                            z.ZodObject<
                                {
                                    category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                    threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                            >,
                            "many",
                        >,
                    >;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    vertexRetrieval: z.ZodOptional<
                        z.ZodObject<
                            {
                                datastore: z.ZodObject<
                                    {
                                        dataStoreId: z.ZodString;
                                        location: z.ZodOptional<(...)>;
                                        projectId: z.ZodOptional<(...)>;
                                    },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                >;
                                disableAttribution: z.ZodOptional<z.ZodBoolean>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                        >,
                    >;
                },
            >,
            "passthrough",
            z.ZodTypeAny,
            z.objectOutputType<
                z.objectUtil.extendShape<
                    {
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    },
                    {
                        functionCallingConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                    mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                },
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                },
                            >,
                        >;
                        googleSearchRetrieval: z.ZodOptional<
                            z.ZodObject<
                                { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                                "strip",
                                z.ZodTypeAny,
                                { disableAttribution?: boolean },
                                { disableAttribution?: boolean },
                            >,
                        >;
                        location: z.ZodOptional<z.ZodString>;
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        safetySettings: z.ZodOptional<
                            z.ZodArray<
                                z.ZodObject<
                                    { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        category: (...) | (...) | (...) | (...) | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                    {
                                        category: (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                >,
                                "many",
                            >,
                        >;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        vertexRetrieval: z.ZodOptional<
                            z.ZodObject<
                                {
                                    datastore: z.ZodObject<
                                        { dataStoreId: ...; location: ...; projectId: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { dataStoreId: ...; location?: ...; projectId?: ... },
                                        { dataStoreId: ...; location?: ...; projectId?: ... },
                                    >;
                                    disableAttribution: z.ZodOptional<z.ZodBoolean>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    datastore: {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    };
                                    disableAttribution?: boolean;
                                },
                                {
                                    datastore: {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    };
                                    disableAttribution?: boolean;
                                },
                            >,
                        >;
                    },
                >,
                z.ZodTypeAny,
                "passthrough",
            >,
            z.objectInputType<
                z.objectUtil.extendShape<
                    {
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    },
                    {
                        functionCallingConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                    mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                },
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                },
                            >,
                        >;
                        googleSearchRetrieval: z.ZodOptional<
                            z.ZodObject<
                                { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                                "strip",
                                z.ZodTypeAny,
                                { disableAttribution?: boolean },
                                { disableAttribution?: boolean },
                            >,
                        >;
                        location: z.ZodOptional<z.ZodString>;
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        safetySettings: z.ZodOptional<
                            z.ZodArray<
                                z.ZodObject<
                                    { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        category: (...) | (...) | (...) | (...) | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                    {
                                        category: (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                >,
                                "many",
                            >,
                        >;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        vertexRetrieval: z.ZodOptional<
                            z.ZodObject<
                                {
                                    datastore: z.ZodObject<
                                        { dataStoreId: ...; location: ...; projectId: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { dataStoreId: ...; location?: ...; projectId?: ... },
                                        { dataStoreId: ...; location?: ...; projectId?: ... },
                                    >;
                                    disableAttribution: z.ZodOptional<z.ZodBoolean>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    datastore: {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    };
                                    disableAttribution?: boolean;
                                },
                                {
                                    datastore: {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    };
                                    disableAttribution?: boolean;
                                },
                            >,
                        >;
                    },
                >,
                z.ZodTypeAny,
                "passthrough",
            >,
        >,
    >;
    model(
        name: `imagen${string}`,
        config?: z.objectOutputType<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    addWatermark: z.ZodOptional<z.ZodBoolean>;
                    aspectRatio: z.ZodOptional<
                        z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                    >;
                    editConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                editMode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                                guidanceScale: z.ZodOptional<z.ZodNumber>;
                                maskDilation: z.ZodOptional<z.ZodNumber>;
                                maskMode: z.ZodOptional<
                                    z.ZodObject<
                                        { classes: ...; maskType: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { classes?: ...; maskType: ... },
                                        { classes?: ...; maskType: ... },
                                    >,
                                >;
                                productPosition: z.ZodOptional<z.ZodEnum<[(...), (...)]>>;
                            },
                            "passthrough",
                            z.ZodTypeAny,
                            z.objectOutputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                            z.objectInputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                        >,
                    >;
                    language: z.ZodOptional<
                        z.ZodEnum<
                            [
                                "auto",
                                "en",
                                "es",
                                "hi",
                                "ja",
                                "ko",
                                "pt",
                                "zh-TW",
                                "zh",
                                "zh-CN",
                            ],
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                    negativePrompt: z.ZodOptional<z.ZodString>;
                    personGeneration: z.ZodOptional<
                        z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                    >;
                    safetySetting: z.ZodOptional<
                        z.ZodEnum<
                            ["block_most", "block_some", "block_few", "block_fewest"],
                        >,
                    >;
                    seed: z.ZodOptional<z.ZodNumber>;
                    storageUri: z.ZodOptional<z.ZodString>;
                    upscaleConfig: z.ZodOptional<
                        z.ZodObject<
                            { upscaleFactor: z.ZodEnum<["x2", "x4"]> },
                            "strip",
                            z.ZodTypeAny,
                            { upscaleFactor: "x2" | "x4" },
                            { upscaleFactor: "x2" | "x4" },
                        >,
                    >;
                },
            >,
            z.ZodTypeAny,
            "passthrough",
        >,
    ): ModelReference<
        z.ZodObject<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    addWatermark: z.ZodOptional<z.ZodBoolean>;
                    aspectRatio: z.ZodOptional<
                        z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                    >;
                    editConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                editMode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                                guidanceScale: z.ZodOptional<z.ZodNumber>;
                                maskDilation: z.ZodOptional<z.ZodNumber>;
                                maskMode: z.ZodOptional<
                                    z.ZodObject<
                                        { classes: ...; maskType: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { classes?: ...; maskType: ... },
                                        { classes?: ...; maskType: ... },
                                    >,
                                >;
                                productPosition: z.ZodOptional<z.ZodEnum<[(...), (...)]>>;
                            },
                            "passthrough",
                            z.ZodTypeAny,
                            z.objectOutputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                            z.objectInputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                        >,
                    >;
                    language: z.ZodOptional<
                        z.ZodEnum<
                            [
                                "auto",
                                "en",
                                "es",
                                "hi",
                                "ja",
                                "ko",
                                "pt",
                                "zh-TW",
                                "zh",
                                "zh-CN",
                            ],
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                    negativePrompt: z.ZodOptional<z.ZodString>;
                    personGeneration: z.ZodOptional<
                        z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                    >;
                    safetySetting: z.ZodOptional<
                        z.ZodEnum<
                            ["block_most", "block_some", "block_few", "block_fewest"],
                        >,
                    >;
                    seed: z.ZodOptional<z.ZodNumber>;
                    storageUri: z.ZodOptional<z.ZodString>;
                    upscaleConfig: z.ZodOptional<
                        z.ZodObject<
                            { upscaleFactor: z.ZodEnum<["x2", "x4"]> },
                            "strip",
                            z.ZodTypeAny,
                            { upscaleFactor: "x2" | "x4" },
                            { upscaleFactor: "x2" | "x4" },
                        >,
                    >;
                },
            >,
            "passthrough",
            z.ZodTypeAny,
            z.objectOutputType<
                z.objectUtil.extendShape<
                    {
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    },
                    {
                        addWatermark: z.ZodOptional<z.ZodBoolean>;
                        aspectRatio: z.ZodOptional<
                            z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                        >;
                        editConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "passthrough",
                                z.ZodTypeAny,
                                z.objectOutputType<
                                    {
                                        editMode: z.ZodOptional<(...)>;
                                        guidanceScale: z.ZodOptional<(...)>;
                                        maskDilation: z.ZodOptional<(...)>;
                                        maskMode: z.ZodOptional<(...)>;
                                        productPosition: z.ZodOptional<(...)>;
                                    },
                                    z.ZodTypeAny,
                                    "passthrough",
                                >,
                                z.objectInputType<
                                    {
                                        editMode: z.ZodOptional<(...)>;
                                        guidanceScale: z.ZodOptional<(...)>;
                                        maskDilation: z.ZodOptional<(...)>;
                                        maskMode: z.ZodOptional<(...)>;
                                        productPosition: z.ZodOptional<(...)>;
                                    },
                                    z.ZodTypeAny,
                                    "passthrough",
                                >,
                            >,
                        >;
                        language: z.ZodOptional<
                            z.ZodEnum<
                                [
                                    "auto",
                                    "en",
                                    "es",
                                    "hi",
                                    "ja",
                                    "ko",
                                    "pt",
                                    "zh-TW",
                                    "zh",
                                    "zh-CN",
                                ],
                            >,
                        >;
                        location: z.ZodOptional<z.ZodString>;
                        mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                        negativePrompt: z.ZodOptional<z.ZodString>;
                        personGeneration: z.ZodOptional<
                            z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                        >;
                        safetySetting: z.ZodOptional<
                            z.ZodEnum<
                                ["block_most", "block_some", "block_few", "block_fewest"],
                            >,
                        >;
                        seed: z.ZodOptional<z.ZodNumber>;
                        storageUri: z.ZodOptional<z.ZodString>;
                        upscaleConfig: z.ZodOptional<
                            z.ZodObject<
                                { upscaleFactor: z.ZodEnum<[(...), (...)]> },
                                "strip",
                                z.ZodTypeAny,
                                { upscaleFactor: "x2" | "x4" },
                                { upscaleFactor: "x2" | "x4" },
                            >,
                        >;
                    },
                >,
                z.ZodTypeAny,
                "passthrough",
            >,
            z.objectInputType<
                z.objectUtil.extendShape<
                    {
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    },
                    {
                        addWatermark: z.ZodOptional<z.ZodBoolean>;
                        aspectRatio: z.ZodOptional<
                            z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                        >;
                        editConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "passthrough",
                                z.ZodTypeAny,
                                z.objectOutputType<
                                    {
                                        editMode: z.ZodOptional<(...)>;
                                        guidanceScale: z.ZodOptional<(...)>;
                                        maskDilation: z.ZodOptional<(...)>;
                                        maskMode: z.ZodOptional<(...)>;
                                        productPosition: z.ZodOptional<(...)>;
                                    },
                                    z.ZodTypeAny,
                                    "passthrough",
                                >,
                                z.objectInputType<
                                    {
                                        editMode: z.ZodOptional<(...)>;
                                        guidanceScale: z.ZodOptional<(...)>;
                                        maskDilation: z.ZodOptional<(...)>;
                                        maskMode: z.ZodOptional<(...)>;
                                        productPosition: z.ZodOptional<(...)>;
                                    },
                                    z.ZodTypeAny,
                                    "passthrough",
                                >,
                            >,
                        >;
                        language: z.ZodOptional<
                            z.ZodEnum<
                                [
                                    "auto",
                                    "en",
                                    "es",
                                    "hi",
                                    "ja",
                                    "ko",
                                    "pt",
                                    "zh-TW",
                                    "zh",
                                    "zh-CN",
                                ],
                            >,
                        >;
                        location: z.ZodOptional<z.ZodString>;
                        mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                        negativePrompt: z.ZodOptional<z.ZodString>;
                        personGeneration: z.ZodOptional<
                            z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                        >;
                        safetySetting: z.ZodOptional<
                            z.ZodEnum<
                                ["block_most", "block_some", "block_few", "block_fewest"],
                            >,
                        >;
                        seed: z.ZodOptional<z.ZodNumber>;
                        storageUri: z.ZodOptional<z.ZodString>;
                        upscaleConfig: z.ZodOptional<
                            z.ZodObject<
                                { upscaleFactor: z.ZodEnum<[(...), (...)]> },
                                "strip",
                                z.ZodTypeAny,
                                { upscaleFactor: "x2" | "x4" },
                                { upscaleFactor: "x2" | "x4" },
                            >,
                        >;
                    },
                >,
                z.ZodTypeAny,
                "passthrough",
            >,
        >,
    >;
    model(name: string, config?: any): ModelReference<z.ZodTypeAny>;
    (params?: PluginOptions): GenkitPlugin;
}

Type declaration

  • embedder:function
    • Parameters

      • name: string
      • Optionalconfig: {
            location?: string;
            outputDimensionality?: number;
            taskType?:
                | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
            title?: string;
            version?: string;
        }
        • Optionallocation?: string
        • OptionaloutputDimensionality?: number

          The outputDimensionality parameter allows you to specify the dimensionality of the embedding output. By default, the model generates embeddings with 768 dimensions. Models such as text-embedding-004, text-embedding-005, and text-multilingual-embedding-002 allow the output dimensionality to be adjusted between 1 and 768. By selecting a smaller output dimensionality, users can save memory and storage space, leading to more efficient computations.

        • OptionaltaskType?:
              | "RETRIEVAL_DOCUMENT"
              | "RETRIEVAL_QUERY"
              | "SEMANTIC_SIMILARITY"
              | "CLASSIFICATION"
              | "CLUSTERING"

          The task_type parameter is defined as the intended downstream application to help the model produce better quality embeddings.

        • Optionaltitle?: string
        • Optionalversion?: string

      Returns EmbedderReference<
          z.ZodObject<
              {
                  location: z.ZodOptional<z.ZodString>;
                  outputDimensionality: z.ZodOptional<z.ZodNumber>;
                  taskType: z.ZodOptional<
                      z.ZodEnum<
                          [
                              "RETRIEVAL_DOCUMENT",
                              "RETRIEVAL_QUERY",
                              "SEMANTIC_SIMILARITY",
                              "CLASSIFICATION",
                              "CLUSTERING",
                          ],
                      >,
                  >;
                  title: z.ZodOptional<z.ZodString>;
                  version: z.ZodOptional<z.ZodString>;
              },
              "strip",
              z.ZodTypeAny,
              {
                  location?: string;
                  outputDimensionality?: number;
                  taskType?: | "RETRIEVAL_DOCUMENT"
                  | "RETRIEVAL_QUERY"
                  | "SEMANTIC_SIMILARITY"
                  | "CLASSIFICATION"
                  | "CLUSTERING";
                  title?: string;
                  version?: string;
              },
              {
                  location?: string;
                  outputDimensionality?: number;
                  taskType?: | "RETRIEVAL_DOCUMENT"
                  | "RETRIEVAL_QUERY"
                  | "SEMANTIC_SIMILARITY"
                  | "CLASSIFICATION"
                  | "CLUSTERING";
                  title?: string;
                  version?: string;
              },
          >,
      >

  • model:function
    • Parameters

      • name: `gemini-${string}`
      • Optionalconfig: z.objectOutputType<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    functionCallingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                allowedFunctionNames: z.ZodOptional<
                                    z.ZodArray<z.ZodString, "many">,
                                >;
                                mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                        >,
                    >;
                    googleSearchRetrieval: z.ZodOptional<
                        z.ZodObject<
                            { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                            "strip",
                            z.ZodTypeAny,
                            { disableAttribution?: boolean },
                            { disableAttribution?: boolean },
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    safetySettings: z.ZodOptional<
                        z.ZodArray<
                            z.ZodObject<
                                {
                                    category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                    threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                            >,
                            "many",
                        >,
                    >;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    vertexRetrieval: z.ZodOptional<
                        z.ZodObject<
                            {
                                datastore: z.ZodObject<
                                    {
                                        dataStoreId: z.ZodString;
                                        location: z.ZodOptional<(...)>;
                                        projectId: z.ZodOptional<(...)>;
                                    },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                >;
                                disableAttribution: z.ZodOptional<z.ZodBoolean>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                        >,
                    >;
                },
            >,
            z.ZodTypeAny,
            "passthrough",
        >

      Returns ModelReference<
          z.ZodObject<
              z.objectUtil.extendShape<
                  {
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      temperature: z.ZodOptional<z.ZodNumber>;
                      topK: z.ZodOptional<z.ZodNumber>;
                      topP: z.ZodOptional<z.ZodNumber>;
                      version: z.ZodOptional<z.ZodString>;
                  },
                  {
                      functionCallingConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  allowedFunctionNames: z.ZodOptional<
                                      z.ZodArray<z.ZodString, "many">,
                                  >;
                                  mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                  allowedFunctionNames?: string[];
                                  mode?: "MODE_UNSPECIFIED"
                                  | "AUTO"
                                  | "ANY"
                                  | "NONE";
                              },
                              {
                                  allowedFunctionNames?: string[];
                                  mode?: "MODE_UNSPECIFIED"
                                  | "AUTO"
                                  | "ANY"
                                  | "NONE";
                              },
                          >,
                      >;
                      googleSearchRetrieval: z.ZodOptional<
                          z.ZodObject<
                              { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                              "strip",
                              z.ZodTypeAny,
                              { disableAttribution?: boolean },
                              { disableAttribution?: boolean },
                          >,
                      >;
                      location: z.ZodOptional<z.ZodString>;
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      safetySettings: z.ZodOptional<
                          z.ZodArray<
                              z.ZodObject<
                                  {
                                      category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                      threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      category: | "HARM_CATEGORY_UNSPECIFIED"
                                      | "HARM_CATEGORY_HATE_SPEECH"
                                      | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                      | "HARM_CATEGORY_HARASSMENT"
                                      | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                      threshold: | "BLOCK_LOW_AND_ABOVE"
                                      | "BLOCK_MEDIUM_AND_ABOVE"
                                      | "BLOCK_ONLY_HIGH"
                                      | "BLOCK_NONE";
                                  },
                                  {
                                      category: | "HARM_CATEGORY_UNSPECIFIED"
                                      | "HARM_CATEGORY_HATE_SPEECH"
                                      | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                      | "HARM_CATEGORY_HARASSMENT"
                                      | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                      threshold: | "BLOCK_LOW_AND_ABOVE"
                                      | "BLOCK_MEDIUM_AND_ABOVE"
                                      | "BLOCK_ONLY_HIGH"
                                      | "BLOCK_NONE";
                                  },
                              >,
                              "many",
                          >,
                      >;
                      temperature: z.ZodOptional<z.ZodNumber>;
                      topK: z.ZodOptional<z.ZodNumber>;
                      topP: z.ZodOptional<z.ZodNumber>;
                      vertexRetrieval: z.ZodOptional<
                          z.ZodObject<
                              {
                                  datastore: z.ZodObject<
                                      {
                                          dataStoreId: z.ZodString;
                                          location: z.ZodOptional<(...)>;
                                          projectId: z.ZodOptional<(...)>;
                                      },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      },
                                      {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      },
                                  >;
                                  disableAttribution: z.ZodOptional<z.ZodBoolean>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                  datastore: {
                                      dataStoreId: string;
                                      location?: string;
                                      projectId?: string;
                                  };
                                  disableAttribution?: boolean;
                              },
                              {
                                  datastore: {
                                      dataStoreId: string;
                                      location?: string;
                                      projectId?: string;
                                  };
                                  disableAttribution?: boolean;
                              },
                          >,
                      >;
                  },
              >,
              "passthrough",
              z.ZodTypeAny,
              z.objectOutputType<
                  z.objectUtil.extendShape<
                      {
                          maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                          stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                          temperature: z.ZodOptional<z.ZodNumber>;
                          topK: z.ZodOptional<z.ZodNumber>;
                          topP: z.ZodOptional<z.ZodNumber>;
                          version: z.ZodOptional<z.ZodString>;
                      },
                      {
                          functionCallingConfig: z.ZodOptional<
                              z.ZodObject<
                                  {
                                      allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                      mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      allowedFunctionNames?: (...)[];
                                      mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                  },
                                  {
                                      allowedFunctionNames?: (...)[];
                                      mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                  },
                              >,
                          >;
                          googleSearchRetrieval: z.ZodOptional<
                              z.ZodObject<
                                  { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                                  "strip",
                                  z.ZodTypeAny,
                                  { disableAttribution?: boolean },
                                  { disableAttribution?: boolean },
                              >,
                          >;
                          location: z.ZodOptional<z.ZodString>;
                          maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                          safetySettings: z.ZodOptional<
                              z.ZodArray<
                                  z.ZodObject<
                                      { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                          category: (...) | (...) | (...) | (...) | (...);
                                          threshold: (...) | (...) | (...) | (...);
                                      },
                                      {
                                          category: (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...);
                                          threshold: (...) | (...) | (...) | (...);
                                      },
                                  >,
                                  "many",
                              >,
                          >;
                          temperature: z.ZodOptional<z.ZodNumber>;
                          topK: z.ZodOptional<z.ZodNumber>;
                          topP: z.ZodOptional<z.ZodNumber>;
                          vertexRetrieval: z.ZodOptional<
                              z.ZodObject<
                                  {
                                      datastore: z.ZodObject<
                                          { dataStoreId: ...; location: ...; projectId: ... },
                                          "strip",
                                          z.ZodTypeAny,
                                          { dataStoreId: ...; location?: ...; projectId?: ... },
                                          { dataStoreId: ...; location?: ...; projectId?: ... },
                                      >;
                                      disableAttribution: z.ZodOptional<z.ZodBoolean>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      datastore: {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      };
                                      disableAttribution?: boolean;
                                  },
                                  {
                                      datastore: {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      };
                                      disableAttribution?: boolean;
                                  },
                              >,
                          >;
                      },
                  >,
                  z.ZodTypeAny,
                  "passthrough",
              >,
              z.objectInputType<
                  z.objectUtil.extendShape<
                      {
                          maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                          stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                          temperature: z.ZodOptional<z.ZodNumber>;
                          topK: z.ZodOptional<z.ZodNumber>;
                          topP: z.ZodOptional<z.ZodNumber>;
                          version: z.ZodOptional<z.ZodString>;
                      },
                      {
                          functionCallingConfig: z.ZodOptional<
                              z.ZodObject<
                                  {
                                      allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                      mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      allowedFunctionNames?: (...)[];
                                      mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                  },
                                  {
                                      allowedFunctionNames?: (...)[];
                                      mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                  },
                              >,
                          >;
                          googleSearchRetrieval: z.ZodOptional<
                              z.ZodObject<
                                  { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                                  "strip",
                                  z.ZodTypeAny,
                                  { disableAttribution?: boolean },
                                  { disableAttribution?: boolean },
                              >,
                          >;
                          location: z.ZodOptional<z.ZodString>;
                          maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                          safetySettings: z.ZodOptional<
                              z.ZodArray<
                                  z.ZodObject<
                                      { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                          category: (...) | (...) | (...) | (...) | (...);
                                          threshold: (...) | (...) | (...) | (...);
                                      },
                                      {
                                          category: (...)
                                          | (...)
                                          | (...)
                                          | (...)
                                          | (...);
                                          threshold: (...) | (...) | (...) | (...);
                                      },
                                  >,
                                  "many",
                              >,
                          >;
                          temperature: z.ZodOptional<z.ZodNumber>;
                          topK: z.ZodOptional<z.ZodNumber>;
                          topP: z.ZodOptional<z.ZodNumber>;
                          vertexRetrieval: z.ZodOptional<
                              z.ZodObject<
                                  {
                                      datastore: z.ZodObject<
                                          { dataStoreId: ...; location: ...; projectId: ... },
                                          "strip",
                                          z.ZodTypeAny,
                                          { dataStoreId: ...; location?: ...; projectId?: ... },
                                          { dataStoreId: ...; location?: ...; projectId?: ... },
                                      >;
                                      disableAttribution: z.ZodOptional<z.ZodBoolean>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      datastore: {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      };
                                      disableAttribution?: boolean;
                                  },
                                  {
                                      datastore: {
                                          dataStoreId: string;
                                          location?: (...)
                                          | (...);
                                          projectId?: (...) | (...);
                                      };
                                      disableAttribution?: boolean;
                                  },
                              >,
                          >;
                      },
                  >,
                  z.ZodTypeAny,
                  "passthrough",
              >,
          >,
      >

    • Parameters

      • name: `imagen${string}`
      • Optionalconfig: z.objectOutputType<
            z.objectUtil.extendShape<
                {
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                },
                {
                    addWatermark: z.ZodOptional<z.ZodBoolean>;
                    aspectRatio: z.ZodOptional<
                        z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                    >;
                    editConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                editMode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                                guidanceScale: z.ZodOptional<z.ZodNumber>;
                                maskDilation: z.ZodOptional<z.ZodNumber>;
                                maskMode: z.ZodOptional<
                                    z.ZodObject<
                                        { classes: ...; maskType: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { classes?: ...; maskType: ... },
                                        { classes?: ...; maskType: ... },
                                    >,
                                >;
                                productPosition: z.ZodOptional<z.ZodEnum<[(...), (...)]>>;
                            },
                            "passthrough",
                            z.ZodTypeAny,
                            z.objectOutputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                            z.objectInputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                        >,
                    >;
                    language: z.ZodOptional<
                        z.ZodEnum<
                            ["auto", "en", "es", "hi", "ja", "ko", "pt", "zh-TW", "zh", "zh-CN"],
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                    negativePrompt: z.ZodOptional<z.ZodString>;
                    personGeneration: z.ZodOptional<
                        z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                    >;
                    safetySetting: z.ZodOptional<
                        z.ZodEnum<["block_most", "block_some", "block_few", "block_fewest"]>,
                    >;
                    seed: z.ZodOptional<z.ZodNumber>;
                    storageUri: z.ZodOptional<z.ZodString>;
                    upscaleConfig: z.ZodOptional<
                        z.ZodObject<
                            { upscaleFactor: z.ZodEnum<["x2", "x4"]> },
                            "strip",
                            z.ZodTypeAny,
                            { upscaleFactor: "x2" | "x4" },
                            { upscaleFactor: "x2" | "x4" },
                        >,
                    >;
                },
            >,
            z.ZodTypeAny,
            "passthrough",
        >

      Returns ModelReference<
          z.ZodObject<
              z.objectUtil.extendShape<
                  {
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      temperature: z.ZodOptional<z.ZodNumber>;
                      topK: z.ZodOptional<z.ZodNumber>;
                      topP: z.ZodOptional<z.ZodNumber>;
                      version: z.ZodOptional<z.ZodString>;
                  },
                  {
                      addWatermark: z.ZodOptional<z.ZodBoolean>;
                      aspectRatio: z.ZodOptional<
                          z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                      >;
                      editConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  editMode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                                  guidanceScale: z.ZodOptional<z.ZodNumber>;
                                  maskDilation: z.ZodOptional<z.ZodNumber>;
                                  maskMode: z.ZodOptional<
                                      z.ZodObject<
                                          { classes: ...; maskType: ... },
                                          "strip",
                                          z.ZodTypeAny,
                                          { classes?: ...; maskType: ... },
                                          { classes?: ...; maskType: ... },
                                      >,
                                  >;
                                  productPosition: z.ZodOptional<z.ZodEnum<[(...), (...)]>>;
                              },
                              "passthrough",
                              z.ZodTypeAny,
                              z.objectOutputType<
                                  {
                                      editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                      guidanceScale: z.ZodOptional<z.ZodNumber>;
                                      maskDilation: z.ZodOptional<z.ZodNumber>;
                                      maskMode: z.ZodOptional<
                                          z.ZodObject<(...), (...), (...), (...), (...)>,
                                      >;
                                      productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                  },
                                  z.ZodTypeAny,
                                  "passthrough",
                              >,
                              z.objectInputType<
                                  {
                                      editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                      guidanceScale: z.ZodOptional<z.ZodNumber>;
                                      maskDilation: z.ZodOptional<z.ZodNumber>;
                                      maskMode: z.ZodOptional<
                                          z.ZodObject<(...), (...), (...), (...), (...)>,
                                      >;
                                      productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                  },
                                  z.ZodTypeAny,
                                  "passthrough",
                              >,
                          >,
                      >;
                      language: z.ZodOptional<
                          z.ZodEnum<
                              [
                                  "auto",
                                  "en",
                                  "es",
                                  "hi",
                                  "ja",
                                  "ko",
                                  "pt",
                                  "zh-TW",
                                  "zh",
                                  "zh-CN",
                              ],
                          >,
                      >;
                      location: z.ZodOptional<z.ZodString>;
                      mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                      negativePrompt: z.ZodOptional<z.ZodString>;
                      personGeneration: z.ZodOptional<
                          z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                      >;
                      safetySetting: z.ZodOptional<
                          z.ZodEnum<["block_most", "block_some", "block_few", "block_fewest"]>,
                      >;
                      seed: z.ZodOptional<z.ZodNumber>;
                      storageUri: z.ZodOptional<z.ZodString>;
                      upscaleConfig: z.ZodOptional<
                          z.ZodObject<
                              { upscaleFactor: z.ZodEnum<["x2", "x4"]> },
                              "strip",
                              z.ZodTypeAny,
                              { upscaleFactor: "x2" | "x4" },
                              { upscaleFactor: "x2" | "x4" },
                          >,
                      >;
                  },
              >,
              "passthrough",
              z.ZodTypeAny,
              z.objectOutputType<
                  z.objectUtil.extendShape<
                      {
                          maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                          stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                          temperature: z.ZodOptional<z.ZodNumber>;
                          topK: z.ZodOptional<z.ZodNumber>;
                          topP: z.ZodOptional<z.ZodNumber>;
                          version: z.ZodOptional<z.ZodString>;
                      },
                      {
                          addWatermark: z.ZodOptional<z.ZodBoolean>;
                          aspectRatio: z.ZodOptional<
                              z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                          >;
                          editConfig: z.ZodOptional<
                              z.ZodObject<
                                  {
                                      editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                      guidanceScale: z.ZodOptional<z.ZodNumber>;
                                      maskDilation: z.ZodOptional<z.ZodNumber>;
                                      maskMode: z.ZodOptional<
                                          z.ZodObject<(...), (...), (...), (...), (...)>,
                                      >;
                                      productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                  },
                                  "passthrough",
                                  z.ZodTypeAny,
                                  z.objectOutputType<
                                      {
                                          editMode: z.ZodOptional<(...)>;
                                          guidanceScale: z.ZodOptional<(...)>;
                                          maskDilation: z.ZodOptional<(...)>;
                                          maskMode: z.ZodOptional<(...)>;
                                          productPosition: z.ZodOptional<(...)>;
                                      },
                                      z.ZodTypeAny,
                                      "passthrough",
                                  >,
                                  z.objectInputType<
                                      {
                                          editMode: z.ZodOptional<(...)>;
                                          guidanceScale: z.ZodOptional<(...)>;
                                          maskDilation: z.ZodOptional<(...)>;
                                          maskMode: z.ZodOptional<(...)>;
                                          productPosition: z.ZodOptional<(...)>;
                                      },
                                      z.ZodTypeAny,
                                      "passthrough",
                                  >,
                              >,
                          >;
                          language: z.ZodOptional<
                              z.ZodEnum<
                                  [
                                      "auto",
                                      "en",
                                      "es",
                                      "hi",
                                      "ja",
                                      "ko",
                                      "pt",
                                      "zh-TW",
                                      "zh",
                                      "zh-CN",
                                  ],
                              >,
                          >;
                          location: z.ZodOptional<z.ZodString>;
                          mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                          negativePrompt: z.ZodOptional<z.ZodString>;
                          personGeneration: z.ZodOptional<
                              z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                          >;
                          safetySetting: z.ZodOptional<
                              z.ZodEnum<
                                  ["block_most", "block_some", "block_few", "block_fewest"],
                              >,
                          >;
                          seed: z.ZodOptional<z.ZodNumber>;
                          storageUri: z.ZodOptional<z.ZodString>;
                          upscaleConfig: z.ZodOptional<
                              z.ZodObject<
                                  { upscaleFactor: z.ZodEnum<[(...), (...)]> },
                                  "strip",
                                  z.ZodTypeAny,
                                  { upscaleFactor: "x2" | "x4" },
                                  { upscaleFactor: "x2" | "x4" },
                              >,
                          >;
                      },
                  >,
                  z.ZodTypeAny,
                  "passthrough",
              >,
              z.objectInputType<
                  z.objectUtil.extendShape<
                      {
                          maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                          stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                          temperature: z.ZodOptional<z.ZodNumber>;
                          topK: z.ZodOptional<z.ZodNumber>;
                          topP: z.ZodOptional<z.ZodNumber>;
                          version: z.ZodOptional<z.ZodString>;
                      },
                      {
                          addWatermark: z.ZodOptional<z.ZodBoolean>;
                          aspectRatio: z.ZodOptional<
                              z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                          >;
                          editConfig: z.ZodOptional<
                              z.ZodObject<
                                  {
                                      editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                      guidanceScale: z.ZodOptional<z.ZodNumber>;
                                      maskDilation: z.ZodOptional<z.ZodNumber>;
                                      maskMode: z.ZodOptional<
                                          z.ZodObject<(...), (...), (...), (...), (...)>,
                                      >;
                                      productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                  },
                                  "passthrough",
                                  z.ZodTypeAny,
                                  z.objectOutputType<
                                      {
                                          editMode: z.ZodOptional<(...)>;
                                          guidanceScale: z.ZodOptional<(...)>;
                                          maskDilation: z.ZodOptional<(...)>;
                                          maskMode: z.ZodOptional<(...)>;
                                          productPosition: z.ZodOptional<(...)>;
                                      },
                                      z.ZodTypeAny,
                                      "passthrough",
                                  >,
                                  z.objectInputType<
                                      {
                                          editMode: z.ZodOptional<(...)>;
                                          guidanceScale: z.ZodOptional<(...)>;
                                          maskDilation: z.ZodOptional<(...)>;
                                          maskMode: z.ZodOptional<(...)>;
                                          productPosition: z.ZodOptional<(...)>;
                                      },
                                      z.ZodTypeAny,
                                      "passthrough",
                                  >,
                              >,
                          >;
                          language: z.ZodOptional<
                              z.ZodEnum<
                                  [
                                      "auto",
                                      "en",
                                      "es",
                                      "hi",
                                      "ja",
                                      "ko",
                                      "pt",
                                      "zh-TW",
                                      "zh",
                                      "zh-CN",
                                  ],
                              >,
                          >;
                          location: z.ZodOptional<z.ZodString>;
                          mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                          negativePrompt: z.ZodOptional<z.ZodString>;
                          personGeneration: z.ZodOptional<
                              z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                          >;
                          safetySetting: z.ZodOptional<
                              z.ZodEnum<
                                  ["block_most", "block_some", "block_few", "block_fewest"],
                              >,
                          >;
                          seed: z.ZodOptional<z.ZodNumber>;
                          storageUri: z.ZodOptional<z.ZodString>;
                          upscaleConfig: z.ZodOptional<
                              z.ZodObject<
                                  { upscaleFactor: z.ZodEnum<[(...), (...)]> },
                                  "strip",
                                  z.ZodTypeAny,
                                  { upscaleFactor: "x2" | "x4" },
                                  { upscaleFactor: "x2" | "x4" },
                              >,
                          >;
                      },
                  >,
                  z.ZodTypeAny,
                  "passthrough",
              >,
          >,
      >

    • Parameters

      • name: string
      • Optionalconfig: any

      Returns ModelReference<z.ZodTypeAny>