See declare in the GNU bash manual.
declare [-aAfFgiIlnrtux] [-p] [name[=value] …]
-a Each name is an indexed array variable (see Arrays). -A Each name is an
associative array variable (see Arrays).
-f Use function names only.
-i The variable is to be treated as an integer; arithmetic evaluation (see
Shell Arithmetic) is performed when the variable is assigned a value.
-l When the variable is assigned a value, all upper-case characters are
converted to lower-case. The upper-case attribute is disabled.
-n Give each name the nameref attribute, making it a name reference to another
variable. That other variable is defined by the value of name. All references,
assignments, and attribute modifications to name, except for those using or
changing the -n attribute itself, are performed on the variable referenced by
name’s value. The nameref attribute cannot be applied to array variables.
-r Make names readonly. These names cannot then be assigned values by
subsequent assignment statements or unset.
-t Give each name the trace attribute. Traced functions inherit the DEBUG and
RETURN traps from the calling shell. The trace attribute has no special meaning
for variables.
-u When the variable is assigned a value, all lower-case characters are
converted to upper-case. The lower-case attribute is disabled.
-x Mark each name for export to subsequent commands via the environment.
-p option will display the attributes and values of each name. When -p is used
with name arguments, additional options, other than -f and -F, are ignored.
When -p is supplied without name arguments, declare will display the attributes
and values of all variables having the attributes specified by the additional
options. If no other options are supplied with -p, declare will display the
attributes and values of all shell variables. The -f option will restrict the
display to shell functions.
The -F option inhibits the display of function definitions; only the function
name and attributes are printed. If the extdebug shell option is enabled using
shopt (see The Shopt Builtin), the source file name and line number where each
name is defined are displayed as well. -F implies -f.