import { AnyType, CreateWarehouseCredentials, DimensionType, Metric, SupportedDbtAdapter, TimeIntervalUnit, UnnestSql, UnnestSqlArgs, WarehouseCatalog, WarehouseResults, WarehouseSqlBuilder, WarehouseTables, WeekDay, type TimestampDomain, type WarehouseExecuteAsyncQuery, type WarehouseExecuteAsyncQueryArgs, type WarehouseQueryPhase } from '@lightdash/common'; import { type WarehouseClient } from '../types'; export default abstract class WarehouseBaseClient implements WarehouseClient { credentials: T; protected sqlBuilder: WarehouseSqlBuilder; protected constructor(credentials: T, sqlBuilder: WarehouseSqlBuilder); getAdapterType(): SupportedDbtAdapter; supportsCteMaterialization(): boolean; getStringQuoteChar(): string; getEscapeStringQuoteChar(): string; getFieldQuoteChar(): string; getUnnestSql(args: UnnestSqlArgs): UnnestSql | null; getFloatingType(): string; getNullSafeEqualSql(left: string, right: string): string; getNullSafeEqualJoinSql(left: string, right: string): string; buildArrayAgg(expression: string, orderBy?: string): string; buildArray(elements: string[]): string; abstract getCatalog(config: { database: string; schema: string; table: string; }[]): Promise; abstract streamQuery(query: string, streamCallback: (data: WarehouseResults) => void | Promise, options: { values?: AnyType[]; queryParams?: Record; tags?: Record; timezone?: string; onPhaseTiming?: (phase: WarehouseQueryPhase, durationMs: number) => void; }): Promise; executeAsyncQuery({ sql, values, queryParams, tags, timezone, }: WarehouseExecuteAsyncQueryArgs, resultsStreamCallback?: (rows: WarehouseResults['rows'], fields: WarehouseResults['fields']) => void | Promise): Promise; runQuery(sql: string, tags?: Record, timezone?: string, values?: AnyType[], queryParams?: Record): Promise<{ fields: Record; rows: Record[]; }>; getMetricSql(sql: string, metric: Metric): string; getStartOfWeek(): WeekDay | null | undefined; test(): Promise; getSessionTimezone(): Promise; concatString(...args: string[]): string; abstract getAllTables(schema?: string, tags?: Record): Promise; abstract getFields(tableName: string, schema?: string, database?: string, tags?: Record): Promise; parseWarehouseCatalog(rows: Record[], mapFieldType: (type: string) => DimensionType, mapTimestampDomain?: (type: string) => TimestampDomain | undefined): WarehouseCatalog; parseError(error: Error): Error; escapeString(value: string): string; castToTimestamp(date: Date): string; castToDate(date: Date): string; castToNaiveTimestamp(date: Date): string; getIntervalSql(value: number, unit: TimeIntervalUnit): string; getTimestampDiffSeconds(startTimestampSql: string, endTimestampSql: string): string; getMedianSql(valueSql: string): string; } //# sourceMappingURL=WarehouseBaseClient.d.ts.map