import _m0 from "protobufjs/minimal";
import { Timestamp } from "./common";
export declare const protobufPackage = "dai.proto.imu_data";
export declare enum Accuracy {
    UNRELIABLE = 0,
    LOW = 1,
    MEDIUM = 2,
    HIGH = 3,
    UNRECOGNIZED = -1
}
export declare function accuracyFromJSON(object: any): Accuracy;
export declare function accuracyToJSON(object: Accuracy): string;
export interface IMUVec {
    x: number;
    y: number;
    z: number;
}
export interface IMUQuat {
    x: number;
    y: number;
    z: number;
    w: number;
}
export interface IMUReport {
    sequence: number;
    accuracy: Accuracy;
    ts: Timestamp | undefined;
    tsDevice: Timestamp | undefined;
}
export interface IMUReportVec {
    report: IMUReport | undefined;
    vec: IMUVec | undefined;
}
export interface IMUReportQuatWAcc {
    report: IMUReport | undefined;
    quat: IMUQuat | undefined;
    rotationVectorAccuracy: number;
}
export interface IMUPacket {
    accelerometer: IMUReportVec | undefined;
    gyroscope: IMUReportVec | undefined;
    magnetometer: IMUReportVec | undefined;
    rotationVector: IMUReportQuatWAcc | undefined;
}
export interface IMUData {
    packets: IMUPacket[];
    /** Sequence number */
    sequenceNum: number;
    /** Timestamp */
    ts: Timestamp | undefined;
    /** Timestamp from device */
    tsDevice: Timestamp | undefined;
}
export declare const IMUVec: {
    encode(message: IMUVec, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): IMUVec;
    fromJSON(object: any): IMUVec;
    toJSON(message: IMUVec): unknown;
    create<I extends Exact<DeepPartial<IMUVec>, I>>(base?: I): IMUVec;
    fromPartial<I extends Exact<DeepPartial<IMUVec>, I>>(object: I): IMUVec;
};
export declare const IMUQuat: {
    encode(message: IMUQuat, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): IMUQuat;
    fromJSON(object: any): IMUQuat;
    toJSON(message: IMUQuat): unknown;
    create<I extends Exact<DeepPartial<IMUQuat>, I>>(base?: I): IMUQuat;
    fromPartial<I extends Exact<DeepPartial<IMUQuat>, I>>(object: I): IMUQuat;
};
export declare const IMUReport: {
    encode(message: IMUReport, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): IMUReport;
    fromJSON(object: any): IMUReport;
    toJSON(message: IMUReport): unknown;
    create<I extends Exact<DeepPartial<IMUReport>, I>>(base?: I): IMUReport;
    fromPartial<I extends Exact<DeepPartial<IMUReport>, I>>(object: I): IMUReport;
};
export declare const IMUReportVec: {
    encode(message: IMUReportVec, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): IMUReportVec;
    fromJSON(object: any): IMUReportVec;
    toJSON(message: IMUReportVec): unknown;
    create<I extends Exact<DeepPartial<IMUReportVec>, I>>(base?: I): IMUReportVec;
    fromPartial<I extends Exact<DeepPartial<IMUReportVec>, I>>(object: I): IMUReportVec;
};
export declare const IMUReportQuatWAcc: {
    encode(message: IMUReportQuatWAcc, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): IMUReportQuatWAcc;
    fromJSON(object: any): IMUReportQuatWAcc;
    toJSON(message: IMUReportQuatWAcc): unknown;
    create<I extends Exact<DeepPartial<IMUReportQuatWAcc>, I>>(base?: I): IMUReportQuatWAcc;
    fromPartial<I extends Exact<DeepPartial<IMUReportQuatWAcc>, I>>(object: I): IMUReportQuatWAcc;
};
export declare const IMUPacket: {
    encode(message: IMUPacket, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): IMUPacket;
    fromJSON(object: any): IMUPacket;
    toJSON(message: IMUPacket): unknown;
    create<I extends Exact<DeepPartial<IMUPacket>, I>>(base?: I): IMUPacket;
    fromPartial<I extends Exact<DeepPartial<IMUPacket>, I>>(object: I): IMUPacket;
};
export declare const IMUData: {
    encode(message: IMUData, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): IMUData;
    fromJSON(object: any): IMUData;
    toJSON(message: IMUData): unknown;
    create<I extends Exact<DeepPartial<IMUData>, I>>(base?: I): IMUData;
    fromPartial<I extends Exact<DeepPartial<IMUData>, I>>(object: I): IMUData;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export declare const protobufName = "IMUData";
export {};
//# sourceMappingURL=IMUData.d.ts.map