// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Expression } from "./Expression";

/**
 * Represent a scalar function call (e.g. `UPPER(name)`, `COALESCE(a, b)`).
 *
 * This is the generic function node. Well-known aggregates, window functions,
 * and built-in functions each have their own dedicated `Expression` variants
 * (e.g. `Count`, `Sum`, `WindowFunction`). Functions that the parser does
 * not recognize as built-ins are represented with this struct.
 */
export type Function = { 
/**
 * The function name, as originally written (may be schema-qualified).
 */
name: string, 
/**
 * Positional arguments to the function.
 */
args: Array<Expression>, 
/**
 * Whether DISTINCT was specified inside the call (e.g. `COUNT(DISTINCT x)`).
 */
distinct: boolean, trailing_comments: Array<string>, 
/**
 * Whether this function uses bracket syntax (e.g., MAP[keys, values])
 */
use_bracket_syntax: boolean, 
/**
 * Whether this function was called without parentheses (e.g., CURRENT_TIMESTAMP vs CURRENT_TIMESTAMP())
 */
no_parens: boolean, 
/**
 * Whether the function name was quoted (e.g., `p.d.UdF` in BigQuery)
 */
quoted: boolean, };
