API Reference

The file JavaScriptLibrary/jabra.browser.integration-3.0.d.ts contains the API Reference.

Here the content of this file:

// Generated by dts-bundle-generator v4.3.0

/**
 * Version of this javascript api (should match version number in file apart from possible alfa/beta designator).
 */
export declare const apiVersion = "3.0.1";
/**
 * Contains information about installed components.
 */
export interface InstallInfo {
    installationOk: boolean;
    version_chromehost: string;
    version_nativesdk: string;
    version_browserextension: string;
    version_jsapi: string;
    browserextension_id: string;
    browserextension_type: string;
}
/**
 * Contains information about a device
 */
export interface DeviceInfo {
    deviceID: number;
    deviceName: string;
    deviceConnection: number;
    deviceFeatures: ReadonlyArray<DeviceFeature>;
    errStatus: number;
    isBTPaired?: boolean;
    isInFirmwareUpdateMode: boolean;
    productID: number;
    serialNumber?: string;
    variant: string;
    dongleName?: string;
    skypeCertified: boolean;
    firmwareVersion?: string;
    electricSerialNumbers?: ReadonlyArray<string>;
    batteryLevelInPercent?: number;
    batteryCharging?: boolean;
    batteryLow?: boolean;
    leftEarBudStatus?: boolean;
    equalizerEnabled?: boolean;
    busyLight?: boolean;
    /**
     * Set to ID of related dongle and/or headset if both are paired and connected.
     */
    connectedDeviceID?: number;
    /**
     * Set if the same device is connected in more than one way (BT and USB), so
     * the device appears twice.
     */
    aliasDeviceID?: number;
    /**
     * Only available in debug versions.
     */
    parentInstanceId?: string;
    /**
     * Only available in debug versions.
     */
    usbDevicePath?: string;
    /**
     * Browser media device information group (browser session specific).
     * Only available when calling getDevices/getActiveDevice with includeBrowserMediaDeviceInfo argument set to true.
     */
    browserGroupId?: string;
    /**
     * The browser's unique identifier for the input (e.g. microphone) part of the Jabra device (page origin specific).
     * Only available when calling getDevices/getActiveDevice with includeBrowserMediaDeviceInfo argument set to true.
     */
    browserAudioInputId?: string;
    /**
     * The browser's unique identifier for an output (e.g. speaker) part of the Jabra device (page origin specific).
     * Only available when calling getDevices/getActiveDevice with includeBrowserMediaDeviceInfo argument set to true.
     */
    browserAudioOutputId?: string;
    /**
     * The browser's textual descriptor of the device.
     * Only available when calling getDevices/getActiveDevice with includeBrowserMediaDeviceInfo argument set to true.
     */
    browserLabel?: string;
}
/**
 * A combination of a media stream and information of the associated device from the view of the browser.
 */
export interface MediaStreamAndDeviceInfoPair {
    stream: MediaStream;
    deviceInfo: DeviceInfo;
}
/**
 * All button event names.
 */
export declare type ButtonEventName = "mute" | "unmute" | "acceptcall" | "endcall" | "reject" | "flash" | "online" | "offline" | "linebusy" | "lineidle" | "redial" | "key0" | "key1" | "key2" | "key3" | "key4" | "key5" | "key6" | "key7" | "key8" | "key9" | "keyStar" | "keyPound" | "keyClear" | "Online" | "speedDial" | "voiceMail" | "LineBusy" | "outOfRange" | "intoRange" | "pseudoAcceptcall" | "pseudoEndcall" | "button1" | "button2" | "button3" | "volumeUp" | "volumeDown" | "fireAlarm" | "jackConnection" | "jackDisConnection" | "qdConnection" | "qdDisconnection" | "headsetConnection" | "headsetDisConnection";
/**
 * Names of events describing device being added/removed.
 */
export declare type AttachedDeattachedEventName = "device attached" | "device detached";
/**
 * Names of events presently without a type definition (subject to change).
 */
