import { Task, Sink } from '../interfaces';
export declare type RunFn<T> = (time: number, value: T, sink: Sink<T>) => void;
export declare class PropagateTask<T> implements Task {
    private _run;
    private value;
    private sink;
    private active;
    constructor(run: RunFn<T>, value: T, sink: Sink<T>);
    static event<T>(value: T, sink: Sink<T>): PropagateTask<T>;
    static error<T>(err: Error, sink: Sink<any>): PropagateTask<Error>;
    static end<T>(value: T, sink: Sink<T>): PropagateTask<T>;
    run(time: number): void;
    error(time: number, err: Error): void;
    dispose(): void;
}
