import type { ClickHouseColumnBuilderLike, ClickHouseColumnDefaultValue, ClickHouseDefaultInput, ClickHouseColumnDefinition, ClickHouseColumnType } from './types.js'; type NestedColumnTypeInput = string | ClickHouseColumnBuilder | ClickHouseColumnType; /** * Immutable builder for ClickHouse column definitions. * * Each modifier returns a new builder so reusable column fragments can be shared * safely without later calls mutating earlier definitions. */ export declare class ClickHouseColumnBuilder implements ClickHouseColumnBuilderLike { private readonly columnType; private readonly defaultExpression?; constructor(columnType: ClickHouseColumnType, defaultExpression?: ClickHouseColumnDefaultValue | undefined); /** * Adds a column default. * * Primitive values are rendered as SQL literals. Use the `sql` template tag for * database expressions such as `sql\`now()\``. */ default(expression: ClickHouseDefaultInput): ClickHouseColumnBuilder; /** * Wraps this column type in `Nullable(...)`. */ nullable(): ClickHouseColumnBuilder; /** * Wraps this column type in `LowCardinality(...)`. */ lowCardinality(): ClickHouseColumnBuilder; /** * Materializes the builder into a named column definition for a table AST. */ build(name: string): ClickHouseColumnDefinition; /** * Returns the underlying type AST for nested type builders. */ toColumnType(): ClickHouseColumnType; } /** * Factory helpers for common ClickHouse column types. * * Examples: * `column.String().default('pending')`, `column.Nullable('String')`, * `column.DateTime('UTC')`. */ export declare const column: { Raw: (type: string) => ClickHouseColumnBuilder; Int8: () => ClickHouseColumnBuilder; Int16: () => ClickHouseColumnBuilder; Int32: () => ClickHouseColumnBuilder; Int64: () => ClickHouseColumnBuilder; Int128: () => ClickHouseColumnBuilder; Int256: () => ClickHouseColumnBuilder; UInt8: () => ClickHouseColumnBuilder; UInt16: () => ClickHouseColumnBuilder; UInt32: () => ClickHouseColumnBuilder; UInt64: () => ClickHouseColumnBuilder; UInt128: () => ClickHouseColumnBuilder; UInt256: () => ClickHouseColumnBuilder; Float32: () => ClickHouseColumnBuilder; Float64: () => ClickHouseColumnBuilder; Decimal: (precision: number, scale: number) => ClickHouseColumnBuilder; Bool: () => ClickHouseColumnBuilder; Boolean: () => ClickHouseColumnBuilder; String: () => ClickHouseColumnBuilder; FixedString: (length: number) => ClickHouseColumnBuilder; Date: () => ClickHouseColumnBuilder; Date32: () => ClickHouseColumnBuilder; DateTime: (timezone?: string) => ClickHouseColumnBuilder; DateTime64: (precision: number, timezone?: string) => ClickHouseColumnBuilder; UUID: () => ClickHouseColumnBuilder; IPv4: () => ClickHouseColumnBuilder; IPv6: () => ClickHouseColumnBuilder; JSON: () => ClickHouseColumnBuilder; LowCardinality: (inner: NestedColumnTypeInput) => ClickHouseColumnBuilder; Nullable: (inner: NestedColumnTypeInput) => ClickHouseColumnBuilder; }; export {}; //# sourceMappingURL=column.d.ts.map