import type { FieldInfo } from '../interfaces/field-info.js';
import type { QueryOptions } from '../interfaces/query-options.js';
import { SafeEventEmitter } from '../safe-event-emitter.js';
import type { AnyParseFunction, Maybe, Row } from '../types.js';
import type { Portal } from './portal.js';
import type { PreparedStatement } from './prepared-statement.js';
export declare class Cursor extends SafeEventEmitter implements AsyncDisposable {
    private readonly _statement;
    private readonly _portal;
    private readonly _parsers;
    private readonly _queryOptions;
    private _taskQueue;
    private _rows;
    private _closed;
    readonly fields: FieldInfo[];
    constructor(statement: PreparedStatement, portal: Portal, fields: FieldInfo[], parsers: AnyParseFunction[], queryOptions: QueryOptions);
    get rowType(): 'array' | 'object';
    get isClosed(): boolean;
    next(): Promise<Maybe<Row>>;
    fetch(nRows: number): Promise<Row[]>;
    close(): Promise<void>;
    private _fetchRows;
    [Symbol.asyncDispose](): Promise<void>;
}
