import type { IGroup, IImage, IRichText, ISymbol } from '@visactor/vrender-core'; import { AbstractComponent } from '../core/base'; import type { Tag } from '../tag'; import type { MarkerAnimationState, MarkerAttrs, MarkerExitAnimation, MarkerExitReleaseOptions, MarkerUpdateAnimation } from './type'; export declare abstract class Marker, AnimationAttr> extends AbstractComponent> { name: string; private _containerClip; protected _container: IGroup; static _animate?: (marker: any, label: (Tag | IRichText | ISymbol | IImage) | (Tag | IRichText | ISymbol | IImage)[], animationConfig: any, state: MarkerAnimationState) => void; defaultUpdateAnimation: MarkerUpdateAnimation; defaultExitAnimation: MarkerExitAnimation; protected _animationConfig?: { enter: MarkerUpdateAnimation; exit: MarkerExitAnimation; update: MarkerUpdateAnimation; }; private _lastHover; private _lastSelect; private _exitReleaseState?; protected abstract setLabelPos(labelNode: IGroup, labelAttrs: any): any; protected abstract initMarker(container: IGroup): any; protected abstract updateMarker(): any; protected abstract isValidPoints(): any; protected abstract markerAnimate(state: MarkerAnimationState): void; private transAnimationConfig; setAttribute(key: string, value: any, forceUpdateTag?: boolean | undefined): void; private _bindEvent; private _releaseEvent; private _onHover; private _onUnHover; private _onClick; private _initContainer; private _updateContainer; private _finalizeExitRelease; private _runExitAnimationBeforeCleanup; releaseWithExitAnimation(options?: MarkerExitReleaseOptions): boolean; protected render(): void; release(all?: boolean): void; }