export declare type UntypedEventName = "busylight" | "hearThrough" | "batteryStatus" | "gnpButton" | "mmi" | "error";
/**
 * All possible device events as discriminative  union.
 */
export declare type EventName = ButtonEventName | AttachedDeattachedEventName | "devlog" | UntypedEventName;
/**
 * Error status codes returned by SDK. Same as Jabra_ErrorStatus in native SDK.
 */
export declare enum ErrorCodes {
    NoError = 0,
    SSLError = 1,
    CertError = 2,
    NetworkError = 3,
    DownloadError = 4,
    ParseError = 5,
    OtherError = 6,
    DeviceInfoError = 7,
    FileNotAccessible = 8,
    FileNotCompatible = 9,
    Device_NotFound = 10,
    Parameter_fail = 11,
    Authorization_failed = 12,
    FileNotAvailable = 13,
    ConfigParseError = 14,
    SetSettings_Fail = 15,
    Device_Reboot = 16,
    Device_ReadFail = 17,
    Device_NotReady = 18,
    FilePartiallyCompatible = 19
}
/**
 * Error return codes. Same as Jabra_ReturnCode in native SDK.
 */
export declare enum ErrorReturnCodes {
    Return_Ok = 0,
    Device_Unknown = 1,
    Device_Invalid = 2,
    Not_Supported = 3,
    Return_ParameterFail = 4,
    ProtectedSetting_Write = 5,
    No_Information = 6,
    NetworkRequest_Fail = 7,
    Device_WriteFail = 8,
    Device_ReadFails = 9,
    No_FactorySupported = 10,
    System_Error = 11,
    Device_BadState = 12,
    FileWrite_Fail = 13,
    File_AlreadyExists = 14,
    File_Not_Accessible = 15,
    Firmware_UpToDate = 16,
    Firmware_Available = 17,
    Return_Async = 18,
    Invalid_Authorization = 19,
    FWU_Application_Not_Available = 20,
    Device_AlreadyConnected = 21,
    Device_NotConnected = 22,
    CannotClear_DeviceConnected = 23,
    Device_Rebooted = 24,
    Upload_AlreadyInProgress = 25,
    Download_AlreadyInProgress = 26
}
/**
 * Custom error returned by commands expecting results when failing.
 */
export declare class CommandError extends Error {
    command: string;
    errmessage: string;
    data: any;
    constructor(command: string, errmessage: string, data?: string);
}
/**
 * General event type for call backs.
 */
export interface Event {
    message: EventName;
    data: {
        [key: string]: any;
    } & {
        deviceID: number;
        activeDevice?: boolean;
    };
}
/**
 * Event type for device added/removed.
 */
export interface DeviceAttachedDeAttachedEvent {
    message: "device attached" | "device detached";
    data: DeviceInfo;
}
/**
 * Event type for button events;
 */
export interface ButtonEvent {
    message: ButtonEventName;
    data: {
        deviceID: number;
        activeDevice: boolean;
        buttonInData: boolean;
        isOffHook: boolean;
        ringing: boolean;
        translatedInData: number;
    };
}
/**
 * Event type for dev log call backs.
 */
export interface DevLogEvent {
    message: "devlog";
    data: {
        deviceID: number;
        activeDevice: boolean;
        AppID: string;
        ESN: string;
        FW: string;
        LocalTimeStamp: string;
        Pid: number;
        TimeStampMs: number;
        Variant: string;
        "Device Name": string;
        "Raw data": string;
        "Seq.No": number;
        "TX Acoustic Logging Level": string;
        "TX Acoustic Logging Peak": string;
        "RX Acoustic Logging Level": string;
        "RX Acoustic Logging Peak": string;
        Speech_Analysis_TX: string;
        Speech_Analysis_RX: string;
        "Boom Position Guidance OK": string;
        "Bad_Mic_detect Flag": string;
        ID: string;
    };
}
/**
 * The format of errors returned.
 */
