import { RawBlock } from "./RawBlock";
import { FactoryId, Model, ReturnMode } from "./VelodyneTypes";
/**
 * Parses a raw Velodyne UDP packet. The packet must be exactly 1206 bytes.
 */
export declare class RawPacket {
    data: Uint8Array;
    static RAW_SCAN_SIZE: number;
    static SCANS_PER_BLOCK: number;
    static BLOCK_DATA_SIZE: number;
    static BLOCK_SIZE: number;
    static BLOCKS_PER_PACKET: number;
    static MAX_POINTS_PER_PACKET: number;
    blocks: RawBlock[];
    gpsTimestamp: number;
    factoryField1: number;
    factoryField2: number;
    returnMode?: ReturnMode;
    factoryId?: FactoryId;
    constructor(data: Uint8Array);
    inferModel(): Model | undefined;
    /**
     * Converts the gpsTimestamp field to an absolute number of fractional seconds
     * since the UNIX epoch. Since gpsTimestamp is relative to the top of the
     * hour, the top of the hour can be specified. Otherwise, the most recent hour
     * will be used
     * @param topOfHour Optional Date representing the top of the hour the
     *   gpsTimestamp is relative to. If unspecified, the most recent top of the
     *   hour (relative to now) will be used
     */
    timestamp(topOfHour?: Date): number;
    static InferModel(packet: Uint8Array): Model | undefined;
    /**
     * Convert a gpsTimestamp field representing the number of microseconds since
     * the top of the hour to an absolute timestamp as fractional seconds since
     * the UNIX epoch
     * @param gpsTimestamp Number of microseconds since the top of the hour. This
     *   field is a member of the RawPacket class
     * @param topOfHour Optional Date representing the top of the hour the
     *   gpsTimestamp is relative to. If unspecified, the most recent top of the
     *   hour (relative to now) will be used
     */
    static GpsTimestampToTimestamp(gpsTimestamp: number, topOfHour?: Date): number;
}
//# sourceMappingURL=RawPacket.d.ts.map