import { DeviceAddress, OpMode, PowerLevel, SystemError, SystemStatus } from './constants';
import { CalibrationStatusMap, Offsets, SelfTestResult, SensorUnits, Versions, AxisMapping } from './types';
export declare class BNO055 {
    private readonly bus;
    readonly address: number;
    static begin(address: DeviceAddress, mode?: OpMode, busNumber?: number): Promise<BNO055>;
    mode: OpMode;
    units: SensorUnits;
    private constructor();
    getAxisMapping(): Promise<AxisMapping>;
    getCalibrationStatuses(): Promise<CalibrationStatusMap>;
    getEuler(): Promise<{
        h: number;
        r: number;
        p: number;
    }>;
    getMode(): Promise<OpMode>;
    getPage(): Promise<number>;
    getQuat(): Promise<{
        w: number;
        x: number;
        y: number;
        z: number;
    }>;
    getSelfTestResults(): Promise<SelfTestResult>;
    getSensorOffsets(): Promise<Offsets | undefined>;
    setSensorOffsets(offsets: Offsets): Promise<void>;
    getSystemError(): Promise<SystemError>;
    getSystemStatus(): Promise<SystemStatus>;
    getTemperature(): Promise<number>;
    getUnits(): Promise<SensorUnits>;
    getVersions(): Promise<Versions>;
    /**
     * Checks that all relevant calibration status values are set to 3 (fully calibrated)
     */
    isFullyCalibrated(): Promise<boolean>;
    resetSystem(): Promise<void>;
    setAxisMapping({ X, Y, Z }: AxisMapping): Promise<void>;
    setMode(mode: OpMode): Promise<void>;
    setPowerLevel(level?: PowerLevel): Promise<void>;
    useExternalClock(): Promise<void>;
    verifyConnection(): Promise<void>;
    /**
     * I2C Helper Methods
     */
    private readDoubleByte;
    private readBlock;
    private writeDoubleByte;
}