export declare type ClientError = any | {
    error: string;
};
/**
 * The format of messages returned.
 */
export declare type ClientMessage = any | {
    message: string;
};
/**
 * Type for event callback functions..
 */
export declare type EventCallback = (event: Event | DeviceAttachedDeAttachedEvent | ButtonEvent | DevLogEvent) => void;
/**
 * Device feature codes.
 */
export declare enum DeviceFeature {
    BusyLight = 1000,
    FactoryReset = 1001,
    PairingList = 1002,
    RemoteMMI = 1003,
    MusicEqualizer = 1004,
    EarbudInterconnectionStatus = 1005,
    StepRate = 1006,
    HeartRate = 1007,
    RRInterval = 1008,
    RingtoneUpload = 1009,
    ImageUpload = 1010,
    NeedsExplicitRebootAfterOta = 1011,
    NeedsToBePutIncCradleToCompleteFwu = 1012,
    RemoteMMIv2 = 1013,
    Logging = 1014,
    PreferredSoftphoneListInDevice = 1015,
    VoiceAssistant = 1016,
    PlayRingtone = 1017
}
/**
 * A specification of a button for MMI capturing.
 */
export declare enum RemoteMmiType {
    MMI_TYPE_MFB = 0,
    MMI_TYPE_VOLUP = 1,
    MMI_TYPE_VOLDOWN = 2,
    MMI_TYPE_VCB = 3,
    MMI_TYPE_APP = 4,
    MMI_TYPE_TR_FORW = 5,
    MMI_TYPE_TR_BACK = 6,
    MMI_TYPE_PLAY = 7,
    MMI_TYPE_MUTE = 8,
    MMI_TYPE_HOOK_OFF = 9,
    MMI_TYPE_HOOK_ON = 10,
    MMI_TYPE_BLUETOOTH = 11,
    MMI_TYPE_JABRA = 12,
    MMI_TYPE_BATTERY = 13,
    MMI_TYPE_PROG = 14,
    MMI_TYPE_LINK = 15,
    MMI_TYPE_ANC = 16,
    MMI_TYPE_LISTEN_IN = 17,
    MMI_TYPE_DOT3 = 18,
    MMI_TYPE_DOT4 = 19,
    MMI_TYPE_BUSYLIGHT = 128
}
/**
 * A MMI effect specification for light on, off or blinking in different tempo.
 * Nb: For legacy reasons these values are different than those in the C-SDK.
 */
export declare enum RemoteMmiSequence {
    MMI_LED_SEQUENCE_OFF = 0,
    MMI_LED_SEQUENCE_ON = 1,
    MMI_LED_SEQUENCE_SLOW = 2,
    MMI_LED_SEQUENCE_FAST = 3
}
/**
 * MMI button actions reported when button has focus.
 */
export declare enum RemoteMmiActionInput {
    MMI_ACTION_UP = 1,
    MMI_ACTION_DOWN = 2,
    MMI_ACTION_TAP = 4,
    MMI_ACTION_DOUBLE_TAP = 8,
    MMI_ACTION_PRESS = 16,
    MMI_ACTION_LONG_PRESS = 32,
    MMI_ACTION_X_LONG_PRESS = 64
}
/**
 * A 3 x 8 bit set of RGB colors. Numbers can be between 0-255.
 */
export declare type ColorType = [number, number, number];
/**
 * The log level currently used internally in this api facade. Initially this is set to show errors and
 * warnings until a logEvent (>=0.5) changes this when initializing the extension or when the user
 * changes the log level. Available in the API for testing only - do not use this in normal applications.
 */
export declare let logLevel: number;
/**
 * The JavaScript library must be initialized using this function. It returns a promise that
 * resolves when initialization is complete.
 */
export declare function init(): Promise<void>;
/**
 * De-initialize the api after use. Not normally used as api will normally
 * stay in use thoughout an application - mostly of interest for testing.
 */
