import { IPushBuffer, PushBuffer } from './PushBuffer';
import * as G from './GeneratorUtils';
import { Pipeline, PipelineTransform } from './Pipeline';
/**
 * Pipeline that is also a PushBuffer.
 * i.e. can call .push to push data into pipeline and .pipe to transform it.
 */
export declare class PushPipeline<InType, OutType = InType> extends Pipeline<InType, OutType> implements IPushBuffer<InType, OutType> {
    readonly source: PushBuffer<InType>;
    constructor(bufferSize?: number);
    pipe<NewOutType>(fn: PipelineTransform<OutType, NewOutType>): PushPipeline<InType, NewOutType>;
    filter(fn: G.GeneratorFilter<OutType>): PushPipeline<InType, OutType>;
    push(item: InType | Error): Promise<boolean>;
    handleError(err: Error): Promise<void>;
    end(err?: Error): void;
    endWrite(err?: Error): void;
    isDone(): boolean;
    get length(): number;
    clear(): void;
}
