161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit ConnectivityKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ci/**
2261847f8eSopenharmony_ci * @typedef StartBLEScanOptions
2361847f8eSopenharmony_ci * @syscap SystemCapability.Communication.Bluetooth.Lite
2461847f8eSopenharmony_ci * @since 6
2561847f8eSopenharmony_ci */
2661847f8eSopenharmony_ciexport interface StartBLEScanOptions {
2761847f8eSopenharmony_ci  /**
2861847f8eSopenharmony_ci   * Time of delay for reporting the scan result
2961847f8eSopenharmony_ci   *
3061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
3161847f8eSopenharmony_ci   * @since 6
3261847f8eSopenharmony_ci   */
3361847f8eSopenharmony_ci  interval: number;
3461847f8eSopenharmony_ci  /**
3561847f8eSopenharmony_ci   * StartBLEScanOptions success
3661847f8eSopenharmony_ci   *
3761847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
3861847f8eSopenharmony_ci   * @since 6
3961847f8eSopenharmony_ci   */
4061847f8eSopenharmony_ci  success: () => void;
4161847f8eSopenharmony_ci  /**
4261847f8eSopenharmony_ci   * StartBLEScanOptions failed
4361847f8eSopenharmony_ci   *
4461847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
4561847f8eSopenharmony_ci   * @since 6
4661847f8eSopenharmony_ci   */
4761847f8eSopenharmony_ci  fail: (data: string, code: number) => void;
4861847f8eSopenharmony_ci  /**
4961847f8eSopenharmony_ci   * StartBLEScanOptions completed
5061847f8eSopenharmony_ci   *
5161847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
5261847f8eSopenharmony_ci   * @since 6
5361847f8eSopenharmony_ci   */
5461847f8eSopenharmony_ci  complete: () => void;
5561847f8eSopenharmony_ci}
5661847f8eSopenharmony_ci
5761847f8eSopenharmony_ci/**
5861847f8eSopenharmony_ci * @typedef StopBLEScanOptions
5961847f8eSopenharmony_ci * @syscap SystemCapability.Communication.Bluetooth.Lite
6061847f8eSopenharmony_ci * @since 6
6161847f8eSopenharmony_ci */
6261847f8eSopenharmony_ciexport interface StopBLEScanOptions {
6361847f8eSopenharmony_ci  /**
6461847f8eSopenharmony_ci   * StopBLEScanOptions success
6561847f8eSopenharmony_ci   *
6661847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
6761847f8eSopenharmony_ci   * @since 6
6861847f8eSopenharmony_ci   */
6961847f8eSopenharmony_ci  success: () => void;
7061847f8eSopenharmony_ci  /**
7161847f8eSopenharmony_ci   * StopBLEScanOptions failed
7261847f8eSopenharmony_ci   *
7361847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
7461847f8eSopenharmony_ci   * @since 6
7561847f8eSopenharmony_ci   */
7661847f8eSopenharmony_ci  fail: (data: string, code: number) => void;
7761847f8eSopenharmony_ci  /**
7861847f8eSopenharmony_ci   * StopBLEScanOptions completed
7961847f8eSopenharmony_ci   *
8061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
8161847f8eSopenharmony_ci   * @since 6
8261847f8eSopenharmony_ci   */
8361847f8eSopenharmony_ci  complete: () => void;
8461847f8eSopenharmony_ci}
8561847f8eSopenharmony_ci
8661847f8eSopenharmony_ci/**
8761847f8eSopenharmony_ci * @typedef BluetoothDevice
8861847f8eSopenharmony_ci * @syscap SystemCapability.Communication.Bluetooth.Lite
8961847f8eSopenharmony_ci * @since 6
9061847f8eSopenharmony_ci */
9161847f8eSopenharmony_ciexport interface BluetoothDevice {
9261847f8eSopenharmony_ci  /**
9361847f8eSopenharmony_ci   * The addrType of address, may be public or random
9461847f8eSopenharmony_ci   *
9561847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
9661847f8eSopenharmony_ci   * @since 6
9761847f8eSopenharmony_ci   */
9861847f8eSopenharmony_ci  addrType: 'public' | 'random';
9961847f8eSopenharmony_ci  /**
10061847f8eSopenharmony_ci   * Address of BluetoothDevice
10161847f8eSopenharmony_ci   *
10261847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
10361847f8eSopenharmony_ci   * @since 6
10461847f8eSopenharmony_ci   */
10561847f8eSopenharmony_ci  addr: string;
10661847f8eSopenharmony_ci  /**
10761847f8eSopenharmony_ci   * RSSI of the remote device
10861847f8eSopenharmony_ci   *
10961847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
11061847f8eSopenharmony_ci   * @since 6
11161847f8eSopenharmony_ci   */
11261847f8eSopenharmony_ci  rssi: number;
11361847f8eSopenharmony_ci  /**
11461847f8eSopenharmony_ci   * Transmission power level for advertising
11561847f8eSopenharmony_ci   *
11661847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
11761847f8eSopenharmony_ci   * @since 6
11861847f8eSopenharmony_ci   */
11961847f8eSopenharmony_ci  txpower: string;
12061847f8eSopenharmony_ci  /**
12161847f8eSopenharmony_ci   * The data of BluetoothDevice
12261847f8eSopenharmony_ci   *
12361847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
12461847f8eSopenharmony_ci   * @since 6
12561847f8eSopenharmony_ci   */
12661847f8eSopenharmony_ci  data: string;
12761847f8eSopenharmony_ci}
12861847f8eSopenharmony_ci
12961847f8eSopenharmony_ci/**
13061847f8eSopenharmony_ci * @typedef BLEFoundResponse
13161847f8eSopenharmony_ci * @syscap SystemCapability.Communication.Bluetooth.Lite
13261847f8eSopenharmony_ci * @since 6
13361847f8eSopenharmony_ci */
13461847f8eSopenharmony_ciexport interface BLEFoundResponse {
13561847f8eSopenharmony_ci  /**
13661847f8eSopenharmony_ci   * The devices of BLEFoundResponse
13761847f8eSopenharmony_ci   *
13861847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
13961847f8eSopenharmony_ci   * @since 6
14061847f8eSopenharmony_ci   */
14161847f8eSopenharmony_ci  devices: Array<BluetoothDevice>;
14261847f8eSopenharmony_ci}
14361847f8eSopenharmony_ci
14461847f8eSopenharmony_ci/**
14561847f8eSopenharmony_ci * @typedef SubscribeBLEFoundOptions
14661847f8eSopenharmony_ci * @syscap SystemCapability.Communication.Bluetooth.Lite
14761847f8eSopenharmony_ci * @since 6
14861847f8eSopenharmony_ci */
14961847f8eSopenharmony_ciexport interface SubscribeBLEFoundOptions {
15061847f8eSopenharmony_ci  /**
15161847f8eSopenharmony_ci   * SubscribeBLEFoundOptions success
15261847f8eSopenharmony_ci   *
15361847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
15461847f8eSopenharmony_ci   * @since 6
15561847f8eSopenharmony_ci   */
15661847f8eSopenharmony_ci  success: (data: BLEFoundResponse) => void;
15761847f8eSopenharmony_ci  /**
15861847f8eSopenharmony_ci   * SubscribeBLEFoundOptions failed
15961847f8eSopenharmony_ci   *
16061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
16161847f8eSopenharmony_ci   * @since 6
16261847f8eSopenharmony_ci   */
16361847f8eSopenharmony_ci  fail: (data: string, code: number) => void;
16461847f8eSopenharmony_ci}
16561847f8eSopenharmony_ci
16661847f8eSopenharmony_ci/**
16761847f8eSopenharmony_ci * Provides methods to manage BLE scan.
16861847f8eSopenharmony_ci *
16961847f8eSopenharmony_ci * @syscap SystemCapability.Communication.Bluetooth.Lite
17061847f8eSopenharmony_ci * @since 6
17161847f8eSopenharmony_ci */
17261847f8eSopenharmony_ciexport default class Bluetooth {
17361847f8eSopenharmony_ci  /**
17461847f8eSopenharmony_ci   * Start BLE scan
17561847f8eSopenharmony_ci   *
17661847f8eSopenharmony_ci   * @param { StartBLEScanOptions } options - Options
17761847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
17861847f8eSopenharmony_ci   * @since 6
17961847f8eSopenharmony_ci   */
18061847f8eSopenharmony_ci  static startBLEScan(options: StartBLEScanOptions): void;
18161847f8eSopenharmony_ci
18261847f8eSopenharmony_ci  /**
18361847f8eSopenharmony_ci   * Stop BLE scan
18461847f8eSopenharmony_ci   *
18561847f8eSopenharmony_ci   * @param { StopBLEScanOptions } options - Options
18661847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
18761847f8eSopenharmony_ci   * @since 6
18861847f8eSopenharmony_ci   */
18961847f8eSopenharmony_ci  static stopBLEScan(options: StopBLEScanOptions): void;
19061847f8eSopenharmony_ci
19161847f8eSopenharmony_ci  /**
19261847f8eSopenharmony_ci   * Subscribe BLE found
19361847f8eSopenharmony_ci   *
19461847f8eSopenharmony_ci   * @param { SubscribeBLEFoundOptions } options - Options
19561847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
19661847f8eSopenharmony_ci   * @since 6
19761847f8eSopenharmony_ci   */
19861847f8eSopenharmony_ci  static subscribeBLEFound(options: SubscribeBLEFoundOptions): void;
19961847f8eSopenharmony_ci
20061847f8eSopenharmony_ci  /**
20161847f8eSopenharmony_ci   * Stop the subscription of BLE found
20261847f8eSopenharmony_ci   *
20361847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.Bluetooth.Lite
20461847f8eSopenharmony_ci   * @since 6
20561847f8eSopenharmony_ci   */
20661847f8eSopenharmony_ci  static unsubscribeBLEFound(): void;
20761847f8eSopenharmony_ci}