import SeriesModel from '../../model/Series.js';
import { SeriesOption, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, OptionDataValue, ItemStyleOption, SeriesLabelOption, SeriesLargeOptionMixin, SeriesStackOptionMixin, SymbolOptionMixin, StatesOptionMixin, OptionDataItemObject, SeriesEncodeOptionMixin, CallbackDataParams, DefaultEmphasisFocus } from '../../util/types.js';
import GlobalModel from '../../model/Global.js';
import SeriesData from '../../data/SeriesData.js';
import { PathState } from 'tvrender/lib/graphic/Path.js';
import { BrushCommonSelectorsForSeries } from '../../component/brush/selector.js';
interface LabelsStateOption<TCbParams = never> {
    itemStyle?: ItemStyleOption<TCbParams>;
    label?: SeriesLabelOption;
    size?: 'auto' | 'huge' | 'large' | 'normal' | 'small' | 'tiny';
    location?: 'abovebar' | 'absolute' | 'belowbar' | 'bottom' | 'top';
    isShape?: boolean;
    showValue?: boolean | number;
}
interface LabelsStatesOptionMixin {
    emphasis?: {
        focus?: DefaultEmphasisFocus;
        scale?: boolean | number;
        emphasisState?: PathState;
    };
}
export interface LabelsDataItemOption extends SymbolOptionMixin, LabelsStateOption, StatesOptionMixin<LabelsStateOption, LabelsStatesOptionMixin>, OptionDataItemObject<OptionDataValue> {
    yloc?: 'abovebar' | 'price' | 'belowbar';
    tooltipText?: string;
    id: string;
}
export interface LabelsSeriesOption extends SeriesOption<LabelsStateOption<CallbackDataParams>, LabelsStatesOptionMixin>, LabelsStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, SeriesLargeOptionMixin, SeriesStackOptionMixin, SymbolOptionMixin<CallbackDataParams>, SeriesEncodeOptionMixin {
    type?: 'labels';
    coordinateSystem?: string;
    cursor?: string;
    clip?: boolean;
    data?: LabelsDataItemOption[];
    limit?: number;
}
declare class LabelsSeriesModel extends SeriesModel<LabelsSeriesOption> {
    static readonly type = "series.labels";
    type: string;
    static readonly dependencies: string[];
    dataIndexById: Record<string, number>;
    ignoreStyleOnData: boolean;
    getInitialData(option: LabelsSeriesOption, ecModel: GlobalModel): SeriesData;
    getProgressive(): number | false;
    getProgressiveThreshold(): number;
    brushSelector(dataIndex: number, data: SeriesData, selectors: BrushCommonSelectorsForSeries): boolean;
    getZLevelKey(): string;
    getResetData(data: any[]): ArrayLike<any>;
    static defaultOption: LabelsSeriesOption;
}
export default LabelsSeriesModel;
