///
import { Readable } from 'stream';
import { CursorStreamOptions } from './CursorStreamOptions';
import { CursorSpecification } from './CursorSpecification';
import { StatementLogger } from '../logger/StatementLogger';
import { Cursor } from './Cursor';
import { DrivineLogger } from '../logger';
export declare abstract class AbstractCursor implements Cursor {
protected readonly sessionId: string;
protected readonly spec: CursorSpecification;
protected logger: DrivineLogger;
protected currentBatch: T[];
protected currentIndex: number;
protected stream?: Readable;
protected queryLogger: StatementLogger;
protected constructor(sessionId: string, spec: CursorSpecification);
[Symbol.asyncIterator](): AsyncIterator;
asStream(options?: CursorStreamOptions): Readable;
private composeStreamWithOptions;
private transformStream;
private readBatchIfExpired;
abstract close(): Promise;
abstract read(count: number): Promise;
}