import Displayable from 'zrender/lib/graphic/Displayable.js'; 
 | 
import { ImageProps, ImageStyleProps } from 'zrender/lib/graphic/Image.js'; 
 | 
import { PathProps, PathStyleProps } from 'zrender/lib/graphic/Path.js'; 
 | 
import { ZRenderType } from 'zrender/lib/zrender.js'; 
 | 
import { BarGridLayoutOptionForCustomSeries, BarGridLayoutResult } from '../../layout/barGrid.js'; 
 | 
import { AnimationOption, BlurScope, CallbackDataParams, Dictionary, DimensionLoose, ItemStyleOption, LabelOption, OptionDataValue, OrdinalRawValue, ParsedValue, SeriesDataType, SeriesEncodeOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SeriesOnSingleOptionMixin, SeriesOption, TextCommonOption, ZRStyleProps } from '../../util/types.js'; 
 | 
import Element from 'zrender/lib/Element.js'; 
 | 
import SeriesData, { DefaultDataVisual } from '../../data/SeriesData.js'; 
 | 
import GlobalModel from '../../model/Global.js'; 
 | 
import { CoordinateSystem } from '../../coord/CoordinateSystem.js'; 
 | 
import SeriesModel from '../../model/Series.js'; 
 | 
import { Arc, BezierCurve, Circle, CompoundPath, Ellipse, Line, Polygon, Polyline, Rect, Ring, Sector } from '../../util/graphic.js'; 
 | 
import { TextProps, TextStyleProps } from 'zrender/lib/graphic/Text.js'; 
 | 
import { GroupProps } from 'zrender/lib/graphic/Group.js'; 
 | 
import { TransitionOptionMixin, TransitionBaseDuringAPI, TransitionDuringAPI } from '../../animation/customGraphicTransition.js'; 
 | 
import { TransformProp } from 'zrender/lib/core/Transformable.js'; 
 | 
import { ElementKeyframeAnimationOption } from '../../animation/customGraphicKeyframeAnimation.js'; 
 | 
export declare type CustomExtraElementInfo = Dictionary<unknown>; 
 | 
export declare const STYLE_VISUAL_TYPE: { 
 | 
    readonly color: "fill"; 
 | 
    readonly borderColor: "stroke"; 
 | 
}; 
 | 
export declare type StyleVisualProps = keyof typeof STYLE_VISUAL_TYPE; 
 | 
export declare const NON_STYLE_VISUAL_PROPS: { 
 | 
    readonly symbol: 1; 
 | 
    readonly symbolSize: 1; 
 | 
    readonly symbolKeepAspect: 1; 
 | 
    readonly legendIcon: 1; 
 | 
    readonly visualMeta: 1; 
 | 
    readonly liftZ: 1; 
 | 
    readonly decal: 1; 
 | 
}; 
 | 
export declare type NonStyleVisualProps = keyof typeof NON_STYLE_VISUAL_PROPS; 
 | 
declare type ShapeMorphingOption = { 
 | 
    /** 
 | 
     * If do shape morphing animation when type is changed. 
 | 
     * Only available on path. 
 | 
     */ 
 | 
    morph?: boolean; 
 | 
}; 
 | 
export interface CustomBaseElementOption extends Partial<Pick<Element, TransformProp | 'silent' | 'ignore' | 'textConfig'>> { 
 | 
    type: string; 
 | 
    id?: string; 
 | 
    name?: string; 
 | 
    info?: CustomExtraElementInfo; 
 | 
    textContent?: CustomTextOption | false; 
 | 
    clipPath?: CustomBaseZRPathOption | false; 
 | 
    extra?: Dictionary<unknown> & TransitionOptionMixin; 
 | 
    during?(params: TransitionBaseDuringAPI): void; 
 | 
    enterAnimation?: AnimationOption; 
 | 
    updateAnimation?: AnimationOption; 
 | 
    leaveAnimation?: AnimationOption; 
 | 
} 
 | 
