import type { ISink, ITask, ITime } from '../types.js'; export declare function runTask(time: ITime, task: ITask): void; export declare const propagateRunEventTask: (sink: ISink, run: (time: ITime, sink: ISink, value: TValue) => void, value: TValue) => PropagateRunEventTask; export declare const propagateRunTask: (sink: ISink, run: (time: ITime, sink: ISink) => void) => PropagateRunTask; export declare const propagateEndTask: (sink: ISink) => PropagateEndTask; export declare const propagateErrorEndTask: (sink: ISink, error: unknown) => PropagateErrorEndTask; export declare abstract class PropagateTask implements ITask, Disposable { readonly sink: ISink; active: boolean; constructor(sink: ISink); abstract runIfActive(time: ITime): void; [Symbol.dispose](): void; run(time: ITime): void; error(time: ITime, e: Error): void; } declare class PropagateRunEventTask extends PropagateTask { readonly runEvent: (time: ITime, sink: ISink, value: TValue) => void; readonly value: TValue; constructor(sink: ISink, runEvent: (time: ITime, sink: ISink, value: TValue) => void, value: TValue); runIfActive(time: ITime): void; } declare class PropagateRunTask extends PropagateTask { readonly runEvent: (time: ITime, sink: ISink) => void; constructor(sink: ISink, runEvent: (time: ITime, sink: ISink) => void); runIfActive(time: ITime): void; } declare class PropagateEndTask extends PropagateTask { runIfActive(time: ITime): void; } declare class PropagateErrorEndTask extends PropagateTask { readonly errorValue: unknown; constructor(sink: ISink, errorValue: unknown); runIfActive(time: ITime): void; } export {};