declare const HARDWARE_CONNECT_PROTOCOL: { readonly V1: "V1"; readonly V2: "V2"; }; type HardwareConnectProtocol = (typeof HARDWARE_CONNECT_PROTOCOL)[keyof typeof HARDWARE_CONNECT_PROTOCOL]; declare const ONEKEY_WEBUSB_FILTER: { vendorId: number; productId: number; }[]; /** USB IDs whose first probe should be Protocol V2. Shared Pro/Touch PIDs stay unhinted. */ declare const ONEKEY_PROTOCOL_V2_USB_IDS: readonly [{ readonly vendorId: 4617; readonly productId: 20300; }]; type WebUsbIdentityDescriptor = { vendorId?: number; productId?: number; manufacturerName?: string | null; }; declare const isKnownTrezorWebUsbDevice: (descriptor: WebUsbIdentityDescriptor) => boolean; /** * Error codes that require device release after occurrence * These errors indicate the device is in an invalid state and needs to be released */ declare const ERROR_CODES_REQUIRE_RELEASE: readonly [106, 107, 109, 112, 805, 801, 802, 812]; /** * Error codes that require device disconnect before release * These errors indicate a communication failure that requires full reconnection */ declare const ERROR_CODES_REQUIRE_DISCONNECT: readonly [106, 805]; declare enum EOneKeyBleMessageKeys { BLE_SELECT = "$onekey-ble-select", BLE_SELECT_RESULT = "$onekey-ble-select-result", BLE_STOP_SCAN = "$onekey-ble-stop-scan", BLE_CANCEL_REQUEST = "$onekey-ble-cancel-request", BLE_PRE_SELECT = "$onekey-ble-pre-select", BLE_CLEAR_PRE_SELECT = "$onekey-ble-clear-pre-select", BLE_PAIRING_REQUEST = "$onekey-ble-pairing-request", BLE_PAIRING_RESPONSE = "$onekey-ble-pairing-response", BLE_ENUMERATE = "$onekey-ble-enumerate", BLE_ENUMERATE_RESULT = "$onekey-ble-enumerate-result", BLE_DEVICE_DISCONNECTED = "$onekey-ble-device-disconnected", BLE_AVAILABILITY_CHECK = "$onekey-ble-availability-check", NOBLE_BLE_ENUMERATE = "$onekey-noble-ble-enumerate", NOBLE_BLE_STOP_SCAN = "$onekey-noble-ble-stop-scan", NOBLE_BLE_GET_DEVICE = "$onekey-noble-ble-get-device", NOBLE_BLE_CONNECT = "$onekey-noble-ble-connect", NOBLE_BLE_RELEASE = "$onekey-noble-ble-release", NOBLE_BLE_DISCONNECT = "$onekey-noble-ble-disconnect", NOBLE_BLE_WRITE = "$onekey-noble-ble-write", NOBLE_BLE_SUBSCRIBE = "$onekey-noble-ble-subscribe", NOBLE_BLE_UNSUBSCRIBE = "$onekey-noble-ble-unsubscribe", NOBLE_BLE_NOTIFICATION = "$onekey-noble-ble-notification", NOBLE_BLE_MTU_CHANGED = "$onekey-noble-ble-mtu-changed", NOBLE_BLE_CANCEL_PAIRING = "$onekey-noble-ble-cancel-pairing" } /** * Why a BLE link went down, carried on BLE_DEVICE_DISCONNECTED. * * The main process frees an idle link on its own keep-alive timer, which is an * internal optimisation the device knows nothing about — consumers must not * treat it as "the device is gone". Only DeviceDisconnected means the * peripheral actually dropped. */ declare enum EBleDisconnectReason { /** Unsolicited peripheral drop: powered off, out of range, cable/BLE lost. */ DeviceDisconnected = "device-disconnected", /** Main-process keep-alive timer released an idle link; device still present. */ IdleKeepAlive = "idle-keep-alive" } declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb"; declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb"; declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb"; declare const isHeaderChunk: (chunk: Buffer | Uint8Array) => boolean; declare const isOnekeyDevice: (name: string | null, id?: string) => boolean; declare const inferProtocolHintFromUsbId: (vendorId?: number | null, productId?: number | null) => "V2" | undefined; type UsbDevicePathInput = { serialNumber?: string | null; vendorId?: number; productId?: number; productName?: string | null; }; declare const resolveOneKeyUsbDevicePath: (device: UsbDevicePathInput) => string | undefined; type BluetoothDeviceIdentity = { id?: string; name?: string | null; localName?: string | null; serviceUuids?: Array | null; }; declare const normalizeBleUuid: (uuid?: string | null) => string; declare const createKnownBleUuidAliases: (uuid: string) => ReadonlySet; declare const matchesKnownBleUuid: (actualUuid: string | null | undefined, aliases: ReadonlySet) => boolean; declare const isPro2FindMyAdvertisementName: (value?: string | null) => boolean; declare const normalizePro2FindMyAdvertisementName: (value: string) => string; /** * Current Pro2 advertisements use "Pro 2 XXXX". Older firmware used "Pro2 XXXX". * Discovery and DeviceInfo both go through this helper so the public BLE name * stays on the spaced form without changing OneKey Pro / Neo names. * * Match the compact Pro2 form first. A leading "Pro 2" regex would also eat the * first digit of a OneKey Pro suffix such as "Pro 22D8" or "Pro 2D8F". */ declare const canonicalizePro2BleAdvertisementName: (value: string) => string; declare const isSameOnekeyBleName: (left?: string | null, right?: string | null) => boolean; declare const hasOnekeyCommunicationService: (serviceUuids: Array | null | undefined) => boolean; /** * Protocol V2 family (Pro2 / Neo) by advertised BLE name. Callers use it to * pick a connection strategy: this family also advertises under Find My names * that carry no OneKey service UUID, so a scan cannot always see it. */ declare const isPro2FamilyBleName: (value?: string | null) => boolean; declare const isOnekeyBluetoothDevice: ({ id, name, localName, serviceUuids, }: BluetoothDeviceIdentity) => boolean; type Deferred = { id?: I; data?: D; promise: Promise; resolve: (t: T) => void; reject: (e: Error) => void; }; declare function createDeferred(arg?: I, data?: D): Deferred; declare enum EFirmwareType { Universal = "universal", BitcoinOnly = "bitcoinonly" } interface IHardwareError { errorCode: ValueOf; message?: string; params?: any; } type ValueOf