export interface CustomDisplayableOption extends CustomBaseElementOption, Partial<Pick<Displayable, 'zlevel' | 'z' | 'z2' | 'invisible'>> { 
 | 
    style?: ZRStyleProps; 
 | 
    during?(params: TransitionDuringAPI): void; 
 | 
    /** 
 | 
     * @deprecated 
 | 
     */ 
 | 
    styleEmphasis?: ZRStyleProps | false; 
 | 
    emphasis?: CustomDisplayableOptionOnState; 
 | 
    blur?: CustomDisplayableOptionOnState; 
 | 
    select?: CustomDisplayableOptionOnState; 
 | 
} 
 | 
export interface CustomDisplayableOptionOnState extends Partial<Pick<Displayable, TransformProp | 'textConfig' | 'z2'>> { 
 | 
    style?: ZRStyleProps | false; 
 | 
} 
 | 
export interface CustomGroupOption extends CustomBaseElementOption, TransitionOptionMixin<GroupProps> { 
 | 
    type: 'group'; 
 | 
    width?: number; 
 | 
    height?: number; 
 | 
    diffChildrenByName?: boolean; 
 | 
    children: CustomElementOption[]; 
 | 
    $mergeChildren?: false | 'byName' | 'byIndex'; 
 | 
    keyframeAnimation?: ElementKeyframeAnimationOption<GroupProps> | ElementKeyframeAnimationOption<GroupProps>[]; 
 | 
} 
 | 
export interface CustomBaseZRPathOption<T extends PathProps['shape'] = PathProps['shape']> extends CustomDisplayableOption, ShapeMorphingOption, TransitionOptionMixin<PathProps & { 
 | 
    shape: T; 
 | 
}> { 
 | 
    autoBatch?: boolean; 
 | 
    shape?: T & TransitionOptionMixin<T>; 
 | 
    style?: PathProps['style'] & TransitionOptionMixin<PathStyleProps>; 
 | 
    during?(params: TransitionDuringAPI<PathStyleProps, T>): void; 
 | 
    keyframeAnimation?: ElementKeyframeAnimationOption<PathProps & { 
 | 
        shape: T; 
 | 
    }> | ElementKeyframeAnimationOption<PathProps & { 
 | 
        shape: T; 
 | 
    }>[]; 
 | 
} 
 | 
interface BuiltinShapes { 
 | 
    circle: Partial<Circle['shape']>; 
 | 
    rect: Partial<Rect['shape']>; 
 | 
    sector: Partial<Sector['shape']>; 
 | 
    polygon: Partial<Polygon['shape']>; 
 | 
    polyline: Partial<Polyline['shape']>; 
 | 
    line: Partial<Line['shape']>; 
 | 
    arc: Partial<Arc['shape']>; 
 | 
    bezierCurve: Partial<BezierCurve['shape']>; 
 | 
    ring: Partial<Ring['shape']>; 
 | 
    ellipse: Partial<Ellipse['shape']>; 
 | 
    compoundPath: Partial<CompoundPath['shape']>; 
 | 
} 
 | 
interface CustomSVGPathShapeOption { 
 | 
    pathData?: string; 
 | 
    d?: string; 
 | 
    layout?: 'center' | 'cover'; 
 | 
    x?: number; 
 | 
    y?: number; 
 | 
    width?: number; 
 | 
    height?: number; 
 | 
} 
 | 
export interface CustomSVGPathOption extends CustomBaseZRPathOption<CustomSVGPathShapeOption> { 
 | 
    type: 'path'; 
 | 
} 
 | 
interface CustomBuitinPathOption<T extends keyof BuiltinShapes> extends CustomBaseZRPathOption<BuiltinShapes[T]> { 
 | 
    type: T; 
 | 
} 
 | 
declare type CreateCustomBuitinPathOption<T extends keyof BuiltinShapes> = T extends any ? CustomBuitinPathOption<T> : never; 
 | 
