| import ComponentModel from '../../model/Component.js'; | 
| import Model from '../../model/Model.js'; | 
| import Geo from './Geo.js'; | 
| import { ComponentOption, BoxLayoutOptionMixin, ItemStyleOption, ZRColor, LabelOption, DisplayState, RoamOptionMixin, AnimationOptionMixin, StatesOptionMixin, Dictionary, CommonTooltipOption, StatesMixinBase } from '../../util/types.js'; | 
| import { GeoProjection, NameMap } from './geoTypes.js'; | 
| import GlobalModel from '../../model/Global.js'; | 
| export interface GeoItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> { | 
|     areaColor?: ZRColor; | 
| } | 
| interface GeoLabelOption extends LabelOption { | 
|     formatter?: string | ((params: GeoLabelFormatterDataParams) => string); | 
| } | 
| export interface GeoStateOption { | 
|     itemStyle?: GeoItemStyleOption; | 
|     label?: GeoLabelOption; | 
| } | 
| interface GeoLabelFormatterDataParams { | 
|     name: string; | 
|     status: DisplayState; | 
| } | 
| export interface RegionOption extends GeoStateOption, StatesOptionMixin<GeoStateOption, StatesMixinBase> { | 
|     name?: string; | 
|     selected?: boolean; | 
|     tooltip?: CommonTooltipOption<GeoTooltipFormatterParams>; | 
|     silent?: boolean; | 
| } | 
| /** | 
|  * @deprecated Use `RegionOption` instead. | 
|  */ | 
| export interface RegoinOption extends RegionOption { | 
| } | 
| export interface GeoTooltipFormatterParams { | 
|     componentType: 'geo'; | 
|     geoIndex: number; | 
|     name: string; | 
|     $vars: ['name']; | 
| } | 
| export interface GeoCommonOptionMixin extends RoamOptionMixin { | 
|     map: string; | 
|     aspectScale?: number; | 
|     layoutCenter?: (number | string)[]; | 
|     layoutSize?: number | string; | 
|     boundingCoords?: number[][]; | 
|     nameMap?: NameMap; | 
|     nameProperty?: string; | 
|     /** | 
|      * Use raw projection by default | 
|      * Only available for GeoJSON source. | 
|      * | 
|      * NOTE: `center` needs to be the projected coord if projection is used. | 
|      */ | 
|     projection?: GeoProjection; | 
| } | 
| export interface GeoOption extends ComponentOption, BoxLayoutOptionMixin, AnimationOptionMixin, GeoCommonOptionMixin, StatesOptionMixin<GeoStateOption, StatesMixinBase>, GeoStateOption { | 
|     mainType?: 'geo'; | 
|     show?: boolean; | 
|     silent?: boolean; | 
|     regions?: RegionOption[]; | 
|     stateAnimation?: AnimationOptionMixin; | 
|     selectedMode?: 'single' | 'multiple' | boolean; | 
|     selectedMap?: Dictionary<boolean>; | 
|     tooltip?: CommonTooltipOption<GeoTooltipFormatterParams>; | 
| } | 
| declare class GeoModel extends ComponentModel<GeoOption> { | 
|     static type: string; | 
|     readonly type: string; | 
|     coordinateSystem: Geo; | 
|     static layoutMode: "box"; | 
|     private _optionModelMap; | 
|     static defaultOption: GeoOption; | 
|     init(option: GeoOption, parentModel: Model, ecModel: GlobalModel): void; | 
|     optionUpdated(): void; | 
|     /** | 
|      * Get model of region. | 
|      */ | 
|     getRegionModel(name: string): Model<RegionOption>; | 
|     /** | 
|      * Format label | 
|      * @param name Region name | 
|      */ | 
|     getFormattedLabel(name: string, status?: DisplayState): string; | 
|     setZoom(zoom: number): void; | 
|     setCenter(center: number[]): void; | 
|     select(name?: string): void; | 
|     unSelect(name?: string): void; | 
|     toggleSelected(name?: string): void; | 
|     isSelected(name?: string): boolean; | 
| } | 
| export default GeoModel; |