export declare function shutdown(): Promise<void>;
/**
 * Internal helper that returns an array of valid event keys that correspond to the event specificator
 * and are known to exist in our event listener map.
 * Nb. For internal use only - may be changed at any time.
 */
export declare function _getEvents(nameSpec: string | RegExp | Array<string | RegExp>): ReadonlyArray<string>;
/**
 * Hook up listener call back to specified event(s) as specified by initial name specification argument nameSpec.
 * When the nameSpec argument is a string, this correspond to a single named event. When the argument is a regular
 * expression all lister subscribes to all matching events. If the argument is an array it recursively subscribes
 * to all events specified in the array.
 */
export declare function addEventListener(nameSpec: AttachedDeattachedEventName, callback: (event: DeviceInfo) => void): void;
export declare function addEventListener(nameSpec: "devlog", callback: (event: DevLogEvent) => void): void;
export declare function addEventListener(nameSpec: ButtonEventName, callback: (event: ButtonEvent) => void): void;
export declare function addEventListener(nameSpec: UntypedEventName, callback: (event: Event) => void): void;
export declare function addEventListener(nameSpec: EventName | RegExp | Array<EventName | RegExp>, callback: EventCallback): void;
/**
 * Remove existing listener to specified event(s). The callback must correspond to the exact callback provided
 * to a previous addEventListener.
 */
export declare function removeEventListener(nameSpec: AttachedDeattachedEventName, callback: (event: DeviceInfo) => void): void;
export declare function removeEventListener(nameSpec: "devlog", callback: (event: DevLogEvent) => void): void;
export declare function removeEventListener(nameSpec: ButtonEventName, callback: (event: ButtonEvent) => void): void;
export declare function removeEventListener(nameSpec: UntypedEventName, callback: (event: Event) => void): void;
export declare function removeEventListener(nameSpec: EventName | RegExp | Array<EventName | RegExp>, callback: EventCallback): void;
/**
 * Activate ringer (if supported) on the Jabra Device
 */
export declare function ring(): void;
/**
 * Deactivate ringer (if supported) on the Jabra Device
 */
export declare function unring(): void;
/**
 * Change state to in-a-call.
 *
 * By default the offhook command will also stop the ringer. Set first argument to true to ignore this behaviour and continue ringer.
 *
 * @param continueRinger True to continue ringer on offhook
 */
export declare function offHook(continueRinger?: boolean): void;
/**
 * Change state to idle (not-in-a-call).
 *
 * By default the onHook command will also stop the ringer. Set first argument to true to ignore this behaviour and continue ringer
 *
 * @param continueRinger True to continue ringer on onhook
 */
export declare function onHook(continueRinger?: boolean): void;
/**
 * Mutes the microphone (if supported).
 */
export declare function mute(): void;
/**
 * Unmutes the microphone (if supported).
 */
export declare function unmute(): void;
/**
 * Change state to held (if supported).
 */
export declare function hold(): void;
/**
 * Change state from held to OffHook (if supported).
 */
export declare function resume(): void;
/**
 * Capture/release buttons for customization (if supported). This turns off default behavior and enables mmi events to
 * be received instead. It also allows for mmi actions to be applied like changing lights with setRemoteMmiLightAction.
 *
 * @param type The button that should be captured/released.
 * @param capture True if button should be captured, false if it should be released.
 *
 * @returns A promise that is resolved once operation completes.
 */
export declare function setMmiFocus(type: RemoteMmiType, capture: boolean): Promise<void>;
/**
 * Change light/color on a previously captured button.
 * Nb. This requires the button to be previously captured though setMMiFocus.
 *
 * @param type The button that should be captured/released.
 * @param color An RGB array of 3x integers or a RGB number (with 0x or # prefix for hex).
 * @param effect What effect to apply to the button.
 *
 * @returns A promise that is resolved once operation completes.
 */