export declare type CustomPathOption = CreateCustomBuitinPathOption<keyof BuiltinShapes> | CustomSVGPathOption; 
 | 
export interface CustomImageOptionOnState extends CustomDisplayableOptionOnState { 
 | 
    style?: ImageStyleProps; 
 | 
} 
 | 
export interface CustomImageOption extends CustomDisplayableOption, TransitionOptionMixin<ImageProps> { 
 | 
    type: 'image'; 
 | 
    style?: ImageStyleProps & TransitionOptionMixin<ImageStyleProps>; 
 | 
    emphasis?: CustomImageOptionOnState; 
 | 
    blur?: CustomImageOptionOnState; 
 | 
    select?: CustomImageOptionOnState; 
 | 
    keyframeAnimation?: ElementKeyframeAnimationOption<ImageProps> | ElementKeyframeAnimationOption<ImageProps>[]; 
 | 
} 
 | 
export interface CustomTextOptionOnState extends CustomDisplayableOptionOnState { 
 | 
    style?: TextStyleProps; 
 | 
} 
 | 
export interface CustomTextOption extends CustomDisplayableOption, TransitionOptionMixin<TextProps> { 
 | 
    type: 'text'; 
 | 
    style?: TextStyleProps & TransitionOptionMixin<TextStyleProps>; 
 | 
    emphasis?: CustomTextOptionOnState; 
 | 
    blur?: CustomTextOptionOnState; 
 | 
    select?: CustomTextOptionOnState; 
 | 
    keyframeAnimation?: ElementKeyframeAnimationOption<TextProps> | ElementKeyframeAnimationOption<TextProps>[]; 
 | 
} 
 | 
export declare type CustomElementOption = CustomPathOption | CustomImageOption | CustomTextOption | CustomGroupOption; 
 | 
export declare type CustomRootElementOption = CustomElementOption & { 
 | 
    focus?: 'none' | 'self' | 'series' | ArrayLike<number>; 
 | 
    blurScope?: BlurScope; 
 | 
    emphasisDisabled?: boolean; 
 | 
}; 
 | 
export declare type CustomElementOptionOnState = CustomDisplayableOptionOnState | CustomImageOptionOnState; 
 | 
export interface CustomSeriesRenderItemAPI extends CustomSeriesRenderItemCoordinateSystemAPI { 
 | 
    getWidth(): number; 
 | 
    getHeight(): number; 
 | 
    getZr(): ZRenderType; 
 | 
    getDevicePixelRatio(): number; 
 | 
    value(dim: DimensionLoose, dataIndexInside?: number): ParsedValue; 
 | 
    ordinalRawValue(dim: DimensionLoose, dataIndexInside?: number): ParsedValue | OrdinalRawValue; 
 | 
    /** 
 | 
     * @deprecated 
 | 
     */ 
 | 
    style(userProps?: ZRStyleProps, dataIndexInside?: number): ZRStyleProps; 
 | 
    /** 
 | 
     * @deprecated 
 | 
     */ 
 | 
    styleEmphasis(userProps?: ZRStyleProps, dataIndexInside?: number): ZRStyleProps; 
 | 
    visual<VT extends NonStyleVisualProps | StyleVisualProps>(visualType: VT, dataIndexInside?: number): VT extends NonStyleVisualProps ? DefaultDataVisual[VT] : VT extends StyleVisualProps ? PathStyleProps[typeof STYLE_VISUAL_TYPE[VT]] : void; 
 | 
    barLayout(opt: BarGridLayoutOptionForCustomSeries): BarGridLayoutResult; 
 | 
    currentSeriesIndices(): number[]; 
 | 
    font(opt: Pick<TextCommonOption, 'fontStyle' | 'fontWeight' | 'fontSize' | 'fontFamily'>): string; 
 | 
} 
 | 
export interface CustomSeriesRenderItemParamsCoordSys { 
 | 
    type: string; 
 | 
} 
 | 
