161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2021-2023 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 BasicServicesKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ci/**
2261847f8eSopenharmony_ci * @namespace usb
2361847f8eSopenharmony_ci * @syscap SystemCapability.USB.USBManager
2461847f8eSopenharmony_ci * @since 8
2561847f8eSopenharmony_ci * @deprecated since 9
2661847f8eSopenharmony_ci * @useinstead ohos.usbManager
2761847f8eSopenharmony_ci */
2861847f8eSopenharmony_cideclare namespace usb {
2961847f8eSopenharmony_ci  /**
3061847f8eSopenharmony_ci   * Obtains the USB device list.
3161847f8eSopenharmony_ci   *
3261847f8eSopenharmony_ci   * @returns { Array<Readonly<USBDevice>> } USB device list.
3361847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
3461847f8eSopenharmony_ci   * @since 8
3561847f8eSopenharmony_ci   * @deprecated since 9
3661847f8eSopenharmony_ci   */
3761847f8eSopenharmony_ci  function getDevices(): Array<Readonly<USBDevice>>;
3861847f8eSopenharmony_ci
3961847f8eSopenharmony_ci  /**
4061847f8eSopenharmony_ci   * Connects to the USB device based on the device information returned by getDevices().
4161847f8eSopenharmony_ci   *
4261847f8eSopenharmony_ci   * @param { USBDevice } device - USB device on the device list returned by getDevices().
4361847f8eSopenharmony_ci   * @returns { Readonly<USBDevicePipe> } object for data transfer.
4461847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
4561847f8eSopenharmony_ci   * @since 8
4661847f8eSopenharmony_ci   * @deprecated since 9
4761847f8eSopenharmony_ci   */
4861847f8eSopenharmony_ci  function connectDevice(device: USBDevice): Readonly<USBDevicePipe>;
4961847f8eSopenharmony_ci
5061847f8eSopenharmony_ci  /**
5161847f8eSopenharmony_ci   * Checks whether the application has the permission to access the device.
5261847f8eSopenharmony_ci   *
5361847f8eSopenharmony_ci   * @param { string } deviceName - device name defined by USBDevice.name.
5461847f8eSopenharmony_ci   * @returns { boolean } indicates if the user has the permission to access the device.
5561847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
5661847f8eSopenharmony_ci   * @since 8
5761847f8eSopenharmony_ci   * @deprecated since 9
5861847f8eSopenharmony_ci   */
5961847f8eSopenharmony_ci  function hasRight(deviceName: string): boolean;
6061847f8eSopenharmony_ci
6161847f8eSopenharmony_ci  /**
6261847f8eSopenharmony_ci   * Requests the temporary permission for a given application to access the USB device.
6361847f8eSopenharmony_ci   *
6461847f8eSopenharmony_ci   * @param { string } deviceName - device name defined by USBDevice.name.
6561847f8eSopenharmony_ci   * @returns { Promise<boolean> } indicates if the device access permissions are granted.
6661847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
6761847f8eSopenharmony_ci   * @since 8
6861847f8eSopenharmony_ci   * @deprecated since 9
6961847f8eSopenharmony_ci   */
7061847f8eSopenharmony_ci  function requestRight(deviceName: string): Promise<boolean>;
7161847f8eSopenharmony_ci
7261847f8eSopenharmony_ci  /**
7361847f8eSopenharmony_ci   * Converts the string descriptor of a given USB function list to a numeric mask combination.
7461847f8eSopenharmony_ci   *
7561847f8eSopenharmony_ci   * @param { string } funcs - descriptor of the supported function list.
7661847f8eSopenharmony_ci   * @returns { number } the numeric mask combination of the function list.
7761847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
7861847f8eSopenharmony_ci   * @systemapi
7961847f8eSopenharmony_ci   * @since 9
8061847f8eSopenharmony_ci   * @deprecated since 9
8161847f8eSopenharmony_ci   */
8261847f8eSopenharmony_ci  function usbFunctionsFromString(funcs: string): number;
8361847f8eSopenharmony_ci
8461847f8eSopenharmony_ci  /**
8561847f8eSopenharmony_ci   * Converts the numeric mask combination of a given USB function list to a string descriptor.
8661847f8eSopenharmony_ci   *
8761847f8eSopenharmony_ci   * @param { FunctionType } funcs - numeric mask combination of the function list.
8861847f8eSopenharmony_ci   * @returns { string } - descriptor of the supported function list.
8961847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
9061847f8eSopenharmony_ci   * @systemapi
9161847f8eSopenharmony_ci   * @since 9
9261847f8eSopenharmony_ci   * @deprecated since 9
9361847f8eSopenharmony_ci   */
9461847f8eSopenharmony_ci  function usbFunctionsToString(funcs: FunctionType): string;
9561847f8eSopenharmony_ci
9661847f8eSopenharmony_ci  /**
9761847f8eSopenharmony_ci   * Sets the current USB function list in Device mode.
9861847f8eSopenharmony_ci   *
9961847f8eSopenharmony_ci   * @param { FunctionType } funcs - numeric mask combination of the supported function list.
10061847f8eSopenharmony_ci   * @returns { Promise<boolean> } returns **true** if the setting is successful; returns **false** otherwise.
10161847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
10261847f8eSopenharmony_ci   * @systemapi
10361847f8eSopenharmony_ci   * @since 9
10461847f8eSopenharmony_ci   * @deprecated since 9
10561847f8eSopenharmony_ci   */
10661847f8eSopenharmony_ci  function setCurrentFunctions(funcs: FunctionType): Promise<boolean>;
10761847f8eSopenharmony_ci
10861847f8eSopenharmony_ci  /**
10961847f8eSopenharmony_ci   * Obtains the numeric mask combination for the current USB function list in Device mode.
11061847f8eSopenharmony_ci   *
11161847f8eSopenharmony_ci   * @returns { FunctionType } the numeric mask combination for the current USB function list in FunctionType.
11261847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
11361847f8eSopenharmony_ci   * @systemapi
11461847f8eSopenharmony_ci   * @since 9
11561847f8eSopenharmony_ci   * @deprecated since 9
11661847f8eSopenharmony_ci   */
11761847f8eSopenharmony_ci  function getCurrentFunctions(): FunctionType;
11861847f8eSopenharmony_ci
11961847f8eSopenharmony_ci  /**
12061847f8eSopenharmony_ci   * Obtains the USBPort list.
12161847f8eSopenharmony_ci   *
12261847f8eSopenharmony_ci   * @returns { Array<USBPort> } the USBPort list.
12361847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
12461847f8eSopenharmony_ci   * @systemapi
12561847f8eSopenharmony_ci   * @since 9
12661847f8eSopenharmony_ci   * @deprecated since 9
12761847f8eSopenharmony_ci   */
12861847f8eSopenharmony_ci  function getPorts(): Array<USBPort>;
12961847f8eSopenharmony_ci
13061847f8eSopenharmony_ci  /**
13161847f8eSopenharmony_ci   * Gets the mask combination for the supported mode list of the specified USBPort.
13261847f8eSopenharmony_ci   *
13361847f8eSopenharmony_ci   * @param { number } portId
13461847f8eSopenharmony_ci   * @returns { PortModeType } the mask combination for the supported mode list in PortModeType.
13561847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
13661847f8eSopenharmony_ci   * @systemapi
13761847f8eSopenharmony_ci   * @since 9
13861847f8eSopenharmony_ci   * @deprecated since 9
13961847f8eSopenharmony_ci   */
14061847f8eSopenharmony_ci  function getSupportedModes(portId: number): PortModeType;
14161847f8eSopenharmony_ci
14261847f8eSopenharmony_ci  /**
14361847f8eSopenharmony_ci   * Sets the role types supported by the specified USBPort, which can be powerRole (for charging) and dataRole (for data transfer).
14461847f8eSopenharmony_ci   *
14561847f8eSopenharmony_ci   * @param { number } portId - unique ID of the port.
14661847f8eSopenharmony_ci   * @param { PowerRoleType } powerRole - charging role.
14761847f8eSopenharmony_ci   * @param { DataRoleType } dataRole - data role.
14861847f8eSopenharmony_ci   * @returns { Promise<boolean> } returns **true** if the setting is successful; returns **false** otherwise.
14961847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
15061847f8eSopenharmony_ci   * @systemapi
15161847f8eSopenharmony_ci   * @since 9
15261847f8eSopenharmony_ci   * @deprecated since 9
15361847f8eSopenharmony_ci   */
15461847f8eSopenharmony_ci  function setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise<boolean>;
15561847f8eSopenharmony_ci
15661847f8eSopenharmony_ci  /* usb pipe functions begin */
15761847f8eSopenharmony_ci  /**
15861847f8eSopenharmony_ci   * Claims a USB interface.
15961847f8eSopenharmony_ci   *
16061847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the bus number and device address.
16161847f8eSopenharmony_ci   * @param { USBInterface } iface - USB interface , which is used to determine the interface to claim.
16261847f8eSopenharmony_ci   * @param { boolean } [force] - optional parameter that determines whether to forcibly claim the USB interface.
16361847f8eSopenharmony_ci   * @returns { number } returns **0** if the USB interface is successfully claimed; returns an error code otherwise.
16461847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
16561847f8eSopenharmony_ci   * @since 8
16661847f8eSopenharmony_ci   * @deprecated since 9
16761847f8eSopenharmony_ci   */
16861847f8eSopenharmony_ci  function claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number;
16961847f8eSopenharmony_ci
17061847f8eSopenharmony_ci  /**
17161847f8eSopenharmony_ci   * Releases a USB interface.
17261847f8eSopenharmony_ci   *
17361847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the bus number and device address.
17461847f8eSopenharmony_ci   * @param { USBInterface } iface - USB interface , which is used to determine the interface to release.
17561847f8eSopenharmony_ci   * @returns { number } returns **0** if the USB interface is successfully released; returns an error code otherwise.
17661847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
17761847f8eSopenharmony_ci   * @since 8
17861847f8eSopenharmony_ci   * @deprecated since 9
17961847f8eSopenharmony_ci   */
18061847f8eSopenharmony_ci  function releaseInterface(pipe: USBDevicePipe, iface: USBInterface): number;
18161847f8eSopenharmony_ci
18261847f8eSopenharmony_ci  /**
18361847f8eSopenharmony_ci   * Sets the device configuration.
18461847f8eSopenharmony_ci   *
18561847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the bus number and device address.
18661847f8eSopenharmony_ci   * @param { USBConfig } config - device configuration.
18761847f8eSopenharmony_ci   * @returns { number } returns **0** if the device configuration is successfully set; returns an error code otherwise.
18861847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
18961847f8eSopenharmony_ci   * @since 8
19061847f8eSopenharmony_ci   * @deprecated since 9
19161847f8eSopenharmony_ci   */
19261847f8eSopenharmony_ci  function setConfiguration(pipe: USBDevicePipe, config: USBConfig): number;
19361847f8eSopenharmony_ci
19461847f8eSopenharmony_ci  /**
19561847f8eSopenharmony_ci   * Sets a USB interface.
19661847f8eSopenharmony_ci   *
19761847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the bus number and device address.
19861847f8eSopenharmony_ci   * @param { USBInterface } iface - USB interface , which is used to determine the interface to set.
19961847f8eSopenharmony_ci   * @returns { number } returns **0** if the USB interface is successfully set; return an error code otherwise.
20061847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
20161847f8eSopenharmony_ci   * @since 8
20261847f8eSopenharmony_ci   * @deprecated since 9
20361847f8eSopenharmony_ci   */
20461847f8eSopenharmony_ci  function setInterface(pipe: USBDevicePipe, iface: USBInterface): number;
20561847f8eSopenharmony_ci
20661847f8eSopenharmony_ci  /**
20761847f8eSopenharmony_ci   * Obtains the raw USB descriptor.
20861847f8eSopenharmony_ci   *
20961847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the bus number and device address.
21061847f8eSopenharmony_ci   * @returns { Uint8Array } returns the raw descriptor data.
21161847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
21261847f8eSopenharmony_ci   * @since 8
21361847f8eSopenharmony_ci   * @deprecated since 9
21461847f8eSopenharmony_ci   */
21561847f8eSopenharmony_ci  function getRawDescriptor(pipe: USBDevicePipe): Uint8Array;
21661847f8eSopenharmony_ci
21761847f8eSopenharmony_ci  /**
21861847f8eSopenharmony_ci   * Obtains the file descriptor.
21961847f8eSopenharmony_ci   *
22061847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the USB device.
22161847f8eSopenharmony_ci   * @returns { number } returns the file descriptor of the USB device.
22261847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
22361847f8eSopenharmony_ci   * @since 8
22461847f8eSopenharmony_ci   * @deprecated since 9
22561847f8eSopenharmony_ci   */
22661847f8eSopenharmony_ci  function getFileDescriptor(pipe: USBDevicePipe): number;
22761847f8eSopenharmony_ci
22861847f8eSopenharmony_ci  /**
22961847f8eSopenharmony_ci   * Performs control transfer.
23061847f8eSopenharmony_ci   *
23161847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the USB device.
23261847f8eSopenharmony_ci   * @param { USBControlParams } controlparam - control transfer parameters.
23361847f8eSopenharmony_ci   * @param { number } [timeout] - timeout duration. This parameter is optional. The default value is **0**, indicating no timeout.
23461847f8eSopenharmony_ci   * @returns { Promise<number> } returns the size of the transmitted or received data block if the control transfer is successful;
23561847f8eSopenharmony_ci   * return -1 if an exception occurs.
23661847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
23761847f8eSopenharmony_ci   * @since 8
23861847f8eSopenharmony_ci   * @deprecated since 9
23961847f8eSopenharmony_ci   */
24061847f8eSopenharmony_ci  function controlTransfer(pipe: USBDevicePipe, controlparam: USBControlParams, timeout?: number): Promise<number>;
24161847f8eSopenharmony_ci
24261847f8eSopenharmony_ci  /**
24361847f8eSopenharmony_ci   * Performs bulk transfer.
24461847f8eSopenharmony_ci   *
24561847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the USB device.
24661847f8eSopenharmony_ci   * @param { USBEndpoint } endpoint - USB endpoint, which is used to determine the USB port for data transfer.
24761847f8eSopenharmony_ci   * @param { Uint8Array } buffer - buffer for writing or reading data.
24861847f8eSopenharmony_ci   * @param { number } [timeout] - timeout duration. This parameter is optional. The default value is **0**, indicating no timeout.
24961847f8eSopenharmony_ci   * @returns { Promise<number> } the size of the transmitted or received data block if the control transfer is successful;
25061847f8eSopenharmony_ci   * return -1 if an exception occurs.
25161847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
25261847f8eSopenharmony_ci   * @since 8
25361847f8eSopenharmony_ci   * @deprecated since 9
25461847f8eSopenharmony_ci   */
25561847f8eSopenharmony_ci  function bulkTransfer(
25661847f8eSopenharmony_ci    pipe: USBDevicePipe,
25761847f8eSopenharmony_ci    endpoint: USBEndpoint,
25861847f8eSopenharmony_ci    buffer: Uint8Array,
25961847f8eSopenharmony_ci    timeout?: number
26061847f8eSopenharmony_ci  ): Promise<number>;
26161847f8eSopenharmony_ci
26261847f8eSopenharmony_ci  /**
26361847f8eSopenharmony_ci   * Closes a USB device pipe.
26461847f8eSopenharmony_ci   *
26561847f8eSopenharmony_ci   * @param { USBDevicePipe } pipe - device pipe , which is used to determine the USB device.
26661847f8eSopenharmony_ci   * @returns { number } returns **0** if the USB device pipe is closed successfully; return an error code otherwise.
26761847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
26861847f8eSopenharmony_ci   * @since 8
26961847f8eSopenharmony_ci   * @deprecated since 9
27061847f8eSopenharmony_ci   */
27161847f8eSopenharmony_ci  function closePipe(pipe: USBDevicePipe): number;
27261847f8eSopenharmony_ci
27361847f8eSopenharmony_ci  /**
27461847f8eSopenharmony_ci   * Represents the USB endpoint from which data is sent or received. You can obtain the USB endpoint through USBInterface.
27561847f8eSopenharmony_ci   *
27661847f8eSopenharmony_ci   * @typedef USBEndpoint
27761847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
27861847f8eSopenharmony_ci   * @since 8
27961847f8eSopenharmony_ci   * @deprecated since 9
28061847f8eSopenharmony_ci   */
28161847f8eSopenharmony_ci  interface USBEndpoint {
28261847f8eSopenharmony_ci    /**
28361847f8eSopenharmony_ci     * Endpoint address
28461847f8eSopenharmony_ci     *
28561847f8eSopenharmony_ci     * @type { number }
28661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
28761847f8eSopenharmony_ci     * @since 8
28861847f8eSopenharmony_ci     * @deprecated since 9
28961847f8eSopenharmony_ci     */
29061847f8eSopenharmony_ci    address: number;
29161847f8eSopenharmony_ci
29261847f8eSopenharmony_ci    /**
29361847f8eSopenharmony_ci     * Endpoint attributes
29461847f8eSopenharmony_ci     *
29561847f8eSopenharmony_ci     * @type { number }
29661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
29761847f8eSopenharmony_ci     * @since 8
29861847f8eSopenharmony_ci     * @deprecated since 9
29961847f8eSopenharmony_ci     */
30061847f8eSopenharmony_ci    attributes: number;
30161847f8eSopenharmony_ci
30261847f8eSopenharmony_ci    /**
30361847f8eSopenharmony_ci     * Endpoint interval
30461847f8eSopenharmony_ci     *
30561847f8eSopenharmony_ci     * @type { number }
30661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
30761847f8eSopenharmony_ci     * @since 8
30861847f8eSopenharmony_ci     * @deprecated since 9
30961847f8eSopenharmony_ci     */
31061847f8eSopenharmony_ci    interval: number;
31161847f8eSopenharmony_ci
31261847f8eSopenharmony_ci    /**
31361847f8eSopenharmony_ci     * Maximum size of data packets on the endpoint
31461847f8eSopenharmony_ci     *
31561847f8eSopenharmony_ci     * @type { number }
31661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
31761847f8eSopenharmony_ci     * @since 8
31861847f8eSopenharmony_ci     * @deprecated since 9
31961847f8eSopenharmony_ci     */
32061847f8eSopenharmony_ci    maxPacketSize: number;
32161847f8eSopenharmony_ci
32261847f8eSopenharmony_ci    /**
32361847f8eSopenharmony_ci     * Endpoint direction
32461847f8eSopenharmony_ci     *
32561847f8eSopenharmony_ci     * @type { USBRequestDirection }
32661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
32761847f8eSopenharmony_ci     * @since 8
32861847f8eSopenharmony_ci     * @deprecated since 9
32961847f8eSopenharmony_ci     */
33061847f8eSopenharmony_ci    direction: USBRequestDirection;
33161847f8eSopenharmony_ci
33261847f8eSopenharmony_ci    /**
33361847f8eSopenharmony_ci     * Endpoint number
33461847f8eSopenharmony_ci     *
33561847f8eSopenharmony_ci     * @type { number }
33661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
33761847f8eSopenharmony_ci     * @since 8
33861847f8eSopenharmony_ci     * @deprecated since 9
33961847f8eSopenharmony_ci     */
34061847f8eSopenharmony_ci    number: number;
34161847f8eSopenharmony_ci
34261847f8eSopenharmony_ci    /**
34361847f8eSopenharmony_ci     * Endpoint type
34461847f8eSopenharmony_ci     *
34561847f8eSopenharmony_ci     * @type { number }
34661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
34761847f8eSopenharmony_ci     * @since 8
34861847f8eSopenharmony_ci     * @deprecated since 9
34961847f8eSopenharmony_ci     */
35061847f8eSopenharmony_ci    type: number;
35161847f8eSopenharmony_ci
35261847f8eSopenharmony_ci    /**
35361847f8eSopenharmony_ci     * Unique ID defined by {@link USBInterface.id}, which indicates the interface to which the endpoint belongs
35461847f8eSopenharmony_ci     *
35561847f8eSopenharmony_ci     * @type { number }
35661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
35761847f8eSopenharmony_ci     * @since 8
35861847f8eSopenharmony_ci     * @deprecated since 9
35961847f8eSopenharmony_ci     */
36061847f8eSopenharmony_ci    interfaceId: number;
36161847f8eSopenharmony_ci  }
36261847f8eSopenharmony_ci
36361847f8eSopenharmony_ci  /**
36461847f8eSopenharmony_ci   * Represents a USB interface. One config can contain multiple **USBInterface** instances, each providing a specific function.
36561847f8eSopenharmony_ci   *
36661847f8eSopenharmony_ci   * @typedef USBInterface
36761847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
36861847f8eSopenharmony_ci   * @since 8
36961847f8eSopenharmony_ci   * @deprecated since 9
37061847f8eSopenharmony_ci   */
37161847f8eSopenharmony_ci  interface USBInterface {
37261847f8eSopenharmony_ci    /**
37361847f8eSopenharmony_ci     * Unique ID of the USB interface
37461847f8eSopenharmony_ci     *
37561847f8eSopenharmony_ci     * @type { number }
37661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
37761847f8eSopenharmony_ci     * @since 8
37861847f8eSopenharmony_ci     * @deprecated since 9
37961847f8eSopenharmony_ci     */
38061847f8eSopenharmony_ci    id: number;
38161847f8eSopenharmony_ci
38261847f8eSopenharmony_ci    /**
38361847f8eSopenharmony_ci     * Interface protocol
38461847f8eSopenharmony_ci     *
38561847f8eSopenharmony_ci     * @type { number }
38661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
38761847f8eSopenharmony_ci     * @since 8
38861847f8eSopenharmony_ci     * @deprecated since 9
38961847f8eSopenharmony_ci     */
39061847f8eSopenharmony_ci    protocol: number;
39161847f8eSopenharmony_ci
39261847f8eSopenharmony_ci    /**
39361847f8eSopenharmony_ci     * Device type
39461847f8eSopenharmony_ci     *
39561847f8eSopenharmony_ci     * @type { number }
39661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
39761847f8eSopenharmony_ci     * @since 8
39861847f8eSopenharmony_ci     * @deprecated since 9
39961847f8eSopenharmony_ci     */
40061847f8eSopenharmony_ci    clazz: number;
40161847f8eSopenharmony_ci
40261847f8eSopenharmony_ci    /**
40361847f8eSopenharmony_ci     * Device subclass
40461847f8eSopenharmony_ci     *
40561847f8eSopenharmony_ci     * @type { number }
40661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
40761847f8eSopenharmony_ci     * @since 8
40861847f8eSopenharmony_ci     * @deprecated since 9
40961847f8eSopenharmony_ci     */
41061847f8eSopenharmony_ci    subClass: number;
41161847f8eSopenharmony_ci
41261847f8eSopenharmony_ci    /**
41361847f8eSopenharmony_ci     * Alternation between descriptors of the same USB interface
41461847f8eSopenharmony_ci     *
41561847f8eSopenharmony_ci     * @type { number }
41661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
41761847f8eSopenharmony_ci     * @since 8
41861847f8eSopenharmony_ci     * @deprecated since 9
41961847f8eSopenharmony_ci     */
42061847f8eSopenharmony_ci    alternateSetting: number;
42161847f8eSopenharmony_ci
42261847f8eSopenharmony_ci    /**
42361847f8eSopenharmony_ci     * Interface name
42461847f8eSopenharmony_ci     *
42561847f8eSopenharmony_ci     * @type { string }
42661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
42761847f8eSopenharmony_ci     * @since 8
42861847f8eSopenharmony_ci     * @deprecated since 9
42961847f8eSopenharmony_ci     */
43061847f8eSopenharmony_ci    name: string;
43161847f8eSopenharmony_ci
43261847f8eSopenharmony_ci    /**
43361847f8eSopenharmony_ci     * USBEndpoint that belongs to the USB interface
43461847f8eSopenharmony_ci     *
43561847f8eSopenharmony_ci     * @type { Array<USBEndpoint> }
43661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
43761847f8eSopenharmony_ci     * @since 8
43861847f8eSopenharmony_ci     * @deprecated since 9
43961847f8eSopenharmony_ci     */
44061847f8eSopenharmony_ci    endpoints: Array<USBEndpoint>;
44161847f8eSopenharmony_ci  }
44261847f8eSopenharmony_ci
44361847f8eSopenharmony_ci  /**
44461847f8eSopenharmony_ci   * USB configuration. One USBDevice can contain multiple USBConfig instances.
44561847f8eSopenharmony_ci   *
44661847f8eSopenharmony_ci   * @typedef USBConfig
44761847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
44861847f8eSopenharmony_ci   * @since 8
44961847f8eSopenharmony_ci   * @deprecated since 9
45061847f8eSopenharmony_ci   */
45161847f8eSopenharmony_ci  interface USBConfig {
45261847f8eSopenharmony_ci    /**
45361847f8eSopenharmony_ci     * Unique ID of the USB configuration
45461847f8eSopenharmony_ci     *
45561847f8eSopenharmony_ci     * @type { number }
45661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
45761847f8eSopenharmony_ci     * @since 8
45861847f8eSopenharmony_ci     * @deprecated since 9
45961847f8eSopenharmony_ci     */
46061847f8eSopenharmony_ci    id: number;
46161847f8eSopenharmony_ci
46261847f8eSopenharmony_ci    /**
46361847f8eSopenharmony_ci     * Configuration attributes
46461847f8eSopenharmony_ci     *
46561847f8eSopenharmony_ci     * @type { number }
46661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
46761847f8eSopenharmony_ci     * @since 8
46861847f8eSopenharmony_ci     * @deprecated since 9
46961847f8eSopenharmony_ci     */
47061847f8eSopenharmony_ci    attributes: number;
47161847f8eSopenharmony_ci
47261847f8eSopenharmony_ci    /**
47361847f8eSopenharmony_ci     * Maximum power consumption, in mA
47461847f8eSopenharmony_ci     *
47561847f8eSopenharmony_ci     * @type { number }
47661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
47761847f8eSopenharmony_ci     * @since 8
47861847f8eSopenharmony_ci     * @deprecated since 9
47961847f8eSopenharmony_ci     */
48061847f8eSopenharmony_ci    maxPower: number;
48161847f8eSopenharmony_ci
48261847f8eSopenharmony_ci    /**
48361847f8eSopenharmony_ci     * Configuration name, which can be left empty
48461847f8eSopenharmony_ci     *
48561847f8eSopenharmony_ci     * @type { string }
48661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
48761847f8eSopenharmony_ci     * @since 8
48861847f8eSopenharmony_ci     * @deprecated since 9
48961847f8eSopenharmony_ci     */
49061847f8eSopenharmony_ci    name: string;
49161847f8eSopenharmony_ci
49261847f8eSopenharmony_ci    /**
49361847f8eSopenharmony_ci     * Support for remote wakeup
49461847f8eSopenharmony_ci     *
49561847f8eSopenharmony_ci     * @type { boolean }
49661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
49761847f8eSopenharmony_ci     * @since 8
49861847f8eSopenharmony_ci     * @deprecated since 9
49961847f8eSopenharmony_ci     */
50061847f8eSopenharmony_ci    isRemoteWakeup: boolean;
50161847f8eSopenharmony_ci
50261847f8eSopenharmony_ci    /**
50361847f8eSopenharmony_ci     * Support for independent power supplies
50461847f8eSopenharmony_ci     *
50561847f8eSopenharmony_ci     * @type { boolean }
50661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
50761847f8eSopenharmony_ci     * @since 8
50861847f8eSopenharmony_ci     * @deprecated since 9
50961847f8eSopenharmony_ci     */
51061847f8eSopenharmony_ci    isSelfPowered: boolean;
51161847f8eSopenharmony_ci
51261847f8eSopenharmony_ci    /**
51361847f8eSopenharmony_ci     * Supported interface
51461847f8eSopenharmony_ci     *
51561847f8eSopenharmony_ci     * @type { Array<USBInterface> }
51661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
51761847f8eSopenharmony_ci     * @since 8
51861847f8eSopenharmony_ci     * @deprecated since 9
51961847f8eSopenharmony_ci     */
52061847f8eSopenharmony_ci    interfaces: Array<USBInterface>;
52161847f8eSopenharmony_ci  }
52261847f8eSopenharmony_ci
52361847f8eSopenharmony_ci  /**
52461847f8eSopenharmony_ci   * Represents a USB device.
52561847f8eSopenharmony_ci   *
52661847f8eSopenharmony_ci   * @typedef USBDevice
52761847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
52861847f8eSopenharmony_ci   * @since 8
52961847f8eSopenharmony_ci   * @deprecated since 9
53061847f8eSopenharmony_ci   */
53161847f8eSopenharmony_ci  interface USBDevice {
53261847f8eSopenharmony_ci    /**
53361847f8eSopenharmony_ci     * Bus address
53461847f8eSopenharmony_ci     *
53561847f8eSopenharmony_ci     * @type { number }
53661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
53761847f8eSopenharmony_ci     * @since 8
53861847f8eSopenharmony_ci     * @deprecated since 9
53961847f8eSopenharmony_ci     */
54061847f8eSopenharmony_ci    busNum: number;
54161847f8eSopenharmony_ci
54261847f8eSopenharmony_ci    /**
54361847f8eSopenharmony_ci     * Device address
54461847f8eSopenharmony_ci     *
54561847f8eSopenharmony_ci     * @type { number }
54661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
54761847f8eSopenharmony_ci     * @since 8
54861847f8eSopenharmony_ci     * @deprecated since 9
54961847f8eSopenharmony_ci     */
55061847f8eSopenharmony_ci    devAddress: number;
55161847f8eSopenharmony_ci
55261847f8eSopenharmony_ci    /**
55361847f8eSopenharmony_ci     * Device SN
55461847f8eSopenharmony_ci     *
55561847f8eSopenharmony_ci     * @type { string }
55661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
55761847f8eSopenharmony_ci     * @since 8
55861847f8eSopenharmony_ci     * @deprecated since 9
55961847f8eSopenharmony_ci     */
56061847f8eSopenharmony_ci    serial: string;
56161847f8eSopenharmony_ci
56261847f8eSopenharmony_ci    /**
56361847f8eSopenharmony_ci     * Device name
56461847f8eSopenharmony_ci     *
56561847f8eSopenharmony_ci     * @type { string }
56661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
56761847f8eSopenharmony_ci     * @since 8
56861847f8eSopenharmony_ci     * @deprecated since 9
56961847f8eSopenharmony_ci     */
57061847f8eSopenharmony_ci    name: string;
57161847f8eSopenharmony_ci
57261847f8eSopenharmony_ci    /**
57361847f8eSopenharmony_ci     * Device manufacturer
57461847f8eSopenharmony_ci     *
57561847f8eSopenharmony_ci     * @type { string }
57661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
57761847f8eSopenharmony_ci     * @since 8
57861847f8eSopenharmony_ci     * @deprecated since 9
57961847f8eSopenharmony_ci     */
58061847f8eSopenharmony_ci    manufacturerName: string;
58161847f8eSopenharmony_ci
58261847f8eSopenharmony_ci    /**
58361847f8eSopenharmony_ci     * Product information
58461847f8eSopenharmony_ci     *
58561847f8eSopenharmony_ci     * @type { string }
58661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
58761847f8eSopenharmony_ci     * @since 8
58861847f8eSopenharmony_ci     * @deprecated since 9
58961847f8eSopenharmony_ci     */
59061847f8eSopenharmony_ci    productName: string;
59161847f8eSopenharmony_ci
59261847f8eSopenharmony_ci    /**
59361847f8eSopenharmony_ci     * Product version
59461847f8eSopenharmony_ci     *
59561847f8eSopenharmony_ci     * @type { string }
59661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
59761847f8eSopenharmony_ci     * @since 8
59861847f8eSopenharmony_ci     * @deprecated since 9
59961847f8eSopenharmony_ci     */
60061847f8eSopenharmony_ci    version: string;
60161847f8eSopenharmony_ci
60261847f8eSopenharmony_ci    /**
60361847f8eSopenharmony_ci     * Vendor ID
60461847f8eSopenharmony_ci     *
60561847f8eSopenharmony_ci     * @type { number }
60661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
60761847f8eSopenharmony_ci     * @since 8
60861847f8eSopenharmony_ci     * @deprecated since 9
60961847f8eSopenharmony_ci     */
61061847f8eSopenharmony_ci    vendorId: number;
61161847f8eSopenharmony_ci
61261847f8eSopenharmony_ci    /**
61361847f8eSopenharmony_ci     * Product ID
61461847f8eSopenharmony_ci     *
61561847f8eSopenharmony_ci     * @type { number }
61661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
61761847f8eSopenharmony_ci     * @since 8
61861847f8eSopenharmony_ci     * @deprecated since 9
61961847f8eSopenharmony_ci     */
62061847f8eSopenharmony_ci    productId: number;
62161847f8eSopenharmony_ci
62261847f8eSopenharmony_ci    /**
62361847f8eSopenharmony_ci     * Device class
62461847f8eSopenharmony_ci     *
62561847f8eSopenharmony_ci     * @type { number }
62661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
62761847f8eSopenharmony_ci     * @since 8
62861847f8eSopenharmony_ci     * @deprecated since 9
62961847f8eSopenharmony_ci     */
63061847f8eSopenharmony_ci    clazz: number;
63161847f8eSopenharmony_ci
63261847f8eSopenharmony_ci    /**
63361847f8eSopenharmony_ci     * Device subclass
63461847f8eSopenharmony_ci     *
63561847f8eSopenharmony_ci     * @type { number }
63661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
63761847f8eSopenharmony_ci     * @since 8
63861847f8eSopenharmony_ci     * @deprecated since 9
63961847f8eSopenharmony_ci     */
64061847f8eSopenharmony_ci    subClass: number;
64161847f8eSopenharmony_ci
64261847f8eSopenharmony_ci    /**
64361847f8eSopenharmony_ci     * Device protocol code
64461847f8eSopenharmony_ci     *
64561847f8eSopenharmony_ci     * @type { number }
64661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
64761847f8eSopenharmony_ci     * @since 8
64861847f8eSopenharmony_ci     * @deprecated since 9
64961847f8eSopenharmony_ci     */
65061847f8eSopenharmony_ci    protocol: number;
65161847f8eSopenharmony_ci
65261847f8eSopenharmony_ci    /**
65361847f8eSopenharmony_ci     * Device configuration descriptor information
65461847f8eSopenharmony_ci     *
65561847f8eSopenharmony_ci     * @type { Array<USBConfig> }
65661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
65761847f8eSopenharmony_ci     * @since 8
65861847f8eSopenharmony_ci     * @deprecated since 9
65961847f8eSopenharmony_ci     */
66061847f8eSopenharmony_ci    configs: Array<USBConfig>;
66161847f8eSopenharmony_ci  }
66261847f8eSopenharmony_ci
66361847f8eSopenharmony_ci  /**
66461847f8eSopenharmony_ci   * Represents a USB device pipe, which is used to determine the USB device.
66561847f8eSopenharmony_ci   *
66661847f8eSopenharmony_ci   * @typedef USBDevicePipe
66761847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
66861847f8eSopenharmony_ci   * @since 8
66961847f8eSopenharmony_ci   * @deprecated since 9
67061847f8eSopenharmony_ci   */
67161847f8eSopenharmony_ci  interface USBDevicePipe {
67261847f8eSopenharmony_ci    /**
67361847f8eSopenharmony_ci     * Bus address.
67461847f8eSopenharmony_ci     *
67561847f8eSopenharmony_ci     * @type { number }
67661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
67761847f8eSopenharmony_ci     * @since 8
67861847f8eSopenharmony_ci     * @deprecated since 9
67961847f8eSopenharmony_ci     */
68061847f8eSopenharmony_ci    busNum: number;
68161847f8eSopenharmony_ci
68261847f8eSopenharmony_ci    /**
68361847f8eSopenharmony_ci     * Device address
68461847f8eSopenharmony_ci     *
68561847f8eSopenharmony_ci     * @type { number }
68661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
68761847f8eSopenharmony_ci     * @since 8
68861847f8eSopenharmony_ci     * @deprecated since 9
68961847f8eSopenharmony_ci     */
69061847f8eSopenharmony_ci    devAddress: number;
69161847f8eSopenharmony_ci  }
69261847f8eSopenharmony_ci
69361847f8eSopenharmony_ci  /**
69461847f8eSopenharmony_ci   * Enumerates power role types.
69561847f8eSopenharmony_ci   *
69661847f8eSopenharmony_ci   * @enum { number }
69761847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
69861847f8eSopenharmony_ci   * @systemapi
69961847f8eSopenharmony_ci   * @since 9
70061847f8eSopenharmony_ci   * @deprecated since 9
70161847f8eSopenharmony_ci   */
70261847f8eSopenharmony_ci  export enum PowerRoleType {
70361847f8eSopenharmony_ci    /**
70461847f8eSopenharmony_ci     * None
70561847f8eSopenharmony_ci     *
70661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
70761847f8eSopenharmony_ci     * @systemapi
70861847f8eSopenharmony_ci     * @since 9
70961847f8eSopenharmony_ci     * @deprecated since 9
71061847f8eSopenharmony_ci     */
71161847f8eSopenharmony_ci    NONE = 0,
71261847f8eSopenharmony_ci
71361847f8eSopenharmony_ci    /**
71461847f8eSopenharmony_ci     * External power supply
71561847f8eSopenharmony_ci     *
71661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
71761847f8eSopenharmony_ci     * @systemapi
71861847f8eSopenharmony_ci     * @since 9
71961847f8eSopenharmony_ci     * @deprecated since 9
72061847f8eSopenharmony_ci     */
72161847f8eSopenharmony_ci    SOURCE = 1,
72261847f8eSopenharmony_ci
72361847f8eSopenharmony_ci    /**
72461847f8eSopenharmony_ci     * Internal power supply
72561847f8eSopenharmony_ci     *
72661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
72761847f8eSopenharmony_ci     * @systemapi
72861847f8eSopenharmony_ci     * @since 9
72961847f8eSopenharmony_ci     * @deprecated since 9
73061847f8eSopenharmony_ci     */
73161847f8eSopenharmony_ci    SINK = 2
73261847f8eSopenharmony_ci  }
73361847f8eSopenharmony_ci
73461847f8eSopenharmony_ci  /**
73561847f8eSopenharmony_ci   * Enumerates data role types.
73661847f8eSopenharmony_ci   *
73761847f8eSopenharmony_ci   * @enum { number }
73861847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
73961847f8eSopenharmony_ci   * @systemapi
74061847f8eSopenharmony_ci   * @since 9
74161847f8eSopenharmony_ci   * @deprecated since 9
74261847f8eSopenharmony_ci   */
74361847f8eSopenharmony_ci  export enum DataRoleType {
74461847f8eSopenharmony_ci    /**
74561847f8eSopenharmony_ci     * None
74661847f8eSopenharmony_ci     *
74761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
74861847f8eSopenharmony_ci     * @systemapi
74961847f8eSopenharmony_ci     * @since 9
75061847f8eSopenharmony_ci     * @deprecated since 9
75161847f8eSopenharmony_ci     */
75261847f8eSopenharmony_ci    NONE = 0,
75361847f8eSopenharmony_ci
75461847f8eSopenharmony_ci    /**
75561847f8eSopenharmony_ci     * Host mode
75661847f8eSopenharmony_ci     *
75761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
75861847f8eSopenharmony_ci     * @systemapi
75961847f8eSopenharmony_ci     * @since 9
76061847f8eSopenharmony_ci     * @deprecated since 9
76161847f8eSopenharmony_ci     */
76261847f8eSopenharmony_ci    HOST = 1,
76361847f8eSopenharmony_ci
76461847f8eSopenharmony_ci    /**
76561847f8eSopenharmony_ci     * Device mode
76661847f8eSopenharmony_ci     *
76761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
76861847f8eSopenharmony_ci     * @systemapi
76961847f8eSopenharmony_ci     * @since 9
77061847f8eSopenharmony_ci     * @deprecated since 9
77161847f8eSopenharmony_ci     */
77261847f8eSopenharmony_ci    DEVICE = 2
77361847f8eSopenharmony_ci  }
77461847f8eSopenharmony_ci
77561847f8eSopenharmony_ci  /**
77661847f8eSopenharmony_ci   * Enumerates port mode types
77761847f8eSopenharmony_ci   *
77861847f8eSopenharmony_ci   * @enum { number }
77961847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
78061847f8eSopenharmony_ci   * @systemapi
78161847f8eSopenharmony_ci   * @since 9
78261847f8eSopenharmony_ci   * @deprecated since 9
78361847f8eSopenharmony_ci   */
78461847f8eSopenharmony_ci  export enum PortModeType {
78561847f8eSopenharmony_ci    /**
78661847f8eSopenharmony_ci     * None
78761847f8eSopenharmony_ci     *
78861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
78961847f8eSopenharmony_ci     * @systemapi
79061847f8eSopenharmony_ci     * @since 9
79161847f8eSopenharmony_ci     * @deprecated since 9
79261847f8eSopenharmony_ci     */
79361847f8eSopenharmony_ci    NONE = 0,
79461847f8eSopenharmony_ci
79561847f8eSopenharmony_ci    /**
79661847f8eSopenharmony_ci     * Upstream facing port, which functions as the sink of power supply
79761847f8eSopenharmony_ci     *
79861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
79961847f8eSopenharmony_ci     * @systemapi
80061847f8eSopenharmony_ci     * @since 9
80161847f8eSopenharmony_ci     * @deprecated since 9
80261847f8eSopenharmony_ci     */
80361847f8eSopenharmony_ci    UFP = 1,
80461847f8eSopenharmony_ci
80561847f8eSopenharmony_ci    /**
80661847f8eSopenharmony_ci     * Downstream facing port, which functions as the source of power supply
80761847f8eSopenharmony_ci     *
80861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
80961847f8eSopenharmony_ci     * @systemapi
81061847f8eSopenharmony_ci     * @since 9
81161847f8eSopenharmony_ci     * @deprecated since 9
81261847f8eSopenharmony_ci     */
81361847f8eSopenharmony_ci    DFP = 2,
81461847f8eSopenharmony_ci
81561847f8eSopenharmony_ci    /**
81661847f8eSopenharmony_ci     * Dynamic reconfiguration port (DRP), which can function as the DFP (host) or UFP (device). It is not supported currently.
81761847f8eSopenharmony_ci     *
81861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
81961847f8eSopenharmony_ci     * @systemapi
82061847f8eSopenharmony_ci     * @since 9
82161847f8eSopenharmony_ci     * @deprecated since 9
82261847f8eSopenharmony_ci     */
82361847f8eSopenharmony_ci    DRP = 3,
82461847f8eSopenharmony_ci
82561847f8eSopenharmony_ci    /**
82661847f8eSopenharmony_ci     * Not supported currently
82761847f8eSopenharmony_ci     *
82861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
82961847f8eSopenharmony_ci     * @systemapi
83061847f8eSopenharmony_ci     * @since 9
83161847f8eSopenharmony_ci     * @deprecated since 9
83261847f8eSopenharmony_ci     */
83361847f8eSopenharmony_ci    NUM_MODES = 4
83461847f8eSopenharmony_ci  }
83561847f8eSopenharmony_ci
83661847f8eSopenharmony_ci  /**
83761847f8eSopenharmony_ci   * Enumerates USB device port roles.
83861847f8eSopenharmony_ci   *
83961847f8eSopenharmony_ci   * @typedef USBPortStatus
84061847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
84161847f8eSopenharmony_ci   * @systemapi
84261847f8eSopenharmony_ci   * @since 9
84361847f8eSopenharmony_ci   * @deprecated since 9
84461847f8eSopenharmony_ci   */
84561847f8eSopenharmony_ci  interface USBPortStatus {
84661847f8eSopenharmony_ci    /**
84761847f8eSopenharmony_ci     * USB mode
84861847f8eSopenharmony_ci     *
84961847f8eSopenharmony_ci     * @type { number }
85061847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
85161847f8eSopenharmony_ci     * @systemapi
85261847f8eSopenharmony_ci     * @since 9
85361847f8eSopenharmony_ci     * @deprecated since 9
85461847f8eSopenharmony_ci     */
85561847f8eSopenharmony_ci    currentMode: number;
85661847f8eSopenharmony_ci
85761847f8eSopenharmony_ci    /**
85861847f8eSopenharmony_ci     * Power role
85961847f8eSopenharmony_ci     *
86061847f8eSopenharmony_ci     * @type { number }
86161847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
86261847f8eSopenharmony_ci     * @systemapi
86361847f8eSopenharmony_ci     * @since 9
86461847f8eSopenharmony_ci     * @deprecated since 9
86561847f8eSopenharmony_ci     */
86661847f8eSopenharmony_ci    currentPowerRole: number;
86761847f8eSopenharmony_ci
86861847f8eSopenharmony_ci    /**
86961847f8eSopenharmony_ci     * Data role
87061847f8eSopenharmony_ci     *
87161847f8eSopenharmony_ci     * @type { number }
87261847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
87361847f8eSopenharmony_ci     * @systemapi
87461847f8eSopenharmony_ci     * @since 9
87561847f8eSopenharmony_ci     * @deprecated since 9
87661847f8eSopenharmony_ci     */
87761847f8eSopenharmony_ci    currentDataRole: number;
87861847f8eSopenharmony_ci  }
87961847f8eSopenharmony_ci
88061847f8eSopenharmony_ci  /**
88161847f8eSopenharmony_ci   * Represents a USB device port.
88261847f8eSopenharmony_ci   *
88361847f8eSopenharmony_ci   * @typedef USBPort
88461847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
88561847f8eSopenharmony_ci   * @systemapi
88661847f8eSopenharmony_ci   * @since 9
88761847f8eSopenharmony_ci   * @deprecated since 9
88861847f8eSopenharmony_ci   */
88961847f8eSopenharmony_ci  interface USBPort {
89061847f8eSopenharmony_ci    /**
89161847f8eSopenharmony_ci     * Unique ID of the USB port
89261847f8eSopenharmony_ci     *
89361847f8eSopenharmony_ci     * @type { number }
89461847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
89561847f8eSopenharmony_ci     * @systemapi
89661847f8eSopenharmony_ci     * @since 9
89761847f8eSopenharmony_ci     * @deprecated since 9
89861847f8eSopenharmony_ci     */
89961847f8eSopenharmony_ci    id: number;
90061847f8eSopenharmony_ci
90161847f8eSopenharmony_ci    /**
90261847f8eSopenharmony_ci     * Mask combination for the supported mode list of the USB port
90361847f8eSopenharmony_ci     *
90461847f8eSopenharmony_ci     * @type { PortModeType }
90561847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
90661847f8eSopenharmony_ci     * @systemapi
90761847f8eSopenharmony_ci     * @since 9
90861847f8eSopenharmony_ci     * @deprecated since 9
90961847f8eSopenharmony_ci     */
91061847f8eSopenharmony_ci    supportedModes: PortModeType;
91161847f8eSopenharmony_ci
91261847f8eSopenharmony_ci    /**
91361847f8eSopenharmony_ci     * USB port role
91461847f8eSopenharmony_ci     *
91561847f8eSopenharmony_ci     * @type { USBPortStatus }
91661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
91761847f8eSopenharmony_ci     * @systemapi
91861847f8eSopenharmony_ci     * @since 9
91961847f8eSopenharmony_ci     * @deprecated since 9
92061847f8eSopenharmony_ci     */
92161847f8eSopenharmony_ci    status: USBPortStatus;
92261847f8eSopenharmony_ci  }
92361847f8eSopenharmony_ci
92461847f8eSopenharmony_ci  /**
92561847f8eSopenharmony_ci   * Represents control transfer parameters.
92661847f8eSopenharmony_ci   *
92761847f8eSopenharmony_ci   * @typedef USBControlParams
92861847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
92961847f8eSopenharmony_ci   * @since 8
93061847f8eSopenharmony_ci   * @deprecated since 9
93161847f8eSopenharmony_ci   */
93261847f8eSopenharmony_ci  interface USBControlParams {
93361847f8eSopenharmony_ci    /**
93461847f8eSopenharmony_ci     * Request type
93561847f8eSopenharmony_ci     *
93661847f8eSopenharmony_ci     * @type { number }
93761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
93861847f8eSopenharmony_ci     * @since 8
93961847f8eSopenharmony_ci     * @deprecated since 9
94061847f8eSopenharmony_ci     */
94161847f8eSopenharmony_ci    request: number;
94261847f8eSopenharmony_ci
94361847f8eSopenharmony_ci    /**
94461847f8eSopenharmony_ci     * Request target type
94561847f8eSopenharmony_ci     *
94661847f8eSopenharmony_ci     * @type { USBRequestTargetType }
94761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
94861847f8eSopenharmony_ci     * @since 8
94961847f8eSopenharmony_ci     * @deprecated since 9
95061847f8eSopenharmony_ci     */
95161847f8eSopenharmony_ci    target: USBRequestTargetType;
95261847f8eSopenharmony_ci
95361847f8eSopenharmony_ci    /**
95461847f8eSopenharmony_ci     * Control request type
95561847f8eSopenharmony_ci     *
95661847f8eSopenharmony_ci     * @type { USBControlRequestType }
95761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
95861847f8eSopenharmony_ci     * @since 8
95961847f8eSopenharmony_ci     * @deprecated since 9
96061847f8eSopenharmony_ci     */
96161847f8eSopenharmony_ci    reqType: USBControlRequestType;
96261847f8eSopenharmony_ci
96361847f8eSopenharmony_ci    /**
96461847f8eSopenharmony_ci     * Request parameter value
96561847f8eSopenharmony_ci     *
96661847f8eSopenharmony_ci     * @type { number }
96761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
96861847f8eSopenharmony_ci     * @since 8
96961847f8eSopenharmony_ci     * @deprecated since 9
97061847f8eSopenharmony_ci     */
97161847f8eSopenharmony_ci    value: number;
97261847f8eSopenharmony_ci
97361847f8eSopenharmony_ci    /**
97461847f8eSopenharmony_ci     * Index of the parameter value
97561847f8eSopenharmony_ci     *
97661847f8eSopenharmony_ci     * @type { number }
97761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
97861847f8eSopenharmony_ci     * @since 8
97961847f8eSopenharmony_ci     * @deprecated since 9
98061847f8eSopenharmony_ci     */
98161847f8eSopenharmony_ci    index: number;
98261847f8eSopenharmony_ci
98361847f8eSopenharmony_ci    /**
98461847f8eSopenharmony_ci     * Data written to or read from the buffer
98561847f8eSopenharmony_ci     *
98661847f8eSopenharmony_ci     * @type { Uint8Array }
98761847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
98861847f8eSopenharmony_ci     * @since 8
98961847f8eSopenharmony_ci     * @deprecated since 9
99061847f8eSopenharmony_ci     */
99161847f8eSopenharmony_ci    data: Uint8Array;
99261847f8eSopenharmony_ci  }
99361847f8eSopenharmony_ci
99461847f8eSopenharmony_ci  /**
99561847f8eSopenharmony_ci   * Enumerates USB request target types.
99661847f8eSopenharmony_ci   *
99761847f8eSopenharmony_ci   * @enum { number }
99861847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
99961847f8eSopenharmony_ci   * @since 8
100061847f8eSopenharmony_ci   * @deprecated since 9
100161847f8eSopenharmony_ci   */
100261847f8eSopenharmony_ci  export enum USBRequestTargetType {
100361847f8eSopenharmony_ci    /**
100461847f8eSopenharmony_ci     * USB device
100561847f8eSopenharmony_ci     *
100661847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
100761847f8eSopenharmony_ci     * @since 8
100861847f8eSopenharmony_ci     * @deprecated since 9
100961847f8eSopenharmony_ci     */
101061847f8eSopenharmony_ci    USB_REQUEST_TARGET_DEVICE = 0,
101161847f8eSopenharmony_ci
101261847f8eSopenharmony_ci    /**
101361847f8eSopenharmony_ci     * USB interface
101461847f8eSopenharmony_ci     *
101561847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
101661847f8eSopenharmony_ci     * @since 8
101761847f8eSopenharmony_ci     * @deprecated since 9
101861847f8eSopenharmony_ci     */
101961847f8eSopenharmony_ci    USB_REQUEST_TARGET_INTERFACE = 1,
102061847f8eSopenharmony_ci
102161847f8eSopenharmony_ci    /**
102261847f8eSopenharmony_ci     * Endpoint
102361847f8eSopenharmony_ci     *
102461847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
102561847f8eSopenharmony_ci     * @since 8
102661847f8eSopenharmony_ci     * @deprecated since 9
102761847f8eSopenharmony_ci     */
102861847f8eSopenharmony_ci    USB_REQUEST_TARGET_ENDPOINT = 2,
102961847f8eSopenharmony_ci
103061847f8eSopenharmony_ci    /**
103161847f8eSopenharmony_ci     * Others
103261847f8eSopenharmony_ci     *
103361847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
103461847f8eSopenharmony_ci     * @since 8
103561847f8eSopenharmony_ci     * @deprecated since 9
103661847f8eSopenharmony_ci     */
103761847f8eSopenharmony_ci    USB_REQUEST_TARGET_OTHER = 3
103861847f8eSopenharmony_ci  }
103961847f8eSopenharmony_ci
104061847f8eSopenharmony_ci  /**
104161847f8eSopenharmony_ci   * Enumerates control request types.
104261847f8eSopenharmony_ci   *
104361847f8eSopenharmony_ci   * @enum { number }
104461847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
104561847f8eSopenharmony_ci   * @since 8
104661847f8eSopenharmony_ci   * @deprecated since 9
104761847f8eSopenharmony_ci   */
104861847f8eSopenharmony_ci  export enum USBControlRequestType {
104961847f8eSopenharmony_ci    /**
105061847f8eSopenharmony_ci     * Standard
105161847f8eSopenharmony_ci     *
105261847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
105361847f8eSopenharmony_ci     * @since 8
105461847f8eSopenharmony_ci     * @deprecated since 9
105561847f8eSopenharmony_ci     */
105661847f8eSopenharmony_ci    USB_REQUEST_TYPE_STANDARD = 0,
105761847f8eSopenharmony_ci
105861847f8eSopenharmony_ci    /**
105961847f8eSopenharmony_ci     * Class
106061847f8eSopenharmony_ci     *
106161847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
106261847f8eSopenharmony_ci     * @since 8
106361847f8eSopenharmony_ci     * @deprecated since 9
106461847f8eSopenharmony_ci     */
106561847f8eSopenharmony_ci    USB_REQUEST_TYPE_CLASS = 1,
106661847f8eSopenharmony_ci
106761847f8eSopenharmony_ci    /**
106861847f8eSopenharmony_ci     * Vendor
106961847f8eSopenharmony_ci     *
107061847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
107161847f8eSopenharmony_ci     * @since 8
107261847f8eSopenharmony_ci     * @deprecated since 9
107361847f8eSopenharmony_ci     */
107461847f8eSopenharmony_ci    USB_REQUEST_TYPE_VENDOR = 2
107561847f8eSopenharmony_ci  }
107661847f8eSopenharmony_ci
107761847f8eSopenharmony_ci  /**
107861847f8eSopenharmony_ci   * Enumerates request directions.
107961847f8eSopenharmony_ci   *
108061847f8eSopenharmony_ci   * @enum { number }
108161847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
108261847f8eSopenharmony_ci   * @since 8
108361847f8eSopenharmony_ci   * @deprecated since 9
108461847f8eSopenharmony_ci   */
108561847f8eSopenharmony_ci  export enum USBRequestDirection {
108661847f8eSopenharmony_ci    /**
108761847f8eSopenharmony_ci     * Request for writing data from the host to the device
108861847f8eSopenharmony_ci     *
108961847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
109061847f8eSopenharmony_ci     * @since 8
109161847f8eSopenharmony_ci     * @deprecated since 9
109261847f8eSopenharmony_ci     */
109361847f8eSopenharmony_ci    USB_REQUEST_DIR_TO_DEVICE = 0,
109461847f8eSopenharmony_ci
109561847f8eSopenharmony_ci    /**
109661847f8eSopenharmony_ci     * Request for reading data from the device to the host
109761847f8eSopenharmony_ci     *
109861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
109961847f8eSopenharmony_ci     * @since 8
110061847f8eSopenharmony_ci     * @deprecated since 9
110161847f8eSopenharmony_ci     */
110261847f8eSopenharmony_ci    USB_REQUEST_DIR_FROM_DEVICE = 0x80
110361847f8eSopenharmony_ci  }
110461847f8eSopenharmony_ci
110561847f8eSopenharmony_ci  /**
110661847f8eSopenharmony_ci   * Enumerates function modes.
110761847f8eSopenharmony_ci   *
110861847f8eSopenharmony_ci   * @enum { number }
110961847f8eSopenharmony_ci   * @syscap SystemCapability.USB.USBManager
111061847f8eSopenharmony_ci   * @systemapi
111161847f8eSopenharmony_ci   * @since 9
111261847f8eSopenharmony_ci   * @deprecated since 9
111361847f8eSopenharmony_ci   */
111461847f8eSopenharmony_ci  export enum FunctionType {
111561847f8eSopenharmony_ci    /**
111661847f8eSopenharmony_ci     * None
111761847f8eSopenharmony_ci     *
111861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
111961847f8eSopenharmony_ci     * @systemapi
112061847f8eSopenharmony_ci     * @since 9
112161847f8eSopenharmony_ci     * @deprecated since 9
112261847f8eSopenharmony_ci     */
112361847f8eSopenharmony_ci    NONE = 0,
112461847f8eSopenharmony_ci
112561847f8eSopenharmony_ci    /**
112661847f8eSopenharmony_ci     * Serial port device
112761847f8eSopenharmony_ci     *
112861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
112961847f8eSopenharmony_ci     * @systemapi
113061847f8eSopenharmony_ci     * @since 9
113161847f8eSopenharmony_ci     * @deprecated since 9
113261847f8eSopenharmony_ci     */
113361847f8eSopenharmony_ci    ACM = 1,
113461847f8eSopenharmony_ci
113561847f8eSopenharmony_ci    /**
113661847f8eSopenharmony_ci     * Ethernet port device
113761847f8eSopenharmony_ci     *
113861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
113961847f8eSopenharmony_ci     * @systemapi
114061847f8eSopenharmony_ci     * @since 9
114161847f8eSopenharmony_ci     * @deprecated since 9
114261847f8eSopenharmony_ci     */
114361847f8eSopenharmony_ci    ECM = 2,
114461847f8eSopenharmony_ci
114561847f8eSopenharmony_ci    /**
114661847f8eSopenharmony_ci     * HDC device
114761847f8eSopenharmony_ci     *
114861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
114961847f8eSopenharmony_ci     * @systemapi
115061847f8eSopenharmony_ci     * @since 9
115161847f8eSopenharmony_ci     * @deprecated since 9
115261847f8eSopenharmony_ci     */
115361847f8eSopenharmony_ci    HDC = 4,
115461847f8eSopenharmony_ci
115561847f8eSopenharmony_ci    /**
115661847f8eSopenharmony_ci     * MTP device
115761847f8eSopenharmony_ci     *
115861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
115961847f8eSopenharmony_ci     * @systemapi
116061847f8eSopenharmony_ci     * @since 9
116161847f8eSopenharmony_ci     * @deprecated since 9
116261847f8eSopenharmony_ci     */
116361847f8eSopenharmony_ci    MTP = 8,
116461847f8eSopenharmony_ci
116561847f8eSopenharmony_ci    /**
116661847f8eSopenharmony_ci     * PTP device
116761847f8eSopenharmony_ci     *
116861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
116961847f8eSopenharmony_ci     * @systemapi
117061847f8eSopenharmony_ci     * @since 9
117161847f8eSopenharmony_ci     * @deprecated since 9
117261847f8eSopenharmony_ci     */
117361847f8eSopenharmony_ci    PTP = 16,
117461847f8eSopenharmony_ci
117561847f8eSopenharmony_ci    /**
117661847f8eSopenharmony_ci     * RNDIS device
117761847f8eSopenharmony_ci     *
117861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
117961847f8eSopenharmony_ci     * @systemapi
118061847f8eSopenharmony_ci     * @since 9
118161847f8eSopenharmony_ci     * @deprecated since 9
118261847f8eSopenharmony_ci     */
118361847f8eSopenharmony_ci    RNDIS = 32,
118461847f8eSopenharmony_ci
118561847f8eSopenharmony_ci    /**
118661847f8eSopenharmony_ci     * MIDI device
118761847f8eSopenharmony_ci     *
118861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
118961847f8eSopenharmony_ci     * @systemapi
119061847f8eSopenharmony_ci     * @since 9
119161847f8eSopenharmony_ci     * @deprecated since 9
119261847f8eSopenharmony_ci     */
119361847f8eSopenharmony_ci    MIDI = 64,
119461847f8eSopenharmony_ci
119561847f8eSopenharmony_ci    /**
119661847f8eSopenharmony_ci     * Audio source device
119761847f8eSopenharmony_ci     *
119861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
119961847f8eSopenharmony_ci     * @systemapi
120061847f8eSopenharmony_ci     * @since 9
120161847f8eSopenharmony_ci     * @deprecated since 9
120261847f8eSopenharmony_ci     */
120361847f8eSopenharmony_ci    AUDIO_SOURCE = 128,
120461847f8eSopenharmony_ci
120561847f8eSopenharmony_ci    /**
120661847f8eSopenharmony_ci     * NCM device
120761847f8eSopenharmony_ci     *
120861847f8eSopenharmony_ci     * @syscap SystemCapability.USB.USBManager
120961847f8eSopenharmony_ci     * @systemapi
121061847f8eSopenharmony_ci     * @since 9
121161847f8eSopenharmony_ci     * @deprecated since 9
121261847f8eSopenharmony_ci     */
121361847f8eSopenharmony_ci    NCM = 256
121461847f8eSopenharmony_ci  }
121561847f8eSopenharmony_ci}
121661847f8eSopenharmony_ci
121761847f8eSopenharmony_ciexport default usb;
1218