///
import * as driver from 'cassandra-driver';
import { TypeDefinition } from './Type';
import { Raw } from './Raw';
import { TransformType, TransformPossibleType } from './TransformType';
export { TransformType, TransformPossibleType, } from './TransformType';
export interface Tuple {
elements: T;
length: number;
get(index: number): any;
toString(): string;
toJSON(): string;
values(): T;
}
export declare type ColumnDefinition = {
[name: string]: TypeDefinition;
};
export interface NativeTypeMap {
ascii: string;
bigint: typeof driver.types.Long;
blob: Buffer;
boolean: boolean;
counter: typeof driver.types.Long;
date: driver.types.LocalDate;
decimal: driver.types.BigDecimal;
double: number;
float: number;
inet: driver.types.InetAddress;
int: number;
smallint: number;
text: string;
time: driver.types.LocalTime;
timestamp: Date;
timeuuid: driver.types.TimeUuid;
tinyint: number;
uuid: driver.types.Uuid;
varchar: string;
varint: driver.types.Integer;
}
export interface PossibleNativeTypeMap {
ascii: string;
bigint: number | string | typeof driver.types.Long;
blob: Buffer | string;
boolean: boolean | string;
counter: string | typeof driver.types.Long | number;
date: string | driver.types.LocalDate;
decimal: string | driver.types.BigDecimal;
double: string | number;
float: string | number;
inet: string | driver.types.InetAddress;
int: string | number;
smallint: string | number;
text: string;
time: string | driver.types.LocalTime;
timestamp: string | Date;
timeuuid: string | driver.types.TimeUuid;
tinyint: string | number;
uuid: string | driver.types.Uuid;
varchar: string | string;
varint: string | driver.types.Integer;
}
export declare type FormatSet = Set;
export declare type FormatList = T[];
export declare type FormatMap = Map;
export declare type FormatTuple = Tuple;
export declare type FormatPossibleSet = Set | T[];
export declare type FormatPossibleList = T[];
export declare type FormatPossibleMap = Map | [K, V][];
export declare type FormatPossibleTuple = Tuple | T;
export declare type TransformColumnDefinition = {
[K in StringKey]: TransformType;
};
export declare type TransformPossibleColumnDefinition = {
[K in StringKey]: TransformPossibleType;
};
export declare type StringKey = Exclude;
export interface SelectionAlias, A extends string = A> {
select: K;
alias: A;
}
export declare type Selection = StringKey, A extends string = StringKey> = SelectionAlias | K;
export declare function getColumnType(def: TypeDefinition): Raw;