export declare function setRemoteMmiLightAction(type: RemoteMmiType, color: ColorType | number, effect: RemoteMmiSequence): Promise<void>;
/**
 * Get detailed information about the current active Jabra Device, including current status
 * and optionally also including related browser media device information.
 *
 * Note that browser media device information requires mediaDevices.getUserMedia or
 * getUserDeviceMediaExt to have been called so permissions are granted. Browser media information
 * is useful for setting a device constraint on mediaDevices.getUserMedia for input or for calling
 * setSinkId (when supported by the browser) to set output.
 */
export declare function getActiveDevice(includeBrowserMediaDeviceInfo?: boolean): Promise<DeviceInfo>;
/**
 * List detailed information about all attached Jabra Devices, including current status.
 * and optionally also including related browser media device information.
 *
 * Note that browser media device information requires mediaDevices.getUserMedia or
 * getUserDeviceMediaExt to have been called so permissions are granted. Browser media information
 * is useful for setting a device constraint on mediaDevices.getUserMedia for input or for calling
 * setSinkId (when supported by the browser) to set output.
 */
export declare function getDevices(includeBrowserMediaDeviceInfo?: boolean): Promise<ReadonlyArray<DeviceInfo>>;
/**
 * Internal utility that select a new active device in a backwards compatible way that works with earlier chrome host.
 * Used internally by test tool - do not use otherwise.
 *
 * Note: The active device is a global setting that affects all browser
 * instances using the browser SDK. Unless changed specifically, the setting
 * persist until browser is restarted or device is unplugged.
 *
 * @deprecated Use setActiveDeviceId instead.
 */
export declare function _setActiveDeviceId(id: number): void;
/**
 * Select a new active device returning once selection is completed.
 *
 * Note: The active device is a global setting that affects all browser
 * instances using the browser SDK. Unless changed specifically, the setting
 * persist until browser is restarted or device is unplugged.
 *
 * @param id The id number of the new active device.
 * @returns A promise that is resolved once selection completes.
 *
 */
export declare function setActiveDeviceId(id: number): Promise<void>;
/**
 * Set busylight on active device (if supported)
 *
 * @param busy True if busy light should be set, false if it should be cleared.
 */
export declare function setBusyLight(busy: boolean): Promise<void>;
/**
 * Get version number information for all components.
 */
export declare function getInstallInfo(): Promise<InstallInfo>;
/**
 * Configure an audio html element on a webpage to use jabra audio device as speaker output. Returns a promise with boolean success status.
 * The deviceInfo argument must come from getDeviceInfo or getUserDeviceMediaExt calls.
 * Note: for headsets connected via USB-dongle, call the method on the dongle
 */
export declare function trySetDeviceOutput(audioElement: HTMLMediaElement, deviceInfo: DeviceInfo): Promise<boolean>;
/**
 * Checks if a Jabra Input device is in fact selected in a media stream.
 * The deviceInfo argument must come from getDeviceInfo or getUserDeviceMediaExt calls.
 */
export declare function isDeviceSelectedForInput(mediaStream: MediaStream, deviceInfo: DeviceInfo): boolean;
/**
 * Replacement for mediaDevices.getUserMedia that makes a best effort to select the active Jabra audio device
 * to be used for the microphone. Unlike getUserMedia this method returns a promise that
 * resolve to an object containing both a stream and the device info for the selected device.
 *
 * Optional, additional non-audio constrains (like f.x. video) can be specified as well.
 *
 * Note: Subsequently, if this method appears to succeed use the isDeviceSelectedForInput function to check
 * if the browser did in fact choose a Jabra device for the microphone.
 */
export declare function getUserDeviceMediaExt(constraints?: MediaStreamConstraints): Promise<MediaStreamAndDeviceInfoPair>;
/**
 * Base interface for containing common meta-data for
 * reflective access to API classes, properties,
 * methods, constructors etc.
 */
