import { ComponentOption, ZRColor, VisualOptionFixed } from '../../util/types.js'; 
 | 
import ComponentModel from '../../model/Component.js'; 
 | 
import BrushTargetManager from '../helper/BrushTargetManager.js'; 
 | 
import { BrushCoverCreatorConfig, BrushMode, BrushCoverConfig, BrushDimensionMinMax, BrushAreaRange, BrushTypeUncertain, BrushType } from '../helper/BrushController.js'; 
 | 
import { ModelFinderObject } from '../../util/model.js'; 
 | 
/** 
 | 
 * The input to define brush areas. 
 | 
 * (1) Can be created by user when calling dispatchAction. 
 | 
 * (2) Can be created by `BrushController` 
 | 
 * for brush behavior. area params are picked from `cover.__brushOptoin`. 
 | 
 * In `BrushController`, "covers" are create or updated for each "area". 
 | 
 */ 
 | 
export interface BrushAreaParam extends ModelFinderObject { 
 | 
    brushType: BrushCoverConfig['brushType']; 
 | 
    id?: BrushCoverConfig['id']; 
 | 
    range?: BrushCoverConfig['range']; 
 | 
    panelId?: BrushCoverConfig['panelId']; 
 | 
    coordRange?: BrushAreaRange; 
 | 
    coordRanges?: BrushAreaRange[]; 
 | 
    __rangeOffset?: { 
 | 
        offset: BrushDimensionMinMax[] | BrushDimensionMinMax; 
 | 
        xyMinMax: BrushDimensionMinMax[]; 
 | 
    }; 
 | 
} 
 | 
/** 
 | 
 * Generated by `brushModel.setAreas`, which merges 
 | 
 * `area: BrushAreaParam` and `brushModel.option: BrushOption`. 
 | 
 * See `generateBrushOption`. 
 | 
 */ 
 | 
export interface BrushAreaParamInternal extends BrushAreaParam { 
 | 
    brushMode: BrushMode; 
 | 
    brushStyle: BrushCoverConfig['brushStyle']; 
 | 
    transformable: BrushCoverConfig['transformable']; 
 | 
    removeOnClick: BrushCoverConfig['removeOnClick']; 
 | 
    z: BrushCoverConfig['z']; 
 | 
    __rangeOffset?: { 
 | 
        offset: BrushDimensionMinMax | BrushDimensionMinMax[]; 
 | 
        xyMinMax: BrushDimensionMinMax[]; 
 | 
    }; 
 | 
} 
 | 
export declare type BrushToolboxIconType = BrushType | 'keep' | 'clear'; 
 | 
export interface BrushOption extends ComponentOption, ModelFinderObject { 
 | 
    mainType?: 'brush'; 
 | 
    toolbox?: BrushToolboxIconType[]; 
 | 
    brushLink?: number[] | 'all' | 'none'; 
 | 
    throttleType?: 'fixRate' | 'debounce'; 
 | 
    throttleDelay?: number; 
 | 
    inBrush?: VisualOptionFixed; 
 | 
    outOfBrush?: VisualOptionFixed; 
 | 
    brushType?: BrushTypeUncertain; 
 | 
    brushStyle?: { 
 | 
        borderWidth?: number; 
 | 
        color?: ZRColor; 
 | 
        borderColor?: ZRColor; 
 | 
    }; 
 | 
    transformable?: boolean; 
 | 
    brushMode?: BrushMode; 
 | 
    removeOnClick?: boolean; 
 | 
} 
 | 
declare class BrushModel extends ComponentModel<BrushOption> { 
 | 
    static type: "brush"; 
 | 
    type: "brush"; 
 | 
    static dependencies: string[]; 
 | 
    static defaultOption: BrushOption; 
 | 
    /** 
 | 
     * @readOnly 
 | 
     */ 
 | 
    areas: BrushAreaParamInternal[]; 
 | 
    /** 
 | 
     * Current activated brush type. 
 | 
     * If null, brush is inactived. 
 | 
     * see module:echarts/component/helper/BrushController 
 | 
     * @readOnly 
 | 
     */ 
 | 
    brushType: BrushTypeUncertain; 
 | 
    /** 
 | 
     * Current brush painting area settings. 
 | 
     * @readOnly 
 | 
     */ 
 | 
    brushOption: BrushCoverCreatorConfig; 
 | 
    brushTargetManager: BrushTargetManager; 
 | 
    optionUpdated(newOption: BrushOption, isInit: boolean): void; 
 | 
    /** 
 | 
     * If `areas` is null/undefined, range state remain. 
 | 
     */ 
 | 
    setAreas(areas?: BrushAreaParam[]): void; 
 | 
    /** 
 | 
     * Set the current painting brush option. 
 | 
     */ 
 | 
    setBrushOption(brushOption: BrushCoverCreatorConfig): void; 
 | 
} 
 | 
export default BrushModel; 
 |