import type { IGroup } from '@visactor/vrender-core';
import type { ArcSegment, Segment } from '../segment';
import { Tag } from '../tag';
import type { MarkCommonLineAnimationType, MarkCommonLineAttrs, MarkerAnimationState } from './type';
import { Marker } from './base';
export declare abstract class MarkCommonLine<LineAttr, LabelPosition> extends Marker<MarkCommonLineAttrs<LineAttr, LabelPosition, MarkCommonLineAnimationType>, MarkCommonLineAnimationType> {
    name: string;
    static _animate?: (line: Segment | ArcSegment, label: Tag, animationConfig: any, state: MarkerAnimationState) => void;
    defaultUpdateAnimation: never;
    defaultExitAnimation: import("./type").MarkerExitAnimation;
    protected _line: Segment | ArcSegment;
    protected abstract createSegment(): any;
    protected abstract setLineAttributes(): any;
    protected abstract getPointAttrByPosition(position: any): any;
    protected abstract getRotateByAngle(angle: number): number;
    protected abstract getTextStyle(position: any, labelAngle: number, autoRotate: boolean): any;
    protected abstract markerAnimate(state: MarkerAnimationState): void;
    getLine(): Segment | ArcSegment;
    getLabel(): Tag;
    protected setLabelPos(): void;
    protected initMarker(container: IGroup): void;
    protected updateMarker(): void;
}
