import { ReadableStream } from 'ts-stream'; import { SnowflakeObject, Constructor } from './mapping/mapper'; import { SqlCommand, ConnectionOptions, SnowflakeConnection, GlobalConfigOptions } from './snowflake-core'; import { Query } from './queries'; import './stream-extensions'; import './promise-extensions'; export interface Logger { info(msg: string): void; error(msg: string): void; log(msg: string): void; warn(msg: string): void; } export declare class SnowflakeClient { private readonly conn; private readonly logger; static configure(opts: Partial>): void; constructor(connection: SnowflakeConnection, logger: Logger); static createConnection(opts: ConnectionOptions, logger?: Logger): Promise; execute(args: SqlCommand | string): Promise; write(table: Constructor, items: Array>): Promise; writeStream(table: Constructor, stream: ReadableStream>, batchSize: number): Promise; sink(table: Constructor, batchSize: number): (stream: ReadableStream>) => Promise; readStreamOf(table: Constructor, query?: Query): ReadableStream; readStream(table: Constructor, sql: SqlCommand | string): ReadableStream; readStreamRaw(sql: SqlCommand | string): ReadableStream; }