import SeriesModel from '../../model/Series.js';
import SeriesData from '../../data/SeriesData.js';
import { SeriesOption, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesLargeOptionMixin, LineStyleOption, OptionDataValue, StatesOptionMixin, ItemStyleOption, DimensionDefinitionLoose, DefaultStatesMixinEmphasis, CallbackDataParams, SymbolOptionMixin } from '../../util/types.js';
declare type LinesValue = OptionDataValue | OptionDataValue[];
interface LinesStatesMixin {
    emphasis?: DefaultStatesMixinEmphasis;
}
export interface LinesStateOption<TCbParams = never> {
    itemStyle?: ItemStyleOption<TCbParams>;
}
interface IOrder {
    price: number;
    count: number;
    comment: string;
    isClose?: boolean;
}
export interface StrategyDataItemOption extends LinesStateOption, StatesOptionMixin<LinesStateOption, LinesStatesMixin & {
    emphasis?: {
        lineStyle?: Omit<LineStyleOption, 'width'> & {
            width?: LineStyleOption['width'] | 'bolder';
        };
    };
}> {
    name?: string;
    baseUp: number;
    baseDown: number;
    value?: LinesValue;
    upOrders?: IOrder[];
    downOrders?: IOrder[];
}
export interface StrategySeriesOption extends SeriesOption, LinesStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SymbolOptionMixin<CallbackDataParams>, SeriesOnCalendarOptionMixin, SeriesLargeOptionMixin {
    type?: 'strategy';
    coordinateSystem?: string;
    clip?: boolean;
    data?: StrategyDataItemOption[] | ArrayLike<number>;
    offset?: number;
    format?: (value: string) => string;
    dimensions?: DimensionDefinitionLoose | DimensionDefinitionLoose[];
    z2?: number;
    textColor?: string;
    textBorder?: string;
    textBorderWidth?: number;
    strategyCountInvisible?: boolean;
    strategySignInvisible?: boolean;
}
declare class StrategySeriesModel extends SeriesModel<StrategySeriesOption> {
    static readonly type = "series.strategy";
    readonly type = "series.strategy";
    static readonly dependencies: string[];
    ignoreStyleOnData: boolean;
    getInitialData(option: StrategySeriesOption): SeriesData;
    getZLevelKey(): string;
    getResetData(data: ArrayLike<any>): ArrayLike<any>;
    static defaultOption: StrategySeriesOption;
}
export default StrategySeriesModel;
