///
import { Athena } from 'aws-sdk';
import { Transform } from 'stream';
import { AthenaRequest, AthenaRequestConfig } from './request';
export interface AthenaExecutionResult {
records: T[];
queryExecution: Athena.QueryExecution;
}
export interface AthenaExecutionSelect {
toPromise: () => Promise>;
toStream: () => Transform;
}
export interface AthenaClientConfig extends AthenaRequestConfig {
pollingInterval?: number;
queryTimeout?: number;
concurrentExecMax?: number;
execRightCheckInterval?: number;
skipFetchResult?: boolean;
}
export declare function setConcurrentExecMax(val: number): void;
export declare class AthenaClient {
private config;
private concurrentExecNum;
private request;
constructor(request: AthenaRequest, config: AthenaClientConfig);
execute(query: string): AthenaExecutionSelect;
execute(query: string, callback: (err?: Error, result?: AthenaExecutionResult) => void): void;
private _execute;
private canStartQuery;
private startQuery;
private endQuery;
}