import * as graphic from '../../util/graphic.js'; 
 | 
import SeriesData from '../../data/SeriesData.js'; 
 | 
import { StageHandlerProgressParams, LineStyleOption, LineLabelOption, ColorString, AnimationOptionMixin, ZRStyleProps, StatesOptionMixin, DisplayState, LabelOption, DefaultEmphasisFocus, BlurScope } from '../../util/types.js'; 
 | 
import Model from '../../model/Model.js'; 
 | 
import Element from 'zrender/lib/Element.js'; 
 | 
interface LineLike extends graphic.Group { 
 | 
    updateData(data: SeriesData, idx: number, scope?: LineDrawSeriesScope): void; 
 | 
    updateLayout(data: SeriesData, idx: number): void; 
 | 
    fadeOut?(cb: () => void): void; 
 | 
} 
 | 
interface LineLikeCtor { 
 | 
    new (data: SeriesData, idx: number, scope?: LineDrawSeriesScope): LineLike; 
 | 
} 
 | 
interface LineDrawStateOption { 
 | 
    lineStyle?: LineStyleOption; 
 | 
    label?: LineLabelOption; 
 | 
} 
 | 
export interface LineDrawModelOption extends LineDrawStateOption, StatesOptionMixin<LineDrawStateOption, { 
 | 
    emphasis?: { 
 | 
        focus?: DefaultEmphasisFocus; 
 | 
    }; 
 | 
}> { 
 | 
    effect?: { 
 | 
        show?: boolean; 
 | 
        period?: number; 
 | 
        delay?: number | ((idx: number) => number); 
 | 
        /** 
 | 
         * If move with constant speed px/sec 
 | 
         * period will be ignored if this property is > 0, 
 | 
         */ 
 | 
        constantSpeed?: number; 
 | 
        symbol?: string; 
 | 
        symbolSize?: number | number[]; 
 | 
        loop?: boolean; 
 | 
        roundTrip?: boolean; 
 | 
        /** 
 | 
         * Length of trail, 0 - 1 
 | 
         */ 
 | 
        trailLength?: number; 
 | 
        /** 
 | 
         * Default to be same with lineStyle.color 
 | 
         */ 
 | 
        color?: ColorString; 
 | 
    }; 
 | 
} 
 | 
declare type ListForLineDraw = SeriesData<Model<LineDrawModelOption & AnimationOptionMixin>>; 
 | 
export interface LineDrawSeriesScope { 
 | 
    lineStyle?: ZRStyleProps; 
 | 
    emphasisLineStyle?: ZRStyleProps; 
 | 
    blurLineStyle?: ZRStyleProps; 
 | 
    selectLineStyle?: ZRStyleProps; 
 | 
    labelStatesModels: Record<DisplayState, Model<LabelOption>>; 
 | 
    focus?: DefaultEmphasisFocus; 
 | 
    blurScope?: BlurScope; 
 | 
    emphasisDisabled?: boolean; 
 | 
} 
 | 
declare class LineDraw { 
 | 
    group: graphic.Group; 
 | 
    private _LineCtor; 
 | 
    private _lineData; 
 | 
    private _seriesScope; 
 | 
    private _progressiveEls; 
 | 
    constructor(LineCtor?: LineLikeCtor); 
 | 
    updateData(lineData: ListForLineDraw): void; 
 | 
    updateLayout(): void; 
 | 
    incrementalPrepareUpdate(lineData: ListForLineDraw): void; 
 | 
    incrementalUpdate(taskParams: StageHandlerProgressParams, lineData: ListForLineDraw): void; 
 | 
    remove(): void; 
 | 
    eachRendered(cb: (el: Element) => boolean | void): void; 
 | 
    private _doAdd; 
 | 
    private _doUpdate; 
 | 
} 
 | 
export default LineDraw; 
 |