/// import type { Maybe } from '../jsutils/Maybe'; export interface IBundler { queueData: (index: number, result: TDataResult) => void; queueError: (index: number, result: TErrorResult) => void; setTotal: (total: number) => void; } export interface BundlerOptions< TDataResult, TErrorResult, TDataContext, TErrorContext, > { initialIndex: number; maxBundleSize: number; maxInterval: Maybe; createDataBundleContext: (index: number, result: TDataResult) => TDataContext; createErrorBundleContext: ( index: number, result: TErrorResult, ) => TErrorContext; onSubsequentData: ( index: number, result: TDataResult, context: TDataContext, ) => void; onSubsequentError: ( index: number, result: TErrorResult, context: TErrorContext, ) => void; onDataBundle: (context: TDataContext) => void; onErrorBundle: (context: TErrorContext) => void; } interface BundleTimingContext { timeout: ReturnType | undefined; maxInterval: number; lastTime: number; } /** * @internal */ export declare class Bundler< TDataResult, TErrorResult, TDataContext, TErrorContext, > implements IBundler { private _maxBundleSize; private _createDataBundleContext; private _createErrorBundleContext; private _onSubsequentData; private _onSubsequentError; private _onDataBundle; private _onErrorBundle; private _timingContext; private _currentContext; private _currentBundleSize; private _count; private _total; constructor({ initialIndex, maxBundleSize, maxInterval, createDataBundleContext, createErrorBundleContext, onSubsequentData, onSubsequentError, onDataBundle, onErrorBundle, }: BundlerOptions); queueData(index: number, result: TDataResult): void; queueError(index: number, result: TErrorResult): void; setTotal(total: number): void; _clearCurrentTimer(timingContext: BundleTimingContext): void; _startNewTimer(timingContext: BundleTimingContext): void; _flushCurrentBundle(timingContext: BundleTimingContext): void; _restartTimer(timingContext: BundleTimingContext): void; _updateDataContext(index: number, result: TDataResult): TDataContext; _getNewDataContext(index: number, result: TDataResult): TDataContext; _updateErrorContext(index: number, result: TErrorResult): TErrorContext; _getNewErrorContext(index: number, result: TErrorResult): TErrorContext; _onBundle( bundleContext: | { isData: true; context: TDataContext; } | { isData: false; context: TErrorContext; }, ): void; } export {};