import VisualMapping, { VisualMappingOption } from '../../visual/VisualMapping.js'; 
 | 
import { ComponentOption, BoxLayoutOptionMixin, LabelOption, ColorString, ZRColor, BorderOptionMixin, OptionDataValue, BuiltinVisualProperty, DimensionIndex } from '../../util/types.js'; 
 | 
import ComponentModel from '../../model/Component.js'; 
 | 
import Model from '../../model/Model.js'; 
 | 
import GlobalModel from '../../model/Global.js'; 
 | 
import SeriesModel from '../../model/Series.js'; 
 | 
import SeriesData from '../../data/SeriesData.js'; 
 | 
declare type VisualOptionBase = { 
 | 
    [key in BuiltinVisualProperty]?: any; 
 | 
}; 
 | 
declare type LabelFormatter = (min: OptionDataValue, max?: OptionDataValue) => string; 
 | 
declare type VisualState = VisualMapModel['stateList'][number]; 
 | 
export interface VisualMapOption<T extends VisualOptionBase = VisualOptionBase> extends ComponentOption, BoxLayoutOptionMixin, BorderOptionMixin { 
 | 
    mainType?: 'visualMap'; 
 | 
    show?: boolean; 
 | 
    align?: string; 
 | 
    realtime?: boolean; 
 | 
    /** 
 | 
     * 'all' or null/undefined: all series. 
 | 
     * A number or an array of number: the specified series. 
 | 
     * set min: 0, max: 200, only for campatible with ec2. 
 | 
     * In fact min max should not have default value. 
 | 
     */ 
 | 
    seriesIndex?: 'all' | number[] | number; 
 | 
    /** 
 | 
     * min value, must specified if pieces is not specified. 
 | 
     */ 
 | 
    min?: number; 
 | 
    /** 
 | 
     * max value, must specified if pieces is not specified. 
 | 
     */ 
 | 
    max?: number; 
 | 
    /** 
 | 
     * Dimension to be encoded 
 | 
     */ 
 | 
    dimension?: number; 
 | 
    /** 
 | 
     * Visual configuration for the data in selection 
 | 
     */ 
 | 
    inRange?: T; 
 | 
    /** 
 | 
     * Visual configuration for the out of selection 
 | 
     */ 
 | 
    outOfRange?: T; 
 | 
    controller?: { 
 | 
        inRange?: T; 
 | 
        outOfRange?: T; 
 | 
    }; 
 | 
    target?: { 
 | 
        inRange?: T; 
 | 
        outOfRange?: T; 
 | 
    }; 
 | 
    /** 
 | 
     * Width of the display item 
 | 
     */ 
 | 
    itemWidth?: number; 
 | 
    /** 
 | 
     * Height of the display item 
 | 
     */ 
 | 
    itemHeight?: number; 
 | 
    inverse?: boolean; 
 | 
    orient?: 'horizontal' | 'vertical'; 
 | 
    backgroundColor?: ZRColor; 
 | 
    contentColor?: ZRColor; 
 | 
    inactiveColor?: ZRColor; 
 | 
    /** 
 | 
     * Padding of the component. Can be an array similar to CSS 
 | 
     */ 
 | 
    padding?: number[] | number; 
 | 
    /** 
 | 
     * Gap between text and item 
 | 
     */ 
 | 
    textGap?: number; 
 | 
    precision?: number; 
 | 
    /** 
 | 
     * @deprecated 
 | 
     * Option from version 2 
 | 
     */ 
 | 
    color?: ColorString[]; 
 | 
    formatter?: string | LabelFormatter; 
 | 
    /** 
 | 
     * Text on the both end. Such as ['High', 'Low'] 
 | 
     */ 
 | 
    text?: string[]; 
 | 
    textStyle?: LabelOption; 
 | 
    categories?: unknown; 
 | 
} 
 | 
export interface VisualMeta { 
 | 
    stops: { 
 | 
        value: number; 
 | 
        color: ColorString; 
 | 
    }[]; 
 | 
    outerColors: ColorString[]; 
 | 
    dimension?: DimensionIndex; 
 | 
} 
 | 
