| 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; |