import { Event } from '../metrics.types'; export declare const anonymizeIPAddress: (localIp: any) => string; /** * Returns a formated string of the user agent. * * @returns {string} formatted user agent information */ export declare const userAgentToString: ({ clientName, webexVersion }: { clientName: any; webexVersion: any; }) => string; /** * Iterates object recursively and removes any * property that returns isEmpty for it's associated value * isEmpty = implementation from Lodash. * * It modifies the object in place (mutable) * * @param obj - input * @returns */ export declare const clearEmptyKeysRecursively: (obj: any) => void; /** * Locus error codes start with 2. The next three digits are the * HTTP status code related to the error code (like 400, 403, 502, etc.) * The remaining three digits are just an increasing integer. * If it is 7 digits and starts with a 2, it is locus. * * @param errorCode * @returns {boolean} */ export declare const isLocusServiceErrorCode: (errorCode: string | number) => boolean; /** * MeetingInfo errors sometimes has body.data.meetingInfo object * MeetingInfo errors come with a wbxappapi url * * @param {Object} rawError * @returns {boolean} */ export declare const isMeetingInfoServiceError: (rawError: any) => boolean; /** * Returns true if the raw error is a network related error * * @param {Object} rawError * @returns {boolean} */ export declare const isNetworkError: (rawError: any) => boolean; /** * Returns true if the error is an unauthorized error * * @param {Object} rawError * @returns {boolean} */ export declare const isUnauthorizedError: (rawError: any) => boolean; /** * Returns true if the error is an SdpOfferCreation error * * @param {Object} rawError * @returns {boolean} */ export declare const isSdpOfferCreationError: (rawError: any) => boolean; export declare const isWebrtcApiNotAvailableError: (rawError: { code: number; message: string; name: string; } | unknown) => boolean; /** * Checks if the given error is a browser media error by its name. * Returns true if the error name matches any known browser media error name in the mapping. * * @param {Object} rawError - The error object to check. * @returns {boolean} True if the error is a browser media error, false otherwise. */ export declare const isBrowserMediaError: (rawError: any) => boolean; /** * Returns the client error code mapped to the given browser media error name. * If the error name is not found in the mapping, returns undefined. * * @param {Object} rawError - The error object containing the error name. * @returns {string|undefined} The mapped client error code, or undefined if not found. */ export declare const getBrowserMediaErrorCode: (rawError: any) => number; /** * MDN Media Devices getUserMedia() method returns a name if it errs * Documentation can be found here: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia * * @param errorCode * @returns */ export declare const isBrowserMediaErrorName: (errorName: any) => boolean; /** * @param {Object} webex sdk instance * @param webClientDomain * @returns */ export declare const getBuildType: (webex: any, webClientDomain: any, markAsTestEvent?: boolean) => Event['origin']['buildType']; /** * Prepare metric item for submission. * @param {Object} webex sdk instance * @param {Object} item * @returns {Object} prepared item */ export declare const prepareDiagnosticMetricItem: (webex: any, item: any) => any; /** * Sets the originTime value(s) before the request/fetch. * This function is only useful if you are about to submit a metrics * request using pre-built fetch options; * * @param {any} options * @returns {any} the updated options object */ export declare const setMetricTimings: (options: any) => any; export declare const extractVersionMetadata: (version: string) => { majorVersion: number; minorVersion: number; }; /** * Generates client error codes for specific ice failures * that happen when trying to add media in a meeting. */ export declare const generateClientErrorCodeForIceFailure: ({ signalingState, iceConnected, turnServerUsed, unreachable, }: { signalingState: RTCPeerConnection['signalingState']; iceConnected: boolean; turnServerUsed: boolean; unreachable: boolean; }) => number;