declare class VisualMapModel<Opts extends VisualMapOption = VisualMapOption> extends ComponentModel<Opts> { 
 | 
    static type: string; 
 | 
    type: string; 
 | 
    static readonly dependencies: string[]; 
 | 
    readonly stateList: readonly ["inRange", "outOfRange"]; 
 | 
    readonly replacableOptionKeys: readonly ["inRange", "outOfRange", "target", "controller", "color"]; 
 | 
    readonly layoutMode: { 
 | 
        readonly type: "box"; 
 | 
        readonly ignoreSize: true; 
 | 
    }; 
 | 
    /** 
 | 
     * [lowerBound, upperBound] 
 | 
     */ 
 | 
    dataBound: number[]; 
 | 
    protected _dataExtent: [number, number]; 
 | 
    targetVisuals: { 
 | 
        [x: string]: { 
 | 
            symbol?: VisualMapping; 
 | 
            color?: VisualMapping; 
 | 
            opacity?: VisualMapping; 
 | 
            decal?: VisualMapping; 
 | 
            symbolSize?: VisualMapping; 
 | 
            liftZ?: VisualMapping; 
 | 
            colorAlpha?: VisualMapping; 
 | 
            colorLightness?: VisualMapping; 
 | 
            colorSaturation?: VisualMapping; 
 | 
            colorHue?: VisualMapping; 
 | 
        } & { 
 | 
            __alphaForOpacity?: VisualMapping; 
 | 
        }; 
 | 
    }; 
 | 
    controllerVisuals: { 
 | 
        [x: string]: { 
 | 
            symbol?: VisualMapping; 
 | 
            color?: VisualMapping; 
 | 
            opacity?: VisualMapping; 
 | 
            decal?: VisualMapping; 
 | 
            symbolSize?: VisualMapping; 
 | 
            liftZ?: VisualMapping; 
 | 
            colorAlpha?: VisualMapping; 
 | 
            colorLightness?: VisualMapping; 
 | 
            colorSaturation?: VisualMapping; 
 | 
            colorHue?: VisualMapping; 
 | 
        } & { 
 | 
            __alphaForOpacity?: VisualMapping; 
 | 
        }; 
 | 
    }; 
 | 
    textStyleModel: Model<LabelOption>; 
 | 
    itemSize: number[]; 
 | 
    init(option: Opts, parentModel: Model, ecModel: GlobalModel): void; 
 | 
    /** 
 | 
     * @protected 
 | 
     */ 
 | 
    optionUpdated(newOption: Opts, isInit?: boolean): void; 
 | 
    /** 
 | 
     * @protected 
 | 
     */ 
 | 
    resetVisual(supplementVisualOption: (this: this, mappingOption: VisualMappingOption, state: string) => void): void; 
 | 
    /** 
 | 
     * @public 
 | 
     */ 
 | 
    getItemSymbol(): string; 
 | 
    /** 
 | 
     * @protected 
 | 
     * @return {Array.<number>} An array of series indices. 
 | 
     */ 
 | 
    getTargetSeriesIndices(): number[]; 
 | 
    /** 
 | 
     * @public 
 | 
     */ 
 | 
    eachTargetSeries<Ctx>(callback: (this: Ctx, series: SeriesModel) => void, context?: Ctx): void; 
 | 
    /** 
 | 
     * @pubilc 
 | 
     */ 
 | 
    isTargetSeries(seriesModel: SeriesModel): boolean; 
 | 
    /** 
 | 
     * @example 
 | 
     * this.formatValueText(someVal); // format single numeric value to text. 
 | 
     * this.formatValueText(someVal, true); // format single category value to text. 
 | 
     * this.formatValueText([min, max]); // format numeric min-max to text. 
 | 
     * this.formatValueText([this.dataBound[0], max]); // using data lower bound. 
 | 
     * this.formatValueText([min, this.dataBound[1]]); // using data upper bound. 
 | 
     * 
 | 
     * @param value Real value, or this.dataBound[0 or 1]. 
 | 
     * @param isCategory Only available when value is number. 
 | 
     * @param edgeSymbols Open-close symbol when value is interval. 
 | 
     * @protected 
 | 
     */ 
 | 
    formatValueText(value: number | string | number[], isCategory?: boolean, edgeSymbols?: string[]): string; 
 | 
    /** 
 | 
     * @protected 
 | 
     */ 
 | 
    resetExtent(): void; 
 | 
    /** 
 | 
     * PENDING: 
 | 
     * delete this method if no outer usage. 
 | 
     * 
 | 
     * Return  Concrete dimention. If return null/undefined, no dimension used. 
 | 
     */ 
 | 
    getDataDimensionIndex(data: SeriesData): DimensionIndex; 
 | 
    getExtent(): [number, number]; 
 | 
    completeVisualOption(): void; 
 | 
    resetItemSize(): void; 
 | 
    isCategory(): boolean; 
 | 
    /** 
 | 
     * @public 
 | 
     * @abstract 
 | 
     */ 
 | 
    setSelected(selected?: any): void; 
 | 
    getSelected(): any; 
 | 
    /** 
 | 
     * @public 
 | 
     * @abstract 
 | 
     */ 
 | 
    getValueState(value: any): VisualMapModel['stateList'][number]; 
 | 
    /** 
 | 
     * FIXME 
 | 
     * Do not publish to thirt-part-dev temporarily 
 | 
     * util the interface is stable. (Should it return 
 | 
     * a function but not visual meta?) 
 | 
     * 
 | 
     * @pubilc 
 | 
     * @abstract 
 | 
     * @param getColorVisual 
 | 
     *        params: value, valueState 
 | 
     *        return: color 
 | 
     * @return {Object} visualMeta 
 | 
     *        should includes {stops, outerColors} 
 | 
     *        outerColor means [colorBeyondMinValue, colorBeyondMaxValue] 
 | 
     */ 
 | 
    getVisualMeta(getColorVisual: (value: number, valueState: VisualState) => string): VisualMeta; 
 | 
    static defaultOption: VisualMapOption; 
 | 
} 
 | 
export default VisualMapModel; 
 |