// 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 an IN predicate (`x IN (1, 2, 3)` or `x IN (SELECT ...)`).
 *
 * Either `expressions` (a value list) or `query` (a subquery) is populated,
 * but not both. When `not` is true, the predicate is `NOT IN`.
 */
export type In = { 
/**
 * The expression being tested.
 */
this: Expression, 
/**
 * The value list (mutually exclusive with `query`).
 */
expressions: Array<Expression>, 
/**
 * A subquery (mutually exclusive with `expressions`).
 */
query: Expression | null, 
/**
 * Whether this is NOT IN.
 */
not: boolean, global?: boolean, 
/**
 * BigQuery: IN UNNEST(expr)
 */
unnest?: Expression | null, };
