| import SeriesModel from '../model/Series.js'; | 
| import { Pipeline } from './Scheduler.js'; | 
| import { Payload } from '../util/types.js'; | 
| import SeriesData from '../data/SeriesData.js'; | 
| export interface TaskContext { | 
|     outputData?: SeriesData; | 
|     data?: SeriesData; | 
|     payload?: Payload; | 
|     model?: SeriesModel; | 
| } | 
| export declare type TaskResetCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => TaskResetCallbackReturn<Ctx>; | 
| export declare type TaskResetCallbackReturn<Ctx extends TaskContext> = void | (TaskProgressCallback<Ctx> | TaskProgressCallback<Ctx>[]) | { | 
|     forceFirstProgress?: boolean; | 
|     progress: TaskProgressCallback<Ctx> | TaskProgressCallback<Ctx>[]; | 
| }; | 
| export declare type TaskProgressCallback<Ctx extends TaskContext> = (this: Task<Ctx>, params: TaskProgressParams, context: Ctx) => void; | 
| export declare type TaskProgressParams = { | 
|     start: number; | 
|     end: number; | 
|     count: number; | 
|     next?: TaskDataIteratorNext; | 
| }; | 
| export declare type TaskPlanCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => TaskPlanCallbackReturn; | 
| export declare type TaskPlanCallbackReturn = 'reset' | false | null | undefined; | 
| export declare type TaskCountCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => number; | 
| export declare type TaskOnDirtyCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => void; | 
| declare type TaskDataIteratorNext = () => number; | 
| declare type TaskDefineParam<Ctx extends TaskContext> = { | 
|     reset?: TaskResetCallback<Ctx>; | 
|     plan?: TaskPlanCallback<Ctx>; | 
|     count?: TaskCountCallback<Ctx>; | 
|     onDirty?: TaskOnDirtyCallback<Ctx>; | 
| }; | 
| export declare type PerformArgs = { | 
|     step?: number; | 
|     skip?: boolean; | 
|     modBy?: number; | 
|     modDataCount?: number; | 
| }; | 
| /** | 
|  * @param {Object} define | 
|  * @return See the return of `createTask`. | 
|  */ | 
| export declare function createTask<Ctx extends TaskContext>(define: TaskDefineParam<Ctx>): Task<Ctx>; | 
| export declare class Task<Ctx extends TaskContext> { | 
|     private _reset; | 
|     private _plan; | 
|     private _count; | 
|     private _onDirty; | 
|     private _progress; | 
|     private _callingProgress; | 
|     private _dirty; | 
|     private _modBy; | 
|     private _modDataCount; | 
|     private _upstream; | 
|     private _downstream; | 
|     private _dueEnd; | 
|     private _outputDueEnd; | 
|     private _settedOutputEnd; | 
|     private _dueIndex; | 
|     private _disposed; | 
|     __pipeline: Pipeline; | 
|     __idxInPipeline: number; | 
|     __block: boolean; | 
|     context: Ctx; | 
|     constructor(define: TaskDefineParam<Ctx>); | 
|     /** | 
|      * @param step Specified step. | 
|      * @param skip Skip customer perform call. | 
|      * @param modBy Sampling window size. | 
|      * @param modDataCount Sampling count. | 
|      * @return whether unfinished. | 
|      */ | 
|     perform(performArgs?: PerformArgs): boolean; | 
|     dirty(): void; | 
|     private _doProgress; | 
|     private _doReset; | 
|     unfinished(): boolean; | 
|     /** | 
|      * @param downTask The downstream task. | 
|      * @return The downstream task. | 
|      */ | 
|     pipe(downTask: Task<Ctx>): void; | 
|     dispose(): void; | 
|     getUpstream(): Task<Ctx>; | 
|     getDownstream(): Task<Ctx>; | 
|     setOutputEnd(end: number): void; | 
| } | 
| export {}; |