export interface SymbolEntry {
    comment?: string;
    name: string;
    documentation: string;
    tsType: string;
    jsType?: string;
}
/**
 * Meta-data for reflective access to API classes.
 */
export interface ClassEntry extends SymbolEntry {
    methods: MethodEntry[];
    properties: PropertyEntry[];
}
/**
 * Meta-data for reflective access to API class properties.
 */
export interface PropertyEntry extends SymbolEntry {
    readonly: boolean;
}
/**
 * Meta-data for reflective access to API class methods.
 */
export interface MethodEntry extends SymbolEntry {
    parameters: ParameterEntry[];
}
/**
 * Meta-data for reflective access to API method parameters.
 */
export interface ParameterEntry extends SymbolEntry {
    optional: boolean;
}
/**
 * The meta API that classes with meta information shold support.
 */
export interface MetaApi {
    getMeta(): ClassEntry;
}
export declare type EventEmitterListener<V> = (value: V) => void;
declare class EventEmitter<T = string, V = any> {
    /**
     * A map of event listeners
     *
     * @memberof EventEmitter
     */
    listeners: Map<T, EventEmitterListener<V>[]>;
    /**
     * Add a function to be called when a specific type of event is emitted.
     *
     * @param {T} type
     * @param {EventEmitterListener<V>} listener
     * @memberof EventEmitter
     */
    addEventListener(type: T, listener: EventEmitterListener<V>): void;
    /**
     * Add a function to be called when a specific type of event is emitted.
     *
     * @param {T} type
     * @param {EventEmitterListener<V>} listener
     * @memberof EventEmitter
     */
    on(type: T, listener: EventEmitterListener<V>): void;
    /**
     * Remove an event listener that was previously added.
     *
     * @param {T} type
     * @param {EventEmitterListener<V>} listener
     * @memberof EventEmitter
     */
    removeEventListener(type: T, listener: EventEmitterListener<V>): void;
    /**
     * Remove an event listener that was previously added.
     *
     * @param {T} type
     * @param {EventEmitterListener<V>} listener
     * @memberof EventEmitter
     */
    off(type: T, listener: EventEmitterListener<V>): void;
    /**
     * Emit an event of specific type, and supply what value to pass to the
     * listener.
     *
     * @param {T} type
     * @param {V} event
     * @returns
     * @memberof EventEmitter
     */
    emit(type: T, value: V): void;
}
declare class AnalyticsEvent {
    /**
     * The event type of the analytics event
     *
     * @type {string}
     * @memberof AnalyticsEvent
     */
    readonly type: string;
    /**
     * The value of the analytics event
     *
     * @type {*}
     * @memberof AnalyticsEvent
     */
    readonly value: any;
    /**
     * The epoch time of the analytics event occured
     *
     * @type {number}
     * @memberof AnalyticsEvent
     */
    readonly timestamp: number;
    constructor(type: string, value: any, timestamp?: number);
}
export declare type SpeechStatus = {
    isSilent: boolean;
    isCrosstalking: boolean;
    isTXSpeaking: boolean;
    isRXSpeaking: boolean;
};
export declare type SpeechTime = {
    totalTime: number;
    txSpeechTime: number;
    txSpeechTimePct: number;
    rxSpeechTime: number;
    rxSpeechTimePct: number;
    crosstalkTime: number;
    crosstalkTimePct: number;
    silenceTime: number;
    silenceTimePct: number;
};
/**
 * WARNING: THE ANALYTICS APIS ARE PRE-RELEASE, AND SUBJECT TO CHANGE WITHOUT
 * WARNING IN FUTURE RELEASES. ONLY USE FOR EVALUATION PURPOSES.
 *
 * The Analytics will collect AnalyticsEvents and allow you to query data such
 * as speech status, speech time, and much more. To use the class, initialize an
 * instance of the class and use the start method to start collecting. The class
 * is an event emitter, so you can use addEventListener to listen to specific
 * AnalyticEvents. If you have multiple jabra devices connected and only want to
 * collect events from one of the devices supply a deviceID in the class
 * constructor.
 *
 * @export
 * @class Analytics
 * @extends {EventEmitter}
 */
