import { AsyncIterableX } from '../asynciterablex';
import { IRefCountList } from '../../iterable/operators/_refcountlist';
import { OperatorAsyncFunction } from '../../interfaces';
export declare class MemoizeAsyncBuffer<T> extends AsyncIterableX<T> {
    protected _source: AsyncIterator<T>;
    protected _buffer: IRefCountList<T>;
    protected _shared: Promise<IteratorResult<T>> | null;
    protected _error: any;
    protected _stopped: boolean;
    constructor(source: AsyncIterator<T>, buffer: IRefCountList<T>);
    [Symbol.asyncIterator](): AsyncGenerator<T, void, unknown>;
    protected _getIterable(offset?: number): AsyncGenerator<T, void, unknown>;
}
export declare function memoize<TSource>(readerCount?: number): OperatorAsyncFunction<TSource, TSource>;
export declare function memoize<TSource, TResult>(readerCount?: number, selector?: (value: AsyncIterableX<TSource>) => AsyncIterable<TResult>): OperatorAsyncFunction<TSource, TResult>;
