import { BaseDevice } from '../BaseDevice';
interface AK8963Config {
    ak_address: number;
    DEBUG?: boolean;
    scaleValues: boolean;
    bus: number;
    magCalibration: MagCalibration;
}
interface Offset {
    x: number;
    y: number;
    z: number;
}
interface Scale {
    x: number;
    y: number;
    z: number;
}
interface MagCalibration {
    offset: Offset;
    scale: Scale;
}
export declare const AK8963: {
    ADDRESS: number;
    WHO_AM_I: number;
    WHO_AM_I_RESPONSE: number;
    INFO: number;
    ST1: number;
    XOUT_L: number;
    XOUT_H: number;
    YOUT_L: number;
    YOUT_H: number;
    ZOUT_L: number;
    ZOUT_H: number;
    ST2: number;
    CNTL: number;
    ASTC: number;
    I2CDIS: number;
    ASAX: number;
    ASAY: number;
    ASAZ: number;
    ST1_DRDY_BIT: number;
    ST1_DOR_BIT: number;
    CNTL_MODE_OFF: number;
    CNTL_MODE_SINGLE_MEASURE: number;
    CNTL_MODE_CONTINUE_MEASURE_1: number;
    CNTL_MODE_CONTINUE_MEASURE_2: number;
    CNTL_MODE_EXT_TRIG_MEASURE: number;
    CNTL_MODE_SELF_TEST_MODE: number;
    CNTL_MODE_FUSE_ROM_ACCESS: number;
    DEFAULT_CALIBRATION: {
        offset: {
            x: number;
            y: number;
            z: number;
        };
        scale: {
            x: number;
            y: number;
            z: number;
        };
    };
};
export declare class ak8963 extends BaseDevice {
    private _config;
    private asax;
    private asay;
    private asaz;
    constructor(config?: Partial<AK8963Config>);
    initialize(): Promise<void>;
    getMagAttitude(): Promise<number[]>;
    printSettings(): Promise<void>;
    /**
     * Get the Sensitivity Adjustment values.  These were set during manufacture and allow us to get the actual H values
     * from the magnetometer.
     */
    getSensitivityAdjustmentValues(): Promise<void>;
    getCNTL(): Promise<number>;
    /**
     * CNTL_MODE_OFF: 0x00, // Power-down mode
     * CNTL_MODE_SINGLE_MEASURE: 0x01, // Single measurement mode
     * CNTL_MODE_CONTINUE_MEASURE_1: 0x02, // Continuous measurement mode 1
     * CNTL_MODE_CONTINUE_MEASURE_2: 0x06, // Continuous measurement mode 2
     * CNTL_MODE_EXT_TRIG_MEASURE: 0x04, // External trigger measurement mode
     * CNTL_MODE_SELF_TEST_MODE: 0x08, // Self-test mode
     * CNTL_MODE_FUSE_ROM_ACCESS: 0x0F  // Fuse ROM access mode
     */
    setCNTL(mode: number): Promise<void>;
    getIDDevice(): Promise<number>;
    getDataReady(): Promise<number>;
}
export {};
