export type AMOUNT_PART_OF_LINES_TYPE = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; export declare enum MOVEMENT_TYPES { MOVING = 1, SHORT_HALT = 2, LONG_HALT = 3 } export interface ICoord { lat: number; lng: number; } export type IRLine = { color: string; points: ICoord[]; }; export type OnRemoveLine = (index: number, id: number) => void; export type OnJoinLine = (color: string, line: IRLine, lines: Array) => void; export type OnPushPoint = (point: ICoord, line: IRLine, lines: Array) => void; export type OnChangeStatus = (angle: number, movementType: MOVEMENT_TYPES) => void; export type OnChangeLocation = (coord: ICoord, angle: number | null, isMoving: boolean | null) => void; export type PushCoord = void | string; export interface IOptions { color: string; velocityTimeout: number; velocityLongTimeout?: number; minDistanceChangeRate: number; partOfLine: AMOUNT_PART_OF_LINES_TYPE; } export interface IRHandler { handeChangeStatus: OnChangeStatus; handleChangeLocation: OnChangeLocation; onRemoveLine: OnRemoveLine; onJoinLine: OnJoinLine; onPushPoint: OnPushPoint; } export interface IRAnimatedTracking { handler: IRHandler; time(): number | undefined; lastPoint: () => ICoord | null | undefined; updateTime: () => number | null | undefined; receiveTime: () => number | null | undefined; pushCoord: (coord: ICoord) => PushCoord; kill: () => void; reset: () => void; } export declare function createAnimatedTracking(options: IOptions): IRAnimatedTracking; export declare function unmountAnimatedTracking(): void; export declare function setSpeed(value: number): void;