import type { IBounds, IPointLike } from '@visactor/vutils';
import type { IGraphicAttribute, IStrokeStyle } from '../interface';
export declare enum Edge {
    Top = 1,
    Right = 2,
    Bottom = 4,
    Left = 8,
    ALL = 15
}
export declare const parseStroke: (stroke: IStrokeStyle['stroke']) => {
    isFullStroke: boolean;
    stroke: (boolean | string)[];
};
export declare const parsePadding: (padding: IGraphicAttribute['boundsPadding']) => number | [
    number,
    number,
    number,
    number
];
export declare function circleBounds(startAngle: number, endAngle: number, radius: number, bounds: IBounds): void;
export declare function pointsEqual(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike): boolean;
export declare function pointEqual(pointA: IPointLike, pointB: IPointLike): boolean;
export declare function pointInterpolation(pointA: IPointLike, pointB: IPointLike, ratio: number): IPointLike;
export declare function pointInterpolationHighPerformance(pointA: IPointLike, pointB: IPointLike, ratio: number, point: IPointLike): IPointLike;
export declare function pointsInterpolation(pointsA: IPointLike[] | IPointLike, pointsB: IPointLike[] | IPointLike, ratio: number): IPointLike[];
export declare const transformKeys: string[];
export declare const isTransformKey: (key: string) => boolean;
export declare function getAttributeFromDefaultAttrList(attr: Record<string, any> | Record<string, any>[], key: string): any;
export declare class RafBasedSTO {
    static TimeOut: number;
    durations: number[];
    timeout: number;
    lastDate: number;
    durationsListThreshold: number;
    constructor(timeout?: number);
    call(cb: FrameRequestCallback): number;
    clear(h: number): void;
    appendDuration(d: number): void;
}
export declare const rafBasedSto: RafBasedSTO;
export declare const _calculateLineHeight: (lineHeight: string | number, fontSize: number) => number;
export declare const calculateLineHeight: (lineHeight: string | number, fontSize: number) => number;