= P[keyof P]; type HardwareErrorCodeMessageMapping = { [P in ValueOf]: string; }; type ErrorCodeUnion = ValueOf; declare class HardwareError extends Error { errorCode: ErrorCodeUnion; message: string; params: any; constructor(hardwareError: IHardwareError | string); } declare const HardwareErrorCode: { /** * This error can be thrown when unexpected error occurred and in most cases it is related to implementation bug. * Original message is available in message property. */ readonly UnknownError: 0; /** * Firmware version mismatch */ readonly DeviceFwException: 101; /** * Device unexpected mode */ readonly DeviceUnexpectedMode: 102; /** * Device list is not initialized */ readonly DeviceListNotInitialized: 103; /** * Please select the connected device */ readonly SelectDevice: 104; /** * Device not found */ readonly DeviceNotFound: 105; /** * Device is not initialized */ readonly DeviceInitializeFailed: 106; /** * Device interrupted from another operation */ readonly DeviceInterruptedFromOutside: 107; /** * Device should be in bootloader mode */ readonly RequiredButInBootloaderMode: 108; /** * Device interrupted from user */ readonly DeviceInterruptedFromUser: 109; /** * Check device id is same */ readonly DeviceCheckDeviceIdError: 110; /** * Do not support passphrase * @params: { require: string } */ readonly DeviceNotSupportPassphrase: 111; readonly DeviceCheckPassphraseStateError: 112; /** * use passphrase, but passphrase is not opened */ readonly DeviceNotOpenedPassphrase: 113; /** * not use passphrase, but passphrase is opened */ readonly DeviceOpenedPassphrase: 114; /** * Detect hardware that is in bootloader mode and return an error. */ readonly DeviceDetectInBootloaderMode: 115; /** * Device not allow in bootloader mode */ readonly NotAllowInBootloaderMode: 116; /** * Device is busy */ readonly DeviceBusy: 117; /** * Device check unlock type not match error */ readonly DeviceCheckUnlockTypeError: 118; /** * Not initialized */ readonly NotInitialized: 200; /** * Iframe not initialized */ readonly IFrameNotInitialized: 300; /** * iframe repeat initialization */ readonly IFrameAleradyInitialized: 301; /** * iframe load failure */ readonly IFrameLoadFail: 302; /** * init iframe time out */ readonly IframeTimeout: 303; /** * iframe blocked */ readonly IframeBlocked: 304; /** * iframe host not trust */ readonly IframeDistrust: 305; /** * Runtime errors during method execution */ readonly CallMethodError: 400; /** * Method does not responding */ readonly CallMethodNotResponse: 404; /** * Call method invalid parameter */ readonly CallMethodInvalidParameter: 405; /** * firmware update download failed */ readonly FirmwareUpdateDownloadFailed: 406; /** * Call method not supported, need update firmware * @params: { current: string, require: string } */ readonly CallMethodNeedUpgradeFirmware: 407; /** * Call method not supported, is deprecated * @params: { current: string, deprecated: string } */ readonly CallMethodDeprecated: 408; /** * Only one device can be connected during firmware upgrade */ readonly FirmwareUpdateLimitOneDevice: 409; /** * You need to manually enter boot */ readonly FirmwareUpdateManuallyEnterBoot: 410; /** * Manual entry fails. You must manually enter the boot */ readonly FirmwareUpdateAutoEnterBootFailure: 411; /** * The new firmware has not been released yet */ readonly NewFirmwareUnRelease: 412; /** * use OneKey desktop client to update the firmware * because need copy resource file to Touch */ readonly UseDesktopToUpdateFirmware: 413; /** * Mandatory firmware update * @params:{ connectId: string? , deviceId: string? } */ readonly NewFirmwareForceUpdate: 414; /** * Device not support this method */ readonly DeviceNotSupportMethod: 415; /** * Forbidden key path */ readonly ForbiddenKeyPath: 416; /** * Repeat unlocking * all network get address by loop need repeat unlocking */ readonly RepeatUnlocking: 417; /** * Defective firmware detected */ readonly DefectiveFirmware: 418; /** * Netword request error */ readonly NetworkError: 500; /** * Transport not configured */ readonly TransportNotConfigured: 600; /** * Transport call in progress */ readonly TransportCallInProgress: 601; /** * Transport not found */ readonly TransportNotFound: 602; /** * Transport invalid protobuf */ readonly TransportInvalidProtobuf: 603; /** * Bluetooth error code */ readonly BleScanError: 700; readonly BlePermissionError: 701; readonly BleLocationError: 702; readonly BleRequiredUUID: 703; readonly BleConnectedError: 704; readonly BleDeviceNotBonded: 705; readonly BleServiceNotFound: 706; readonly BleCharacteristicNotFound: 707; readonly BleMonitorError: 708; readonly BleCharacteristicNotifyError: 709; readonly BleWriteCharacteristicError: 710; readonly BleAlreadyConnected: 711; readonly BleLocationServicesDisabled: 712; readonly BleTimeoutError: 713; readonly BleForceCleanRunPromise: 714; readonly BleDeviceBondError: 715; readonly BleCharacteristicNotifyChangeFailure: 716; readonly BleTransportCallCanceled: 717; readonly BleDeviceBondedCanceled: 718; readonly BlePeerRemovedPairingInformation: 719; readonly BleDeviceDisconnected: 720; readonly BlePoweredOff: 721; readonly BleUnsupported: 722; readonly BleUnavailableWhileUsbConnected: 723; /** * The host OS still has a stale BLE bond after the device pairing state was reset. * The user must forget the device in system Bluetooth settings and pair it again. */ readonly BleBondInvalid: 724; /** * Hardware runtiome errors */ readonly RuntimeError: 800; /** * invalid pin */ readonly PinInvalid: 801; /** * pin cancelled by user */ readonly PinCancelled: 802; /** * Action cancelled by user */ readonly ActionCancelled: 803; /** * Firmware installation failed */ readonly FirmwareError: 804; /** * transport response unexpect error */ readonly ResponseUnexpectTypeError: 805; /** * bridge network error */ readonly BridgeNetworkError: 806; /** * Bridge network timeout */ readonly BridgeTimeoutError: 807; /** * Bridge not installed */ readonly BridgeNotInstalled: 808; /** * ensure connect timeout */ readonly PollingTimeout: 809; /** * ensure connect stop polling */ readonly PollingStop: 810; /** * Device does not open blid sign */ readonly BlindSignDisabled: 811; readonly UnexpectPassphrase: 812; /** * NFT file already exists */ readonly FileAlreadyExists: 813; /** * check file length error */ readonly CheckDownloadFileError: 814; /** * not in signing mode */ readonly NotInSigningMode: 815; /** * not in signing mode */ readonly DataOverload: 816; /** * device disconnected during action */ readonly BridgeDeviceDisconnected: 817; /** * BTC PSBT too many utxos * @params:{ count: number } */ readonly BTCPsbtTooManyUtxos: 818; /** * EMMC file write firmware error */ readonly EmmcFileWriteFirmwareError: 819; /** * Firmware verification failed (e.g., bootloader file verify failed) */ readonly FirmwareVerificationFailed: 820; /** * Web bridge coonect needs permission */ readonly BridgeNeedsPermission: 821; readonly CallQueueActionCancelled: 822; /** * Firmware downgrade not allowed */ readonly FirmwareDowngradeNotAllowed: 823; /** * Cosmos invalid JSON message, Only support Amino msgs. */ readonly CosmosInvalidJsonMessage: 824; /** * No setting provided */ readonly DeviceSettingsNotProvided: 825; /** * Language not supported */ readonly DeviceSettingsLanguageNotSupport: 826; /** * Too many inputs * @params: { count?: string } */ readonly TooManyInputs: 827; /** * The two PIN entries did not match while setting/changing PIN on device */ readonly PinMismatch: 828; /** * Protocol V2 device must be unlocked before the requested operation. * @params: { failureCode?: string; subcode?: number; firmwareMessage?: string } */ readonly DeviceLocked: 830; /** * The cached wallet session is invalid or has expired. * @params: { failureCode?: string; subcode?: number; firmwareMessage?: string } */ readonly WalletSessionInvalid: 831; /** * Pro2 NFT storage has reached its item limit. * @params: { count: number; limit: number } */ readonly NftStorageLimitReached: 832; /** * Lowlevel transport connect error */ readonly LowlevelTrasnportConnectError: 900; /** * Web USB or Web Bluetooth device not found or needs permission */ readonly WebDeviceNotFoundOrNeedsPermission: 901; /** * Web USB or Web Bluetooth device prompt access error */ readonly WebDevicePromptAccessError: 902; }; declare const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping; declare const TypedError: (hardwareError: ErrorCodeUnion | string, message?: string, params?: any) => HardwareError; declare const isBleStaleBondHardwareError: (error: unknown) => boolean; declare const isBleStaleBondErrorText: (text: string) => boolean; declare const serializeError: (payload: any) => any; declare const CreateErrorByMessage: (message: string) => HardwareError; declare const CreateHardwareErrorByBridgeError: (raw: string) => HardwareError; declare const createNewFirmwareUnReleaseHardwareError: ({ currentVersion, requireVersion, methodName, firmwareType, }: { currentVersion: string; requireVersion: string; methodName?: string | undefined; firmwareType?: EFirmwareType | undefined; }) => HardwareError; declare const createNeedUpgradeFirmwareHardwareError: ({ currentVersion, requireVersion, methodName, firmwareType, }: { currentVersion: string; requireVersion: string; methodName?: string | undefined; firmwareType?: EFirmwareType | undefined; }) => HardwareError; declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined, versionTypes?: ('firmware' | 'ble')[], currentVersions?: { firmware?: string; ble?: string; }) => HardwareError; declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string, methodName?: string) => HardwareError; declare const createDefectiveFirmwareError: (serialNo: string, seVersion: string, deviceType: string, connectId?: string, deviceId?: string) => HardwareError; declare const createDeviceNotSupportMethodError: (methodName: string, firmwareType: EFirmwareType) => HardwareError; declare const HardwareError$1_createNewFirmwareUnReleaseHardwareError: typeof createNewFirmwareUnReleaseHardwareError; declare const HardwareError$1_createNeedUpgradeFirmwareHardwareError: typeof createNeedUpgradeFirmwareHardwareError; declare const HardwareError$1_createNewFirmwareForceUpdateHardwareError: typeof createNewFirmwareForceUpdateHardwareError; declare const HardwareError$1_createDeprecatedHardwareError: typeof createDeprecatedHardwareError; declare const HardwareError$1_createDefectiveFirmwareError: typeof createDefectiveFirmwareError; declare const HardwareError$1_createDeviceNotSupportMethodError: typeof createDeviceNotSupportMethodError; type HardwareError$1_IHardwareError = IHardwareError; type HardwareError$1_HardwareError = HardwareError; declare const HardwareError$1_HardwareError: typeof HardwareError; declare const HardwareError$1_HardwareErrorCode: typeof HardwareErrorCode; declare const HardwareError$1_HardwareErrorCodeMessage: typeof HardwareErrorCodeMessage; declare const HardwareError$1_TypedError: typeof TypedError; declare const HardwareError$1_isBleStaleBondHardwareError: typeof isBleStaleBondHardwareError; declare const HardwareError$1_isBleStaleBondErrorText: typeof isBleStaleBondErrorText; declare const HardwareError$1_serializeError: typeof serializeError; declare const HardwareError$1_CreateErrorByMessage: typeof CreateErrorByMessage; declare const HardwareError$1_CreateHardwareErrorByBridgeError: typeof CreateHardwareErrorByBridgeError; declare namespace HardwareError$1 { export { HardwareError$1_createNewFirmwareUnReleaseHardwareError as createNewFirmwareUnReleaseHardwareError, HardwareError$1_createNeedUpgradeFirmwareHardwareError as createNeedUpgradeFirmwareHardwareError, HardwareError$1_createNewFirmwareForceUpdateHardwareError as createNewFirmwareForceUpdateHardwareError, HardwareError$1_createDeprecatedHardwareError as createDeprecatedHardwareError, HardwareError$1_createDefectiveFirmwareError as createDefectiveFirmwareError, HardwareError$1_createDeviceNotSupportMethodError as createDeviceNotSupportMethodError, HardwareError$1_IHardwareError as IHardwareError, HardwareError$1_HardwareError as HardwareError, HardwareError$1_HardwareErrorCode as HardwareErrorCode, HardwareError$1_HardwareErrorCodeMessage as HardwareErrorCodeMessage, HardwareError$1_TypedError as TypedError, HardwareError$1_isBleStaleBondHardwareError as isBleStaleBondHardwareError, HardwareError$1_isBleStaleBondErrorText as isBleStaleBondErrorText, HardwareError$1_serializeError as serializeError, HardwareError$1_CreateErrorByMessage as CreateErrorByMessage, HardwareError$1_CreateHardwareErrorByBridgeError as CreateHardwareErrorByBridgeError, }; } declare const wait: (ms: number) => Promise; declare enum EDeviceType { Unknown = "unknown", Classic = "classic", Classic1s = "classic1s", ClassicPure = "classicpure", Mini = "mini", Touch = "touch", Pro = "pro", Pro2 = "pro2", Neo = "neo" } export { CreateErrorByMessage, CreateHardwareErrorByBridgeError, Deferred, EBleDisconnectReason, EDeviceType, EFirmwareType, EOneKeyBleMessageKeys, HardwareError$1 as ERRORS, ERROR_CODES_REQUIRE_DISCONNECT, ERROR_CODES_REQUIRE_RELEASE, HARDWARE_CONNECT_PROTOCOL, HardwareConnectProtocol, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_NOTIFY_CHARACTERISTIC_UUID, ONEKEY_PROTOCOL_V2_USB_IDS, ONEKEY_SERVICE_UUID, ONEKEY_WEBUSB_FILTER, ONEKEY_WRITE_CHARACTERISTIC_UUID, TypedError, canonicalizePro2BleAdvertisementName, createDefectiveFirmwareError, createDeferred, createDeprecatedHardwareError, createDeviceNotSupportMethodError, createKnownBleUuidAliases, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, hasOnekeyCommunicationService, inferProtocolHintFromUsbId, isBleStaleBondErrorText, isBleStaleBondHardwareError, isHeaderChunk, isKnownTrezorWebUsbDevice, isOnekeyBluetoothDevice, isOnekeyDevice, isPro2FamilyBleName, isPro2FindMyAdvertisementName, isSameOnekeyBleName, matchesKnownBleUuid, normalizeBleUuid, normalizePro2FindMyAdvertisementName, resolveOneKeyUsbDevicePath, serializeError, wait };