import { CreateTrinoCredentials, Metric, SupportedDbtAdapter, TimeIntervalUnit, WarehouseResults, WarehouseTypes, type ResultNumericKind, type TimestampDomain } from '@lightdash/common'; import { ConnectionOptions } from 'trino-client'; import { WarehouseCatalog } from '../types'; import WarehouseBaseClient from './WarehouseBaseClient'; import WarehouseBaseSqlBuilder from './WarehouseBaseSqlBuilder'; export declare enum TrinoTypes { BOOLEAN = "boolean", TINYINT = "tinyint", SMALLINT = "smallint", INTEGER = "integer", BIGINT = "bigint", REAL = "real", DOUBLE = "double", DECIMAL = "decimal", VARCHAR = "varchar", CHAR = "char", VARBINARY = "varbinary", JSON = "json", DATE = "date", TIME = "time", TIME_TZ = "time with time zone", TIMESTAMP = "timestamp", TIMESTAMP_TZ = "timestamp with time zone", INTERVAL_YEAR_MONTH = "interval year to month", INTERVAL_DAY_TIME = "interval day to second", ARRAY = "array", MAP = "map", ROW = "row", IPADDRESS = "ipaddress", UUID = "uuid" } interface TableInfo { database: string; schema: string; table: string; } export declare const getTrinoTimestampDomain: (type: TrinoTypes | string) => TimestampDomain | undefined; export declare const getTrinoNumericKind: (type: TrinoTypes | string) => ResultNumericKind | null; export declare class TrinoSqlBuilder extends WarehouseBaseSqlBuilder { readonly type = WarehouseTypes.TRINO; getAdapterType(): SupportedDbtAdapter; supportsCteMaterialization(): boolean; getEscapeStringQuoteChar(): string; getMetricSql(sql: string, metric: Metric): string; getFloatingType(): string; escapeString(value: string): string; castToTimestamp(date: Date): string; castToDate(date: Date): string; getIntervalSql(value: number, unit: TimeIntervalUnit): string; getTimestampDiffSeconds(startTimestampSql: string, endTimestampSql: string): string; getMedianSql(valueSql: string): string; } export declare class TrinoWarehouseClient extends WarehouseBaseClient { connectionOptions: ConnectionOptions; constructor(credentials: CreateTrinoCredentials); private getSession; streamQuery(sql: string, streamCallback: (data: WarehouseResults) => void | Promise, options: { tags?: Record; timezone?: string; }): Promise; getCatalog(requests: TableInfo[]): Promise; private sanitizeInput; getFields(tableName: string, schema?: string, database?: string, tags?: Record): Promise; getAllTables(): Promise<{ database: any; schema: any; table: any; tableType: import("@lightdash/common").WarehouseTableType; }[]>; } export {}; //# sourceMappingURL=TrinoWarehouseClient.d.ts.map