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

/**
 * Represent a WITH clause containing one or more Common Table Expressions (CTEs).
 *
 * When `recursive` is true, the clause is `WITH RECURSIVE`, enabling CTEs
 * that reference themselves. Each CTE is defined in the `ctes` vector and
 * can be referenced by name in subsequent CTEs and in the main query body.
 */
export type With = { 
/**
 * The list of CTE definitions, in order.
 */
ctes: Array<Cte>, 
/**
 * Whether the WITH RECURSIVE keyword was used.
 */
recursive: boolean, 
/**
 * Leading comments before the statement
 */
leading_comments: Array<string>, 
/**
 * SEARCH/CYCLE clause for recursive CTEs (PostgreSQL)
 */
search?: Expression | null, };