export interface CustomSeriesRenderItemCoordinateSystemAPI { 
 | 
    coord(data: OptionDataValue | OptionDataValue[], clamp?: boolean): number[]; 
 | 
    size?(dataSize: OptionDataValue | OptionDataValue[], dataItem?: OptionDataValue | OptionDataValue[]): number | number[]; 
 | 
} 
 | 
export declare type WrapEncodeDefRet = Dictionary<number[]>; 
 | 
export interface CustomSeriesRenderItemParams { 
 | 
    context: Dictionary<unknown>; 
 | 
    dataIndex: number; 
 | 
    seriesId: string; 
 | 
    seriesName: string; 
 | 
    seriesIndex: number; 
 | 
    coordSys: CustomSeriesRenderItemParamsCoordSys; 
 | 
    encode: WrapEncodeDefRet; 
 | 
    dataIndexInside: number; 
 | 
    dataInsideLength: number; 
 | 
    actionType?: string; 
 | 
} 
 | 
export declare type CustomSeriesRenderItemReturn = CustomRootElementOption | undefined | null; 
 | 
export declare type CustomSeriesRenderItem = (params: CustomSeriesRenderItemParams, api: CustomSeriesRenderItemAPI) => CustomSeriesRenderItemReturn; 
 | 
export interface CustomSeriesOption extends SeriesOption<unknown>, // don't support StateOption in custom series. 
 | 
SeriesEncodeOptionMixin, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnSingleOptionMixin, SeriesOnGeoOptionMixin, SeriesOnCalendarOptionMixin { 
 | 
    type?: 'custom'; 
 | 
    coordinateSystem?: string | 'none'; 
 | 
    renderItem?: CustomSeriesRenderItem; 
 | 
    /** 
 | 
     * @deprecated 
 | 
     */ 
 | 
    itemStyle?: ItemStyleOption; 
 | 
    /** 
 | 
     * @deprecated 
 | 
     */ 
 | 
    label?: LabelOption; 
 | 
    /** 
 | 
     * @deprecated 
 | 
     */ 
 | 
    emphasis?: { 
 | 
        /** 
 | 
         * @deprecated 
 | 
         */ 
 | 
        itemStyle?: ItemStyleOption; 
 | 
        /** 
 | 
         * @deprecated 
 | 
         */ 
 | 
        label?: LabelOption; 
 | 
    }; 
 | 
    clip?: boolean; 
 | 
} 
 | 
export declare const customInnerStore: (hostObj: Element<import("zrender/lib/Element").ElementProps>) => { 
 | 
    info: CustomExtraElementInfo; 
 | 
    customPathData: string; 
 | 
    customGraphicType: string; 
 | 
    customImagePath: CustomImageOption['style']['image']; 
 | 
    txConZ2Set: number; 
 | 
    option: CustomElementOption; 
 | 
}; 
 | 
export default class CustomSeriesModel extends SeriesModel<CustomSeriesOption> { 
 | 
    static type: string; 
 | 
    readonly type: string; 
 | 
    static dependencies: string[]; 
 | 
    currentZLevel: number; 
 | 
    currentZ: number; 
 | 
    static defaultOption: CustomSeriesOption; 
 | 
    optionUpdated(): void; 
 | 
    getInitialData(option: CustomSeriesOption, ecModel: GlobalModel): SeriesData; 
 | 
    getDataParams(dataIndex: number, dataType?: SeriesDataType, el?: Element): CallbackDataParams & { 
 | 
        info: CustomExtraElementInfo; 
 | 
    }; 
 | 
} 
 | 
export declare type PrepareCustomInfo = (coordSys: CoordinateSystem) => { 
 | 
    coordSys: CustomSeriesRenderItemParamsCoordSys; 
 | 
    api: CustomSeriesRenderItemCoordinateSystemAPI; 
 | 
}; 
 | 
export {}; 
 |