/* * Copyright (C) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { AsyncCallback, Callback } from "./@ohos.base"; import connection from "./@ohos.net.connection"; /** * Provides network sharing related interfaces. * @namespace sharing * @syscap SystemCapability.Communication.NetManager.NetSharing * @since 9 */ declare namespace sharing { type NetHandle = connection.NetHandle; /** * Checks whether this device allows for network sharing. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { AsyncCallback } callback Returns {@code true} indicating network sharing is supported; * returns {@code false} otherwise. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @throws { BusinessError } 2202011 - Cannot get network sharing configuration. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function isSharingSupported(callback: AsyncCallback): void; /** * Checks whether this device allows for network sharing. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @throws { BusinessError } 2202011 - Cannot get network sharing configuration. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function isSharingSupported(): Promise; /** * Return the global network sharing state. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { AsyncCallback } callback Returns {@code true} indicating network sharing is running; * returns {@code false} otherwise. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @throws { BusinessError } 2202011 - Cannot get network sharing configuration. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function isSharing(callback: AsyncCallback): void; /** * Return the global network sharing state. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @throws { BusinessError } 2202011 - Cannot get network sharing configuration. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function isSharing(): Promise; /** * Start network sharing for given type. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceType } type Enumeration of shareable interface types. * @param { AsyncCallback } callback Returns the result. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @throws { BusinessError } 2202004 - Try to share an unavailable iface. * @throws { BusinessError } 2202005 - WiFi sharing failed. * @throws { BusinessError } 2202006 - Bluetooth sharing failed. * @throws { BusinessError } 2202009 - Network share enable forwarding error. * @throws { BusinessError } 2202011 - Cannot get network sharing configuration. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function startSharing(type: SharingIfaceType, callback: AsyncCallback): void; /** * Start network sharing for given type. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceType } type Enumeration of shareable interface types. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @throws { BusinessError } 2202004 - Try to share an unavailable iface. * @throws { BusinessError } 2202005 - WiFi sharing failed. * @throws { BusinessError } 2202006 - Bluetooth sharing failed. * @throws { BusinessError } 2202009 - Network share enable forwarding error. * @throws { BusinessError } 2202011 - Cannot get network sharing configuration. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function startSharing(type: SharingIfaceType): Promise; /** * Stop network sharing for given type. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceType } type Enumeration of shareable interface types. * @param { AsyncCallback } callback Returns the result. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @throws { BusinessError } 2202004 - Try to share an unavailable iface. * @throws { BusinessError } 2202005 - WiFi sharing failed. * @throws { BusinessError } 2202006 - Bluetooth sharing failed. * @throws { BusinessError } 2202011 - Cannot get network sharing configuration. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function stopSharing(type: SharingIfaceType, callback: AsyncCallback): void; /** * Stop network sharing for given type. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceType } type Enumeration of shareable interface types. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @throws { BusinessError } 2202004 - Try to share an unavailable iface. * @throws { BusinessError } 2202005 - WiFi sharing failed. * @throws { BusinessError } 2202006 - Bluetooth sharing failed. * @throws { BusinessError } 2202011 - Cannot get network sharing configuration. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function stopSharing(type: SharingIfaceType): Promise; /** * Obtains the number of downlink data bytes of the sharing network interfaces. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { AsyncCallback } callback Returns the number of downlink data bytes of the sharing network interfaces. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getStatsRxBytes(callback: AsyncCallback): void; /** * Obtains the number of downlink data bytes of the sharing network interfaces. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getStatsRxBytes(): Promise; /** * Obtains the number of uplink data bytes of the sharing network interfaces. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { AsyncCallback } callback Returns the number of uplink data bytes of the sharing network interfaces. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getStatsTxBytes(callback: AsyncCallback): void; /** * Obtains the number of uplink data bytes of the sharing network interfaces. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getStatsTxBytes(): Promise; /** * Obtains the number of total data bytes of the sharing network interfaces. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { AsyncCallback } callback Returns the number of total data bytes of the sharing network interfaces. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getStatsTotalBytes(callback: AsyncCallback): void; /** * Obtains the number of total data bytes of the sharing network interfaces. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getStatsTotalBytes(): Promise; /** * Obtains the names of interfaces in each sharing state. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceState } state Is the network sharing state. * @param { AsyncCallback> } callback Returns an array of interface names that meet this status. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getSharingIfaces(state: SharingIfaceState, callback: AsyncCallback>): void; /** * Obtains the names of interfaces in each sharing state. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceState } state Is the network sharing state. * @returns { Promise> } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getSharingIfaces(state: SharingIfaceState): Promise>; /** * Obtains the network sharing state for given type. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceType } type Is the enumeration of shareable interface types. * @param { AsyncCallback } callback Returns {@code SharingIfaceState}. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getSharingState(type: SharingIfaceType, callback: AsyncCallback): void; /** * Obtains the network sharing state for given type. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceType } type Is the enumeration of shareable interface types. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getSharingState(type: SharingIfaceType): Promise; /** * Get a list regular expression that defines any interface that can support network sharing. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceType } type Is the enumeration of shareable interface types. * @param { AsyncCallback> } callback - the callback of getSharableRegexes. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getSharableRegexes(type: SharingIfaceType, callback: AsyncCallback>): void; /** * Get a list regular expression that defines any interface that can support network sharing. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { SharingIfaceType } type Is the enumeration of shareable interface types. * @returns { Promise> } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 2200001 - Invalid parameter value. * @throws { BusinessError } 2200002 - Operation failed. Cannot connect to service. * @throws { BusinessError } 2200003 - System internal error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function getSharableRegexes(type: SharingIfaceType): Promise>; /** * Register a callback for the global network sharing state change. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { 'sharingStateChange' } type Indicates Event name. * @param { Callback } callback callback function that returns the status * @throws { BusinessError } 201 Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 Parameter error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function on(type: 'sharingStateChange', callback: Callback): void; /** * Unregister a callback for the global network sharing state change. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { 'sharingStateChange' } type Indicates Event name. * @param { Callback } callback callback function that returns the status * @throws { BusinessError } 201 Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 Parameter error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function off(type: 'sharingStateChange', callback?: Callback): void; /** * Register a callback for the interface network sharing state change. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { 'interfaceSharingStateChange' } type Indicates Event name. * @param { Callback<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }> } callback callback function that returns the message. * @throws { BusinessError } 201 Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 Parameter error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function on(type: 'interfaceSharingStateChange', callback: Callback<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void; /** * Unregister a callback for the interface network sharing state change. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { 'interfaceSharingStateChange' } type Indicates Event name. * @param { Callback<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }> } callback callback function that returns the message. * @throws { BusinessError } 201 Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 Parameter error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function off(type: 'interfaceSharingStateChange', callback?: Callback<{ type: SharingIfaceType, iface: string, state: SharingIfaceState }>): void; /** * Register a callback for the sharing upstream network change. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { 'sharingUpstreamChange' } type Indicates Event name. * @param { Callback } callback callback function that returns the network handle. * @throws { BusinessError } 201 Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 Parameter error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function on(type: 'sharingUpstreamChange', callback: Callback): void; /** * Unregister a callback for the sharing upstream network change. * @permission ohos.permission.CONNECTIVITY_INTERNAL * @param { 'sharingUpstreamChange' } type Indicates Event name. * @param { Callback } callback callback function that returns the network handle. * @throws { BusinessError } 201 Permission denied. * @throws { BusinessError } 202 - Non-system applications use system APIs. * @throws { BusinessError } 401 Parameter error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ function off(type: 'sharingUpstreamChange', callback?: Callback): void; /** * Enumerates the network sharing states of an NIC. * @enum {number} * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ export enum SharingIfaceState { /** * Indicates the names of the NICs that are serving as network sharing. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ SHARING_NIC_SERVING = 1, /** * Indicates the names of the NICs that can serve as network sharing. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ SHARING_NIC_CAN_SERVER = 2, /** * Indicates the names of the NICs that serving error. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ SHARING_NIC_ERROR = 3 } /** * Enumerates the network sharing types of an NIC. * @enum {number} * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ export enum SharingIfaceType { /** * Network sharing type for Wi-Fi. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ SHARING_WIFI = 0, /** * Network sharing type for USB. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ SHARING_USB = 1, /** * Network sharing type for BLUETOOTH. * @syscap SystemCapability.Communication.NetManager.NetSharing * @systemapi Hide this for inner system use. * @since 9 */ SHARING_BLUETOOTH = 2 } } export default sharing;