import { AthenaClient } from '@aws-sdk/client-athena'; import { CreateAthenaCredentials, DimensionType, Metric, SupportedDbtAdapter, TimeIntervalUnit, WarehouseResults, WarehouseTables, WarehouseTypes, type ResultNumericKind, type TimestampDomain } from '@lightdash/common'; import { WarehouseCatalog } from '../types'; import WarehouseBaseClient from './WarehouseBaseClient'; import WarehouseBaseSqlBuilder from './WarehouseBaseSqlBuilder'; export declare enum AthenaTypes { BOOLEAN = "boolean", TINYINT = "tinyint", SMALLINT = "smallint", INTEGER = "integer", BIGINT = "bigint", REAL = "real", FLOAT = "float", 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", ARRAY = "array", MAP = "map", ROW = "row", IPADDRESS = "ipaddress", UUID = "uuid" } export declare const getAthenaTimestampDomain: (type: AthenaTypes | string) => TimestampDomain | undefined; export declare const getAthenaNumericKind: (type: AthenaTypes | string, scale: number | undefined) => ResultNumericKind | null; export declare const convertDataTypeToDimensionType: (type: AthenaTypes | string) => DimensionType; export declare class AthenaSqlBuilder extends WarehouseBaseSqlBuilder { readonly type = WarehouseTypes.ATHENA; getAdapterType(): SupportedDbtAdapter; supportsCteMaterialization(): boolean; getEscapeStringQuoteChar(): string; getMetricSql(sql: string, metric: Metric): string; getFloatingType(): string; escapeString(value: string): string; getIntervalSql(value: number, unit: TimeIntervalUnit): string; getTimestampDiffSeconds(startTimestampSql: string, endTimestampSql: string): string; getMedianSql(valueSql: string): string; } export declare class AthenaWarehouseClient extends WarehouseBaseClient { client: AthenaClient; constructor(credentials: CreateAthenaCredentials); private waitForQueryCompletion; private parseValue; streamQuery(sql: string, streamCallback: (data: WarehouseResults) => void | Promise, options: { tags?: Record; timezone?: string; }): Promise; getCatalog(requests: { database: string; schema: string; table: string; }[]): Promise; getAllTables(): Promise; getFields(tableName: string, schema?: string, database?: string): Promise; parseError(error: Error): Error; } //# sourceMappingURL=AthenaWarehouseClient.d.ts.map