import { BaseStatement } from './BaseStatement'; import { SelectStatement } from './SelectStatement'; import { InsertStatement } from './InsertStatement'; import { UpdateStatement } from './UpdateStatement'; import { DeleteStatement } from './DeleteStatement'; import { CreateMaterializedViewStatement } from './CreateMaterializedViewStatement'; import { CreateColumnFamilyIndexStatement } from './CreateColumnFamilyIndexStatement'; import { Raw } from './Raw'; import { ColumnDefinition, TransformColumnDefinition, TransformPossibleColumnDefinition, Selection, StringKey } from './ColumnDefinition'; export interface ColumnFamilyOptions { bloomFilterFpChance?: number; comment?: string; crcCheckChance?: number; dclocalReadRepairChange?: number; defaultTimeToLive?: number; gcGraceSeconds?: number; maxIndexInterval?: number; memtableFlushPeriodInMs?: number; minIndexInterval?: number; readRepairChance?: number; speculativeRetry?: string; caching?: { keys?: string; rowsPerPartition?: string; }; compression?: { chunkLengthInKb?: number; class?: string; enabled?: boolean; }; compaction?: { class?: string; maxThreshold?: number; minThreshold?: number; }; [name: string]: any; } export declare class CreateColumnFamilyStatement = never, J extends Exclude, I> = never, N extends string = never> extends BaseStatement { static Update: typeof UpdateStatement; static Insert: typeof InsertStatement; static Delete: typeof DeleteStatement; static CreateColumnFamilyIndex: typeof CreateColumnFamilyIndexStatement; static CreateMaterializedView: typeof CreateMaterializedViewStatement; protected nullableColumns: N[]; protected keyspaceDef: Raw; protected ifNotExistsDef: boolean; protected columnFamilyDef: Raw; protected columnDefs: ColumnDefinition; protected partitionKeyDefs: I[]; protected clusteringKeyDefs: J[]; protected clusteringOrderDefs: ([J, 'ASC' | 'DESC'])[]; protected optionsDef: ColumnFamilyOptions; keyspace(name: string | Raw): this; as(name: string | Raw): this; as(keyspace: string | Raw, name: string | Raw): this; ifNotExists(value?: boolean): this; columns(columns: B): CreateColumnFamilyStatement, TransformPossibleColumnDefinition>; partitionKeys>(...columns: B[]): CreateColumnFamilyStatement; clusteringKeys, I>>(...columns: B[]): CreateColumnFamilyStatement; nullable>(...columns: Exclude[]): CreateColumnFamilyStatement; withOptions(options: ColumnFamilyOptions): this; withClusteringOrder(...clusteringOrders: ([J, 'ASC' | 'DESC'])[]): this; createMaterializedView(name: string | Raw): CreateMaterializedViewStatement; createMaterializedView(keyspace: string, name: string): CreateMaterializedViewStatement; protected validate(): void; protected getParams(): any[]; protected getQuery(): string; build(): Raw; isModel(data: any): data is CFModel; isInsertInput(data: any): data is CFInsertInput; isUpdateInput(data: any): data is CFUpdateInput; createIndex>(column: K | Raw, name?: string | Raw): CreateColumnFamilyIndexStatement; createIndex>(column: [K | Raw, 'FULL' | 'ENTRIES' | 'KEYS' | 'VALUES'], name?: string | Raw): CreateColumnFamilyIndexStatement; select(): SelectStatement; select(selection: '*'): SelectStatement; select>(selection: SS): SelectStatement ? { [K2 in A]: R[K]; } : never>; select>(select: K[]): SelectStatement>; select, A extends string>(select: K, alias: A): SelectStatement; insert(): InsertStatement; insert(data: Partial<{ [K in StringKey]: S[K]; }>): InsertStatement; insert>(select: K, replace: S[K]): InsertStatement; update(): UpdateStatement; update(data: Partial<{ [K in StringKey]: S[K]; }>): UpdateStatement; update>(data: ([K, S[K]])[]): UpdateStatement; update>(selection: K, value: S[K]): UpdateStatement; delete(): DeleteStatement; delete>(columns: K[]): DeleteStatement; } export declare type CFModel = T extends CreateColumnFamilyStatement ? Pick, N>> & Partial, I | J | Exclude, N>>>> : (T extends CreateMaterializedViewStatement ? Pick, N>> & Partial, I | J | Exclude, N>>>> : any); export declare type CFUpdateInput = T extends CreateColumnFamilyStatement ? ({ [K in Exclude, N | I | J>]?: S[K]; } & { [K in Exclude, I | J | Exclude, N>>]?: S[K] | null; }) : (T extends CreateMaterializedViewStatement ? ({ [K in Exclude, N | I | J>]?: S[K]; } & { [K in Exclude, I | J | Exclude, N>>]?: S[K] | null; }) : any); export declare type CFInsertInput = T extends CreateColumnFamilyStatement ? ({ [K in I | J | Exclude, N>]: S[K]; } & { [K in Exclude, I | J | Exclude, N>>]?: S[K] | null; }) : (T extends CreateMaterializedViewStatement ? ({ [K in I | J | Exclude, N>]: S[K]; } & { [K in Exclude, I | J | Exclude, N>>]?: S[K] | null; }) : any);