// 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";
import type { SampleMethod } from "./SampleMethod";

/**
 * SAMPLE / TABLESAMPLE clause
 */
export type Sample = { method: SampleMethod, size: Expression, seed: Expression | null, 
/**
 * ClickHouse OFFSET expression after SAMPLE size
 */
offset: Expression | null, 
/**
 * Whether the unit comes after the size (e.g., "100 ROWS" vs "ROW 100")
 */
unit_after_size: boolean, 
/**
 * Whether the keyword was SAMPLE (true) or TABLESAMPLE (false)
 */
use_sample_keyword: boolean, 
/**
 * Whether the method was explicitly specified (BERNOULLI, SYSTEM, etc.)
 */
explicit_method: boolean, 
/**
 * Whether the method keyword appeared before the size (TABLESAMPLE BERNOULLI (10))
 */
method_before_size: boolean, 
/**
 * Whether SEED keyword was used (true) or REPEATABLE (false)
 */
use_seed_keyword: boolean, 
/**
 * BUCKET numerator for Hive bucket sampling (BUCKET 1 OUT OF 5)
 */
bucket_numerator: Expression | null, 
/**
 * BUCKET denominator (the 5 in BUCKET 1 OUT OF 5)
 */
bucket_denominator: Expression | null, 
/**
 * BUCKET field for ON clause (BUCKET 1 OUT OF 5 ON x)
 */
bucket_field: Expression | null, 
/**
 * Whether this is a DuckDB USING SAMPLE clause (vs SAMPLE/TABLESAMPLE)
 */
is_using_sample: boolean, 
/**
 * Whether the unit was explicitly PERCENT (vs ROWS)
 */
is_percent: boolean, 
/**
 * Whether to suppress method output (for cross-dialect transpilation)
 */
suppress_method_output: boolean, };
