If you want something more genenral, then a common pattern is as follows.
// conf.typ
#let conf(font-size: 12pt) = {
let template(body) = {
set text(font-size)
body
}
let big(body) = {
set text(font-size * 2)
body
}
// This creates a dictionary with `big` and `template` as keys and the above functions as values.
(big: big, template: template)
}
And how should I modify the variables of the template function?
// conf.typ
#let conf(font_size: 14pt) = {
// I want to modify the `fli` variables in the main.typ.
let template(body, fli: 2em) = {
set text(font_size)
set par(first-line-indent: fli)
body
}
let big(body) = {
text(font_size * 2, body)
}
(template: template, big: big)
}