import { CalibrationData } from "./CalibrationData";
import { LaserCorrection, Model } from "./VelodyneTypes";
export declare class Calibration {
    static ROTATION_RESOLUTION: number;
    static ROTATION_MAX_UNITS: number;
    static VLP16_FIRINGS_PER_BLOCK: number;
    static VLP16_SCANS_PER_FIRING: number;
    static VLP16_BLOCK_TDURATION: number;
    static VLP16_DSR_TOFFSET: number;
    static VLP16_FIRING_TOFFSET: number;
    static HDL32E_DSR_TOFFSET: number;
    static HDL32E_FIRING_TOFFSET: number;
    static VLS128_DSR_TOFFSET: number;
    static VLS128_FIRING_TOFFSET: number;
    readonly model: Model;
    readonly laserCorrections: LaserCorrection[];
    readonly distanceResolution: number;
    readonly timingOffsets: number[][];
    readonly sinRotTable: number[];
    readonly cosRotTable: number[];
    readonly vls128LaserAzimuthCache: number[];
    constructor(model: Model, calibrationData?: CalibrationData);
    static BuildTimingsFor(model: Model): number[][];
    static BuildTimings(rows: number, cols: number, fullFiringUs: number, // [µs]
    singleFiringUs: number, // [µs]
    offsetUs: number, // [µs]
    block: IndexCalc, point: IndexCalc): number[][];
}
declare type IndexCalc = (x: number, y: number) => number;
export {};
//# sourceMappingURL=Calibration.d.ts.map