import { HashMap } from 'zrender/lib/core/util.js'; import { Task, TaskContext } from './task.js'; import GlobalModel from '../model/Global.js'; import ExtensionAPI from './ExtensionAPI.js'; import { StageHandlerInternal, StageHandlerOverallReset, StageHandler, Payload, StageHandlerReset, StageHandlerPlan, StageHandlerProgressExecutor, SeriesLargeOptionMixin, SeriesOption } from '../util/types.js'; import { EChartsType } from './echarts.js'; import SeriesModel from '../model/Series.js'; import ChartView from '../view/Chart.js'; import SeriesData from '../data/SeriesData.js'; export declare type GeneralTask = Task; export declare type SeriesTask = Task; export declare type OverallTask = Task & { agentStubMap?: HashMap; }; export declare type StubTask = Task & { agent?: OverallTask; }; export declare type Pipeline = { id: string; head: GeneralTask; tail: GeneralTask; threshold: number; progressiveEnabled: boolean; blockIndex: number; step: number; count: number; currentTask?: GeneralTask; context?: PipelineContext; }; export declare type PipelineContext = { progressiveRender: boolean; modDataCount: number; large: boolean; }; declare type PerformStageTaskOpt = { block?: boolean; setDirty?: boolean; visualType?: StageHandlerInternal['visualType']; dirtyMap?: HashMap; }; export interface SeriesTaskContext extends TaskContext { model?: SeriesModel; data?: SeriesData; view?: ChartView; ecModel?: GlobalModel; api?: ExtensionAPI; useClearVisual?: boolean; plan?: StageHandlerPlan; reset?: StageHandlerReset; scheduler?: Scheduler; payload?: Payload; resetDefines?: StageHandlerProgressExecutor[]; } interface OverallTaskContext extends TaskContext { ecModel: GlobalModel; api: ExtensionAPI; overallReset: StageHandlerOverallReset; scheduler: Scheduler; payload?: Payload; } interface StubTaskContext extends TaskContext { model: SeriesModel; overallProgress: boolean; } declare class Scheduler { readonly ecInstance: EChartsType; readonly api: ExtensionAPI; unfinished: boolean; private _dataProcessorHandlers; private _visualHandlers; private _allHandlers; private _stageTaskMap; private _pipelineMap; constructor(ecInstance: EChartsType, api: ExtensionAPI, dataProcessorHandlers: StageHandlerInternal[], visualHandlers: StageHandlerInternal[]); restoreData(ecModel: GlobalModel, payload: Payload): void; getPerformArgs(task: GeneralTask, isBlock?: boolean): { step: number; modBy: number; modDataCount: number; }; getPipeline(pipelineId: string): Pipeline; /** * Current, progressive rendering starts from visual and layout. * Always detect render mode in the same stage, avoiding that incorrect * detection caused by data filtering. * Caution: * `updateStreamModes` use `seriesModel.getData()`. */ updateStreamModes(seriesModel: SeriesModel, view: ChartView): void; restorePipelines(ecModel: GlobalModel): void; prepareStageTasks(): void; prepareView(view: ChartView, model: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI): void; performDataProcessorTasks(ecModel: GlobalModel, payload?: Payload): void; performVisualTasks(ecModel: GlobalModel, payload?: Payload, opt?: PerformStageTaskOpt): void; private _performStageTasks; performSeriesTasks(ecModel: GlobalModel): void; plan(): void; updatePayload(task: Task, payload: Payload | 'remain'): void; private _createSeriesStageTask; private _createOverallStageTask; private _pipe; static wrapStageHandler(stageHandler: StageHandler | StageHandlerOverallReset, visualType: StageHandlerInternal['visualType']): StageHandlerInternal; } export default Scheduler;