import SeriesModel from '../../model/Series.js';
import SeriesData from '../../data/SeriesData.js';
import { SeriesOption, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesLargeOptionMixin, OptionDataValue, StatesOptionMixin, SeriesEncodeOptionMixin, ZRFontStyle, ZRFontWeight } from '../../util/types.js';
import { PathState } from 'tvrender/lib/graphic/Path.js';
declare type LinesValue = OptionDataValue | OptionDataValue[];
interface LinesStatesMixin {
}
export declare type ILineStyle = 'style_arrow_both' | 'style_arrow_left' | 'style_arrow_right' | 'style_dashed' | 'style_dotted' | 'style_solid';
export declare type IExtent = 'both' | 'left' | 'right' | 'none';
export declare type ITextAlign = 'align_top' | 'align_bottom' | 'align_left' | 'align_center' | 'align_right';
export declare type ISize = 'auto' | 'huge' | 'large' | 'normal' | 'small' | 'tiny';
export interface ITextEl {
    text?: string;
    text_color?: string;
    text_size?: number;
    align?: 'center' | 'left' | 'right';
    v_align?: 'top' | 'middle' | 'bottom';
    text_wrap?: 'wrap_none' | 'wrap_auto';
    x: number;
    y: number;
    width?: number;
    height?: number;
    fontStyle?: ZRFontStyle;
    fontWeight?: ZRFontWeight;
}
export interface LinesStateOption {
    id: string;
    itemStyle?: {
        border_color?: string;
        style: ILineStyle;
        extend: IExtent;
        bgcolor?: string;
        border_width: number;
        text?: string;
        text_color?: string;
        text_halign?: ITextAlign;
        text_size?: ISize;
        text_valign?: ITextAlign;
        text_wrap?: 'wrap_none' | 'wrap_auto';
        fontStyle?: ZRFontStyle;
        fontWeight?: ZRFontWeight;
    };
}
export interface BoxesDataItemOption extends LinesStateOption, StatesOptionMixin<LinesStateOption, LinesStatesMixin & {
    emphasis?: {
        emphasisState?: PathState;
    };
}> {
    name?: string;
    value?: LinesValue;
}
export interface BoxesSeriesOption extends SeriesOption, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SeriesEncodeOptionMixin, SeriesOnCalendarOptionMixin, SeriesLargeOptionMixin {
    type?: 'boxes';
    coordinateSystem?: string;
    clip?: boolean;
    data?: BoxesDataItemOption[];
    offset?: number;
    format?: (value: string) => string;
    z2?: number;
    limit?: number;
}
declare class BoxesSeriesModel extends SeriesModel<BoxesSeriesOption> {
    static readonly type = "series.boxes";
    readonly type = "series.boxes";
    xFilterMode: "weakFilter";
    static readonly dependencies: string[];
    ignoreStyleOnData: boolean;
    getInitialData(option: BoxesSeriesOption): SeriesData;
    getZLevelKey(): string;
    getResetData(data: any[]): ArrayLike<any>;
    static defaultOption: BoxesSeriesOption;
}
export default BoxesSeriesModel;
