/** * This declares the natively defined javascript types defined in the c++ code for the * N-API based sdk integration. The interface is not required/supported by N-API but * supplied for maximum type safety internally for this module. */ import { BusylightStatus, ConfigParamsCloud, DeviceInfo, EqualizerMode, DeviceBtnType, UploadEventStatus, ContactInfo, LogEventType, CallAction } from './common-types'; import { RemoteMmiInput, RemoteMmiPriority, RemoteMmiType } from './remotemmi-types'; import { YealinkError } from './enum'; import { FirmwareEventStatus, FirmwareEventType } from './fw-types'; import { BtPairedDeviceList } from './bt-types'; import { CameraDirectionCmd, CameraSmartTrackingOpt, CameraZoomCmd } from './camera-types'; /** * Declares all natively implemented n-api functions that call into the Yealink C SDK. * * These functions are considered a low-level implementation detail and should NOT * be exposed directly to the users of the wrapper. * * The functions all use simple callbacks because the current n-api c++ interface do * not handle promises well. This means that the high-level parts of this wrapper * should convert the callbacks into promises when required (the standard node * function util.promisify can be useful for this). * * @internal **/ export declare interface YLSdkInterface { isOnlineSupported(isOnlineSupported: any); /** * Initialize SDK + Yealink_SetAppID + pre-register all callback functions * for all events. */ Initialize(appId: string, initRetsult: (error: YealinkError, result: void) => void, firstScanDone: (event_time_ms: number) => void, attached: (deviceId: DeviceInfo, event_time_ms: number) => void, deAttached: (deviceId: number, event_time_ms: number) => void, buttonInDataTranslated: (deviceId: number, translatedInData: DeviceBtnType, buttonInData: boolean) => void, devLogCallback: (deviceId: number, logEventType: LogEventType, ret: boolean) => void, batteryStatusCallback: (deviceId: number, levelInPercent: number, isCharging: boolean, isBatteryLow: boolean) => void, onRemoteMmiEvent: (deviceId: number, type: RemoteMmiType, input: RemoteMmiInput) => void, downloadFirmwareProgressCallback: (deviceId: number, type: FirmwareEventType, status: FirmwareEventStatus, dwnFirmPercentage: number) => void, uploadProgressCallback: (deviceId: number, status: UploadEventStatus, percentage: number) => void, registerPairingListCallback: (deviceId: number, pairedListInfo: BtPairedDeviceList) => void, onDeviceBtnEventCallback: (deviceId: number, btnEvents: Array<{ buttonTypeKey: number, buttonTypeValue: string, buttonEventType: Array<{ key: number, value: string }> }>) => void, buttonInDataTranslatedWithCid: (deviceId: number, cid: number, translatedInData: DeviceBtnType, buttonInData: boolean) => void, callActionCallback: (deviceId: number, cid: number, action: CallAction) => void, dialnumberchangecallback: (deviceId: number, cid: number, dualnumber: string) => void, configParams: ConfigParamsCloud): void; /** * Uninitialize SDK and free resources. Must be called when finished * notice: This method is blocking!! */ UnInitialize(): boolean; ConnectToYealinkApplication(guid: string, softphoneName: string, callback: (error: YealinkError, result: boolean) => void): void; DisconnectFromYealinkApplication(callback: (error: YealinkError, result: void) => void): void; SetSoftphoneReady(isReady: boolean, callback: (error: YealinkError, result: void) => void): void; IsSoftphoneInFocus(callback: (error: YealinkError, result: boolean) => void): void; GetVersion(callback: (error: YealinkError, result: string) => void): void; // log NativeAddonLog(severity: AddonLogSeverity, caller: string, msg: string | Error): void; GetNativeAddonLogConfig(): NativeAddonLogConfig; // device GetSupportedFeatures(deviceId: number, callback: (error: YealinkError, result: Array) => void): void; IsFeatureSupported(deviceId: number, feature: DeviceFeature, callback: (error: YealinkError, result: boolean) => void): void; IsRingSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetRing(deviceId: number, enable: boolean, callback: (error: YealinkError, result: boolean) => void): void; IsOffHookSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetOffHook(deviceId: number, enable: boolean, callback: (error: YealinkError, result: boolean) => void): void; IsMuteSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetMute(deviceId: number, enable: boolean, callback: (error: YealinkError, result: boolean) => void): void; IsHoldSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetHold(deviceId: number, enable: boolean, callback: (error: YealinkError, result: boolean) => void): void; IsOnlineSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetOnline(deviceId: number, enable: boolean, callback: (error: YealinkError, result: boolean) => void): void; IsYlHidStdHidSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; GetHidWorkingState(deviceId: number, callback: (error: YealinkError, result: HidWorkState) => void): void; SetHidWorkingState(deviceId: number, state: HidWorkState, callback: (error: YealinkError, result: void) => void): void; SetStdHidEventsFromYealinkDevices(enable: boolean, callback: (error: YealinkError, result: HidWorkState) => void): void; IsStdHidEventsFromYealinkDevices(callback: (error: YealinkError, result: HidWorkState) => void): void; EnterDialCall(deviceId: number, cid: number, callback: (error: YealinkError, result: boolean) => void): void; RingBackCall(deviceId: number, cid: number, callback: (error: YealinkError, result: boolean) => void): void; IncomingCall(deviceId: number, cid: number, contact: ContactInfo, callback: (error: YealinkError, result: boolean) => void): void; OutgoingCall(deviceId: number, cid: number, contact: ContactInfo, callback: (error: YealinkError, result: boolean) => void): void; TerminateCall(deviceId: number, cid: number, callback: (error: YealinkError, result: boolean) => void): void; AnswerCall(deviceId: number, cid: number, callback: (error: YealinkError, result: boolean) => void): void; HoldCall(deviceId: number, cid: number, contact: ContactInfo, callback: (error: YealinkError, result: boolean) => void): void; ResumeCall(deviceId: number, cid: number, callback: (error: YealinkError, result: boolean) => void): void; MuteCall(deviceId: number, cid: number, callback: (error: YealinkError, result: boolean) => void): void; UnmuteCall(deviceId: number, cid: number, callback: (error: YealinkError, result: boolean) => void): void; UpdateContact(deviceId: number, cid: number, contact: Contact, callback: (error: YealinkError, result: boolean) => void): void; IsSetDateTimeSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetDateTime(deviceId: number, dateTime: DateTime, callback: (error: YealinkError, result: boolean) => void): void; IsUploadRingtoneSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; UploadRingtone(deviceId: number, strPath: string, callback: (error: YealinkError, result: boolean) => void): void; PlayRingtone(deviceId: number, type: number, callback: (error: YealinkError, result: boolean) => void): void; IsBusylightSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetBusylightStatus(deviceId: number, status: BusylightStatus, callback: (error: YealinkError, result: void) => void): void; GetBusylightStatus(deviceId: number, callback: (error: YealinkError, result: BusylightStatus) => void): void; IsEqualizerSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; GetEqualizerMode(deviceId: number, callback: (error: YealinkError, result: EqualizerMode) => void): void; SetEqualizerMode(deviceId: number, mode: EqualizerMode, callback: (error: YealinkError, result: boolean) => void): void; IsWizardModeSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetWizardMode(deviceId: number, mode: WizardModes, callback: (error: YealinkError, result: boolean) => void): void; GetWizardMode(deviceId: number, callback: (error: YealinkError, result: WizardModes) => void): void; FactoryReset(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; RebootDevice(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; StartExportAudio(deviceId: number, path: string, callback: (error: YealinkError, result: boolean) => void): void; StopExportAudio(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; IsAudioModeSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; ChangeAudioMode(deviceId: number, mode: AudioModes, callback: (error: YealinkError, result: boolean) => void): void; HasDectInDocked(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; GetRegionVersion(deviceId: number, callback: (error: YealinkError, result: string) => void): void; SetCurrentTalkContact(deviceId: number, contact: ContactInfo, callback: (error: YealinkError, result: boolean) => void): void; SetContactInfoList(deviceId: number, contact: ContactInfoList, callback: (error: YealinkError, result: boolean) => void): void; GetBatteryStatus(deviceId: number, callback: (error: YealinkError, result: Battery) => void): void; GetDeviceImagePath(deviceId: number, callback: (error: YealinkError, result: string) => void): void; ExportDevLog(deviceId: number, path: string, callback: (error: YealinkError, result: void) => void): void; UploadDevLogToCloud(deviceId: number, callback: (error: YealinkError, result: void) => void): void; GetESN(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; // settings GetSettings(deviceId: number, callback: (error: YealinkError, result: DeviceSettings) => void): void; GetSetting(deviceId: number, guid: string, callback: (error: YealinkError, result: DeviceSettings) => void): void; SetSettings(deviceId: number, settings: DeviceSettings, callback: (error: YealinkError, result: void) => void): void; // bluetooth ConnectBTDevice(deviceId: number, callback: (error: YealinkError, result: void) => void): void; GetConnectedBTDeviceName(deviceId: number, callback: (error: YealinkError, result: string) => void): void; ConnectNewDevice(deviceId: number, deviceName: string, deviceBTAddr: string, isConnected: boolean, callback: (error: YealinkError, result: void) => void): void; ConnectPairedDevice(deviceId: number, deviceName: string, deviceBTAddr: string, isConnected: boolean, callback: (error: YealinkError, result: void) => void): void; DisconnectBTDevice(deviceId: number, callback: (error: YealinkError, result: void) => void): void; DisconnectPairedDevice(deviceId: number, deviceName: string, deviceBTAddr: string, isConnected: boolean, callback: (error: YealinkError, result: void) => void): void; GetAutoConnecting(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; SetAutoConnecting(deviceId: number, enable: boolean, callback: (error: YealinkError, result: void) => void): void; IsPairingListSupported(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; GetPairingList(deviceId: number, callback: (error: YealinkError, result: Array<{ deviceName: string, deviceBTAddr: string, isConnected: boolean }>) => void): void; ClearPairingList(deviceId: number, callback: (error: YealinkError, result: void) => void): void; SetBTDiscoverable(deviceId: number, callback: (error: YealinkError, result: void) => void): void; ScanNewDevices(deviceId: number, callback: (error: YealinkError, result: void) => void): void; StopBTScan(deviceId: number, callback: (error: YealinkError, result: void) => void): void; ClearPairedDevice(deviceId: number, deviceName: string, deviceBTAddr: string, isConnected: boolean, callback: (error: YealinkError, result: void) => void): void; GetSearchDeviceList(deviceId: number, callback: (error: YealinkError, result: Array<{ deviceName: string, deviceBTAddr: string, isConnected: boolean }>) => void): void; // firmware update GetFirmwareVersion(deviceId: number, callback: (error: YealinkError, result: string) => void): void; GetLatestFirmwareInformation(deviceId: number, callback: (error: YealinkError, result: FirmwareInfoType) => void): void; DownloadFirmware(deviceId: number, version: string, callback: (error: YealinkError, result: void) => void): void; UpdateFirmware(deviceId: number, fwPath: string, callback: (error: YealinkError, result: number) => void): void; GetFirmwareFilePath(deviceId: number, version: string, callback: (error: YealinkError, result: string) => void): void; CancelFirmwareDownload(deviceId: number, callback: (error: YealinkError, result: void) => void): void; CheckForFirmwareUpdate(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; // remotemmi GetRemoteMmiFocus(deviceId: number, type: RemoteMmiType, input: RemoteMmiInput, priority: RemoteMmiPriority, callback: (error: YealinkError, result: void) => void): void; ReleaseRemoteMmiFocus(deviceId: number, type: RemoteMmiType, callback: (error: YealinkError, result: void) => void): void; IsRemoteMmiInFocus(deviceId: number, type: RemoteMmiType, callback: (error: YealinkError, result: boolean) => void): void; SetRemoteMmiAction(deviceId: number, type: RemoteMmiType, actionOuput: RemoteMmiActionOutput, callback: (error: YealinkError, result: void) => void): void; GetRemoteMmiTypes(deviceId: number, callback: (error: YealinkError, result: Array<{ type: RemoteMmiType, priorityMask: RemoteMmiPriority, sequenceMask: RemoteMmiSequence, inputMask: RemoteMmiInput, output: RemoteMmiOutput }>) => void): void; // camera CameraIsReady(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; CameraDirectionCtrl(deviceId: number, cmd: CameraDirectionCmd, callback: (error: YealinkError, result: void) => void): void; CameraZoomCtrl(deviceId: number, cmd: CameraZoomCmd, callback: (error: YealinkError, result: void) => void): void; CameraPTZReset(deviceId: number, callback: (error: YealinkError, result: void) => void): void; CameraAddPreset(deviceId: number, pathPic: string, callback: (error: YealinkError, result: void) => void): void; CameraDelPreset(deviceId: number, presetIndex: number, callback: (error: YealinkError, result: void) => void): void; CameraDelAllPreset(deviceId: number, callback: (error: YealinkError, result: void) => void): void; CameraGetAllPreset(deviceId: number, callback: (error: YealinkError, result: Array<{ presetIndex: number, pathPic: string }>) => void): void; CameraUpdatePreset(deviceId: number, presetIndex: number, pathPic: string, callback: (error: YealinkError, result: void) => void): void; CameraApplyPreset(deviceId: number, presetIndex, callback: (error: YealinkError, result: void) => void): void; CameraGetSmartTrackingOptInfo(deviceId: number, callback: (error: YealinkError, result: Array) => void): void; CameraSetSmartTrackingOpt(deviceId: number, opt: CameraSmartTrackingOpt, callback: (error: YealinkError, result: void) => void): void; CameraGetSamrtTrackingOpt(deviceId: number, callback: (error: YealinkError, result: CameraSmartTrackingOpt) => void): void; CameraSetFaceDetection(deviceId: number, enable: boolean, callback: (error: YealinkError, result: void) => void): void; CameraIsFaceDetectionEnable(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; CameraIsInIdle(deviceId: number, callback: (error: YealinkError, result: boolean) => void): void; }