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;
```