import type { PartitionKeyRange } from "../client/index.js";
import type { ClientContext } from "../ClientContext.js";
import type { DiagnosticNodeInternal } from "../diagnostics/DiagnosticNodeInternal.js";
import type { FeedOptions } from "../request/index.js";
import type { Response } from "../request/index.js";
import type { FetchFunctionCallback } from "./defaultQueryExecutionContext.js";
import { FetchResult } from "./FetchResult.js";
import type { CosmosHeaders } from "./headerUtils.js";
import type { SqlQuerySpec, FilterStrategy } from "./index.js";
/** @hidden */
export declare class DocumentProducer {
    private clientContext;
    private collectionLink;
    private query;
    targetPartitionKeyRange: PartitionKeyRange;
    fetchResults: FetchResult[];
    allFetched: boolean;
    private err;
    previousContinuationToken: string;
    continuationToken: string;
    generation: number;
    private internalExecutionContext;
    startEpk: string;
    endEpk: string;
    populateEpkRangeHeaders: boolean;
    private filter?;
    private queryExecutionInfo?;
    /**
     * Provides the Target Partition Range Query Execution Context.
     * @param clientContext  - The service endpoint to use to create the client.
     * @param collectionLink - Represents collection link
     * @param query          - A SQL query.
     * @param targetPartitionKeyRange - Query Target Partition key Range
     * @hidden
     */
    constructor(clientContext: ClientContext, collectionLink: string, query: SqlQuerySpec, targetPartitionKeyRange: PartitionKeyRange, options: FeedOptions, correlatedActivityId: string, startEpk?: string, endEpk?: string, populateEpkRangeHeaders?: boolean, filter?: FilterStrategy);
    peekBufferedItems(): any[];
    fetchFunction: FetchFunctionCallback;
    hasMoreResults(): boolean;
    gotSplit(): boolean;
    private _updateStates;
    private static _needPartitionKeyRangeCacheRefresh;
    /**
     * Fetches and bufferes the next page of results in internal buffer
     */
    bufferMore(diagnosticNode: DiagnosticNodeInternal): Promise<CosmosHeaders>;
    getTargetPartitionKeyRange(): PartitionKeyRange;
    /**
     * Peak the next item in the buffer
     */
    peakNextItem(): any;
    /**
     * Returns the first item in the buffered results if any, or [] otherwise.
     */
    fetchNextItem(): Promise<Response<any>>;
    /**
     * Fetches all the buffered results
     */
    fetchBufferedItems(): Promise<Response<any[]>>;
    /**
     * Retrieve the current element on the DocumentProducer.
     */
    private current;
    getQueryExecutionInfo(): {
        reverseRidEnabled: boolean;
        reverseIndexScan: boolean;
    } | undefined;
}
//# sourceMappingURL=documentProducer.d.ts.map