import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
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: MessageFns<IMUVec>;
export declare const IMUQuat: MessageFns<IMUQuat>;
export declare const IMUReport: MessageFns<IMUReport>;
export declare const IMUReportVec: MessageFns<IMUReportVec>;
export declare const IMUReportQuatWAcc: MessageFns<IMUReportQuatWAcc>;
export declare const IMUPacket: MessageFns<IMUPacket>;
export declare const IMUData: MessageFns<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 interface MessageFns<T> {
    encode(message: T, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): T;
    fromJSON(object: any): T;
    toJSON(message: T): unknown;
    create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
    fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}
export declare const protobufName = "IMUData";
export {};
//# sourceMappingURL=IMUData.d.ts.map