import { AnalyticsQueryOptions, AnalyticsResult, AnalyticsMetaData } from './analyticstypes';
import { CppAnalyticsResponse } from './binding';
import { Cluster } from './cluster';
import { ObservableRequestHandler } from './observabilityhandler';
import { ObservabilityInstruments } from './observabilitytypes';
import { StreamableRowPromise } from './streamablepromises';
/**
 * @internal
 */
export declare class AnalyticsExecutor {
    private _cluster;
    /**
     * @internal
     */
    constructor(cluster: Cluster);
    /**
     * @internal
     */
    get observabilityInstruments(): ObservabilityInstruments;
    /**
     * @internal
     */
    static _processAnalyticsResponse<TRow>(emitter: StreamableRowPromise<AnalyticsResult<TRow>, TRow, AnalyticsMetaData>, err: Error | null, resp: CppAnalyticsResponse, obsReqHandler?: ObservableRequestHandler): void;
    /**
     * @internal
     */
    static executePromise<TRow = any>(queryPromise: Promise<[Error | null, CppAnalyticsResponse]>, obsReqHandler: ObservableRequestHandler): StreamableRowPromise<AnalyticsResult<TRow>, TRow, AnalyticsMetaData>;
    /**
     * @internal
     */
    query<TRow = any>(query: string, options: AnalyticsQueryOptions): StreamableRowPromise<AnalyticsResult<TRow>, TRow, AnalyticsMetaData>;
}
