import type { IAABBBounds } from '@visactor/vutils';
import type { IArc, IArcGraphicAttribute } from '../interface/graphic/arc';
import { Graphic } from './graphic';
import { CustomPath2D } from '../common/custom-path2d';
import type { GraphicType } from '../interface';
export declare class Arc extends Graphic<IArcGraphicAttribute> implements IArc {
    type: GraphicType;
    static NOWORK_ANIMATE_ATTR: {
        strokeSeg: number;
        boundsPadding: number;
        pickMode: number;
        boundsMode: number;
        customPickShape: number;
        pickable: number;
        childrenPickable: number;
        visible: number;
        zIndex: number;
        layout: number;
        keepDirIn3d: number;
        globalZIndex: number;
        outerBorder: number;
        innerBorder: number;
        lineDash: number;
        lineCap: number;
        lineJoin: number;
        miterLimit: number;
        strokeBoundsBuffer: number;
        scaleCenter: number;
        anchor: number;
        anchor3d: number;
        postMatrix: number;
        backgroundMode: number;
        background: number;
        texture: number;
        cursor: number;
        html: number;
        cap: number;
    };
    constructor(params: IArcGraphicAttribute);
    isValid(): boolean;
    private _isValid;
    getParsedCornerRadius(): number | number[];
    getParsedAngle(): {
        startAngle: number;
        endAngle: number;
        sc: number;
        ec: number;
    } | {
        startAngle: number;
        endAngle: number;
        sc?: undefined;
        ec?: undefined;
    };
    getParsePadAngle(startAngle: number, endAngle: number): {
        outerStartAngle: number;
        outerEndAngle: number;
        innerStartAngle: number;
        innerEndAngle: number;
        innerDeltaAngle: number;
        outerDeltaAngle: number;
    };
    getGraphicTheme(): Required<IArcGraphicAttribute>;
    protected updateAABBBounds(attribute: IArcGraphicAttribute, arcTheme: Required<IArcGraphicAttribute>, aabbBounds: IAABBBounds, full?: boolean): import("@visactor/vutils").IBounds;
    protected updateArcAABBBoundsImprecise(attribute: IArcGraphicAttribute, arcTheme: Required<IArcGraphicAttribute>, aabbBounds: IAABBBounds): IAABBBounds;
    protected updateArcAABBBoundsAccurate(attribute: IArcGraphicAttribute, arcTheme: Required<IArcGraphicAttribute>, aabbBounds: IAABBBounds): IAABBBounds;
    protected needUpdateTags(keys: string[]): boolean;
    protected needUpdateTag(key: string): boolean;
    toCustomPath(): CustomPath2D;
    clone(): Arc;
    getNoWorkAnimateAttr(): Record<string, number>;
}
export declare function createArc(attributes: IArcGraphicAttribute): IArc;
