export interface AxisSummary {
    deltaV: number;
    peak: number;
    timeAboveThreshold: number;
}
export declare class ShockInfo {
    peakVal: number;
    private peakAxis;
    duration: number;
    dVx: number;
    dVy: number;
    dVz: number;
    constructor(peakVal: number, peakAxis: number, duration: number, dVx: number, dVy: number, dVz: number);
    readonly axis: string;
    readonly largestDeltaV: number;
}
export declare type PeakAxis = "x" | "y" | "z";
/**
 * The expected waveform data format that needs to be uploaded to IOTile.cloud.
 */
export interface WaveformData {
    acceleration_data: {
        x: number[];
        y: number[];
        z: number[];
    };
    sampling_rate: number;
    crc_code: number;
}
/**
 * This is the expected waveform summary information that needs to be uploaded in
 * extra_data with each waveform event to iotile.cloud.
 */
export interface WaveformSummary {
    peak: number;
    axis: PeakAxis;
    duration: number;
    delta_v_x: number;
    delta_v_y: number;
    delta_v_z: number;
}
export declare type DecodedWaveformInfo = {
    [key: number]: {
        "deviceTimestamp": number;
        "utcTimestamp": Date | null;
        "waveform": WaveformData;
        "summary": WaveformSummary;
    };
};
export declare type RawWaveformInfo = {
    [key: number]: {
        timestamp: number;
        crcCode: number;
        rawWaveform: ArrayBuffer;
    };
};
