import { Tween } from '../common/tween';
import { ChartData, Types } from '../common/types';
interface PositionPoint {
    x: number;
    y: number;
}
export declare type getPositionFun = (d: Types.LooseObject) => PositionPoint;
interface ShootConfig {
    width: number;
    height: number;
    autoUpdate?: boolean;
    maxFps?: number;
    interval?: number;
    dTime?: number;
    shootDurable?: boolean;
    shootTime?: {
        fromTime?: number;
        fromStop?: number;
        fromFade?: number;
        toBegin?: number;
        toTime?: number;
        toStop?: number;
        toFade?: number;
    };
    fromRadius?: number;
    toRadius?: number;
    fromBorder?: number;
    toBorder?: number;
    shootPointColor?: {
        fromPoint?: string;
        fromShadow?: string;
        toPoint?: string;
        toShadow?: string;
    };
    lineWidth?: number;
    lineColor?: {
        from?: string;
        to?: string;
    };
    bullet?: {
        r?: number;
        length?: number;
        color?: string;
        shadowColor?: string;
    };
    keys?: {
        from?: string;
        to?: string;
        fromValue?: string;
        toValue?: string;
        curvature?: string;
    };
}
declare class Shoot {
    sCtx: CanvasRenderingContext2D;
    tween: Tween;
    private canvas;
    private getPosition;
    protected config: ShootConfig;
    constructor(canvas: HTMLCanvasElement, getPosition: getPositionFun, config: ShootConfig);
    clear(ctx: CanvasRenderingContext2D): void;
    changeSize(w: number, h: number): void;
    draw(data: ChartData): void;
    emit(fCo: PositionPoint, tCo: PositionPoint, data: {
        [x: string]: number;
    }, color: {}, time: {
        fromTime?: number;
        fromStop?: number;
        fromFade?: number;
        toBegin?: number;
        toTime?: number;
        toStop?: number;
        toFade?: number;
    }): any;
    from(co: PositionPoint, r: number, color: {
        fColor?: any;
    }, zoom?: boolean): (t: number) => void;
    to(co: PositionPoint, r: number, color: {
        tColor?: any;
    }, zoom?: boolean, n?: number, anticlockwise?: undefined): (t: number) => void;
    track(fCo: PositionPoint, tCo: PositionPoint, fade: boolean, color: {
        fColor?: any;
        tColor?: any;
        bullet?: any;
    }, h: number, overview?: boolean): (t: number) => void;
    drawBullet(x: number, y: number, a: number, color: string, r: number, len: number): void;
    update(time: number): void;
    destroy(): void;
}
export default Shoot;