export declare class Analytics extends EventEmitter {
    /**
     * The event log containing all the events happening when analytics start
     *
     * @private
     * @memberof Analytics
     */
    private events;
    /**
     * The timestamp of when analytics was started
     *
     * @type {(number | undefined)}
     * @memberof Analytics
     */
    startTime: number | undefined;
    /**
     * The timestamp of when the analytics was stopped
     *
     * @type {(number | undefined)}
     * @memberof Analytics
     */
    stopTime: number | undefined;
    /**
     * Creates an instance of Analytics. Supply a deviceID to only collect
     * analytics from that specific device.
     *
     * @param {(number | null)} [deviceID=null]
     * @memberof Analytics
     */
    constructor(deviceID?: number | null);
    /**
     * Starts the analytics module
     *
     * @memberof Analytics
     */
    start(): void;
    /**
     * Stops the analytics module
     *
     * @memberof Analytics
     */
    stop(): void;
    /**
     * Clears the event history of the analytics module
     *
     * @memberof Analytics
     */
    clear(): void;
    /**
     * Get whether the transmitter or receiver is talking, and whether there's
     * crosstalk or silence
     *
     * @returns {SpeechStatus}
     * @memberof Analytics
     */
    getSpeechStatus(): SpeechStatus;
    /**
     * Get time the transmitter or reciver has talked, and how long there's
     * been crosstalk or silence
     *
     * @param {number} [fromTime]
     * @param {number} [toTime]
     * @returns {SpeechTime}
     * @memberof Analytics
     */
    getSpeechTime(fromTime?: number, toTime?: number): SpeechTime;
    /**
     * Get whether or not the headset is muted
     *
     * @returns {boolean} - muted status
     * @memberof Analytics
     */
    getMutedStatus(): boolean;
    /**
     * Get the number of times the headset has been muted
     *
     * @returns {number} - muted count
     * @memberof Analytics
     */
    getMutedCount(): number;
    /**
     * Get the boom arm position status
     *
     * @returns {(boolean | undefined)}
     * @memberof Analytics
     */
    getBoomArmStatus(): boolean | undefined;
    /**
     * Get the number of times the boom arm has been misaligned
     *
     * @returns {number}
     * @memberof Analytics
     */
    getBoomArmMisalignedCount(): number;
    /**
     * Get the number of times the volume has been increased
     *
     * @returns {number}
     * @memberof Analytics
     */
    getVolumeUpCount(): number;
    /**
     * Get the number of times the volume has been decreased
     *
     * @returns {number}
     * @memberof Analytics
     */
    getVolumeDownCount(): number;
    /**
     * Get the audio exposure level
     *
     * @returns {number}
     * @memberof Analytics
     */
    getAudioExposure(limit?: number): AnalyticsEvent[];
    /**
     * Get the average audio exposure level over a time interval
     *
     * @returns {number}
     * @memberof Analytics
     */
    getAverageAudioExposure(fromTime?: number, toTime?: number): number;
    /**
     * Get the average background noise level
     *
     * @returns {number}
     * @memberof Analytics
     */
    getBackgroundNoise(limit?: number): AnalyticsEvent[];
    /**
     * Get the average background noise level over a time interval
     *
     * @returns {number}
     * @memberof Analytics
     */
    getAverageBackgroundNoise(fromTime?: number, toTime?: number): number;
    /**
     * Get the average acoustic level level over a time interval, a private method
     * used for getAverageAudioExposure and getAverageBackgroundNoise
     *
     * @returns {number}
     * @memberof Analytics
     */
    private getAverageAcousticLevel;
}

export as namespace jabra;

export {};