import SeriesModel from '../../model/Series.js';
import SeriesData from '../../data/SeriesData.js';
import { PathState } from 'tvrender/lib/graphic/Path.js';
import { SeriesOption, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesLargeOptionMixin, LineStyleOption, OptionDataValue, StatesOptionMixin, ItemStyleOption, DimensionDefinitionLoose, ZRColor, CallbackDataParams, SymbolOptionMixin } from '../../util/types.js';
import type { LineDrawModelOption } from '../helper/LineDraw.js';
declare type LinesCoords = number[][];
declare type LinesValue = OptionDataValue | OptionDataValue[];
interface LinesLineStyleOption<TClr> extends LineStyleOption<TClr> {
    curveness?: number;
    rgbas?: number[];
}
interface LinesStatesMixin {
    emphasis?: {
        emphasisState?: PathState;
    };
}
export interface LinesStateOption<TCbParams = never> {
    lineStyle?: LinesLineStyleOption<(TCbParams extends never ? never : (params: TCbParams) => ZRColor) | ZRColor>;
    itemStyle?: ItemStyleOption<TCbParams>;
}
export interface LinesDataItemOption extends LinesStateOption, StatesOptionMixin<LinesStateOption, LinesStatesMixin & {
    emphasis?: {
        emphasisState?: PathState;
    };
}> {
    name?: string;
    symbol?: string;
    symbolSize?: number[] | number;
    coords?: LinesCoords;
    value?: LinesValue;
}
interface AreaGradient {
    type: 'start' | 'end' | 'value';
    value?: number;
    color: string;
}
export interface LinesPlotSeriesOption extends SeriesOption<LinesStateOption, LinesStatesMixin>, LinesStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SymbolOptionMixin<CallbackDataParams>, SeriesOnCalendarOptionMixin, SeriesLargeOptionMixin {
    type?: 'linesPlot';
    coordinateSystem?: string;
    symbol?: string;
    symbolSize?: number[] | number;
    effect?: LineDrawModelOption['effect'];
    /**
     * If lines are polyline
     * polyline not support curveness, label, animation
     */
    polyline?: boolean;
    /**
     * If clip the overflow.
     * Available when coordinateSystem is cartesian or polar.
     */
    clip?: boolean;
    data?: LinesDataItemOption[] | ArrayLike<number>;
    offset?: number;
    histbase?: number;
    format?: (value: string) => string;
    dimensions?: DimensionDefinitionLoose | DimensionDefinitionLoose[];
    connectNulls?: boolean;
    areaVisible?: boolean;
    lineVisible?: boolean;
    symbolVisible?: boolean;
    histogramVisible?: boolean;
    barVisible?: boolean;
    symbolByStep?: boolean;
    shadowShape?: boolean;
    step?: boolean;
    z2?: number;
    showLast?: number;
    areaGradient?: AreaGradient[];
}
declare class LinesPlotSeriesModel extends SeriesModel<LinesPlotSeriesOption> {
    static readonly type = "series.linesPlot";
    readonly type = "series.linesPlot";
    static readonly dependencies: string[];
    ignoreStyleOnData: boolean;
    hasSymbolVisual: boolean;
    private _flatCoords;
    private _flatCoordsOffset;
    getInitialData(option: LinesPlotSeriesOption): SeriesData;
    getZLevelKey(): string;
    static defaultOption: LinesPlotSeriesOption;
}
export default LinesPlotSeriesModel;
