Project: /docs/reference/js/_project.yaml Book: /docs/reference/_book.yaml page_type: reference {% comment %} DO NOT EDIT THIS FILE! This is generated by the JS SDK team, and any local changes will be overwritten. Changes should be made in the source code at https://github.com/firebase/firebase-js-sdk {% endcomment %} # TemplateFunctionDeclaration interface > This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment. > Structured representation of a template function declaration. Included in this declaration are the function name and parameters. This `TemplateFunctionDeclaration` is a representation of a block of code that can be used as a Tool by the model and executed by the client. Note: Template function declarations do not support description fields. Signature: ```typescript export interface TemplateFunctionDeclaration ``` ## Properties | Property | Type | Description | | --- | --- | --- | | [description](./ai.templatefunctiondeclaration.md#templatefunctiondeclarationdescription) | never | (Public Preview) Description is intentionally unsupported for template function declarations. | | [functionReference](./ai.templatefunctiondeclaration.md#templatefunctiondeclarationfunctionreference) | Function | (Public Preview) Reference to an actual function to call. Specifying this will cause the function to be called automatically when requested by the model. | | [name](./ai.templatefunctiondeclaration.md#templatefunctiondeclarationname) | string | (Public Preview) The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a max length of 64. | | [parameters](./ai.templatefunctiondeclaration.md#templatefunctiondeclarationparameters) | [ObjectSchema](./ai.objectschema.md#objectschema_class) \| [ObjectSchemaRequest](./ai.objectschemarequest.md#objectschemarequest_interface) | (Public Preview) Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. Parameter names are case-sensitive. For a function with no parameters, this can be left unset. | ## TemplateFunctionDeclaration.description > This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment. > Description is intentionally unsupported for template function declarations. Signature: ```typescript description?: never; ``` ## TemplateFunctionDeclaration.functionReference > This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment. > Reference to an actual function to call. Specifying this will cause the function to be called automatically when requested by the model. Signature: ```typescript functionReference?: Function; ``` ## TemplateFunctionDeclaration.name > This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment. > The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a max length of 64. Signature: ```typescript name: string; ``` ## TemplateFunctionDeclaration.parameters > This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment. > Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. Parameter names are case-sensitive. For a function with no parameters, this can be left unset. Signature: ```typescript parameters?: ObjectSchema | ObjectSchemaRequest; ```