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 * Defines the basic callback.
2361847f8eSopenharmony_ci * @typedef Callback
2461847f8eSopenharmony_ci * @syscap SystemCapability.Base
2561847f8eSopenharmony_ci * @since 6
2661847f8eSopenharmony_ci */
2761847f8eSopenharmony_ci/**
2861847f8eSopenharmony_ci * Defines the basic callback.
2961847f8eSopenharmony_ci * @typedef Callback
3061847f8eSopenharmony_ci * @syscap SystemCapability.Base
3161847f8eSopenharmony_ci * @crossplatform
3261847f8eSopenharmony_ci * @since 10
3361847f8eSopenharmony_ci */
3461847f8eSopenharmony_ci/**
3561847f8eSopenharmony_ci * Defines the basic callback.
3661847f8eSopenharmony_ci * @typedef Callback
3761847f8eSopenharmony_ci * @syscap SystemCapability.Base
3861847f8eSopenharmony_ci * @crossplatform
3961847f8eSopenharmony_ci * @atomicservice
4061847f8eSopenharmony_ci * @since 11
4161847f8eSopenharmony_ci */
4261847f8eSopenharmony_ci/**
4361847f8eSopenharmony_ci * Defines the basic callback.
4461847f8eSopenharmony_ci * @typedef Callback
4561847f8eSopenharmony_ci * @syscap SystemCapability.Base
4661847f8eSopenharmony_ci * @crossplatform
4761847f8eSopenharmony_ci * @form
4861847f8eSopenharmony_ci * @atomicservice
4961847f8eSopenharmony_ci * @since 12
5061847f8eSopenharmony_ci */
5161847f8eSopenharmony_ciexport interface Callback<T> {
5261847f8eSopenharmony_ci  /**
5361847f8eSopenharmony_ci   * Defines the callback info.
5461847f8eSopenharmony_ci   * @param { T } data
5561847f8eSopenharmony_ci   * @syscap SystemCapability.Base
5661847f8eSopenharmony_ci   * @since 6
5761847f8eSopenharmony_ci   */
5861847f8eSopenharmony_ci  /**
5961847f8eSopenharmony_ci   * Defines the callback info.
6061847f8eSopenharmony_ci   * @param { T } data
6161847f8eSopenharmony_ci   * @syscap SystemCapability.Base
6261847f8eSopenharmony_ci   * @crossplatform
6361847f8eSopenharmony_ci   * @since 10
6461847f8eSopenharmony_ci   */
6561847f8eSopenharmony_ci  /**
6661847f8eSopenharmony_ci   * Defines the callback info.
6761847f8eSopenharmony_ci   * @param { T } data
6861847f8eSopenharmony_ci   * @syscap SystemCapability.Base
6961847f8eSopenharmony_ci   * @crossplatform
7061847f8eSopenharmony_ci   * @atomicservice
7161847f8eSopenharmony_ci   * @since 11
7261847f8eSopenharmony_ci   */
7361847f8eSopenharmony_ci  /**
7461847f8eSopenharmony_ci   * Defines the callback info.
7561847f8eSopenharmony_ci   * @param { T } data
7661847f8eSopenharmony_ci   * @syscap SystemCapability.Base
7761847f8eSopenharmony_ci   * @crossplatform
7861847f8eSopenharmony_ci   * @form
7961847f8eSopenharmony_ci   * @atomicservice
8061847f8eSopenharmony_ci   * @since 12
8161847f8eSopenharmony_ci   */
8261847f8eSopenharmony_ci  (data: T): void;
8361847f8eSopenharmony_ci}
8461847f8eSopenharmony_ci
8561847f8eSopenharmony_ci/**
8661847f8eSopenharmony_ci * Defines the basic error callback.
8761847f8eSopenharmony_ci * @typedef ErrorCallback 
8861847f8eSopenharmony_ci * @syscap SystemCapability.Base
8961847f8eSopenharmony_ci * @since 6
9061847f8eSopenharmony_ci */
9161847f8eSopenharmony_ci/**
9261847f8eSopenharmony_ci * Defines the basic error callback.
9361847f8eSopenharmony_ci * @typedef ErrorCallback
9461847f8eSopenharmony_ci * @syscap SystemCapability.Base
9561847f8eSopenharmony_ci * @crossplatform
9661847f8eSopenharmony_ci * @since 10
9761847f8eSopenharmony_ci */
9861847f8eSopenharmony_ci/**
9961847f8eSopenharmony_ci * Defines the basic error callback.
10061847f8eSopenharmony_ci * @typedef ErrorCallback
10161847f8eSopenharmony_ci * @syscap SystemCapability.Base
10261847f8eSopenharmony_ci * @crossplatform
10361847f8eSopenharmony_ci * @atomicservice
10461847f8eSopenharmony_ci * @since 11
10561847f8eSopenharmony_ci */
10661847f8eSopenharmony_ciexport interface ErrorCallback<T extends Error = BusinessError> {
10761847f8eSopenharmony_ci  /**
10861847f8eSopenharmony_ci   * Defines the basic error callback.
10961847f8eSopenharmony_ci   * @param { T } err
11061847f8eSopenharmony_ci   * @syscap SystemCapability.Base
11161847f8eSopenharmony_ci   * @since 6
11261847f8eSopenharmony_ci   */
11361847f8eSopenharmony_ci  /**
11461847f8eSopenharmony_ci   * Defines the basic error callback.
11561847f8eSopenharmony_ci   * @param { T } err
11661847f8eSopenharmony_ci   * @syscap SystemCapability.Base
11761847f8eSopenharmony_ci   * @crossplatform
11861847f8eSopenharmony_ci   * @since 10
11961847f8eSopenharmony_ci   */
12061847f8eSopenharmony_ci  /**
12161847f8eSopenharmony_ci   * Defines the basic error callback.
12261847f8eSopenharmony_ci   * @param { T } err
12361847f8eSopenharmony_ci   * @syscap SystemCapability.Base
12461847f8eSopenharmony_ci   * @crossplatform
12561847f8eSopenharmony_ci   * @atomicservice
12661847f8eSopenharmony_ci   * @since 11
12761847f8eSopenharmony_ci   */
12861847f8eSopenharmony_ci  (err: T): void;
12961847f8eSopenharmony_ci}
13061847f8eSopenharmony_ci
13161847f8eSopenharmony_ci/**
13261847f8eSopenharmony_ci * Defines the basic async callback.
13361847f8eSopenharmony_ci * @typedef AsyncCallback
13461847f8eSopenharmony_ci * @syscap SystemCapability.Base
13561847f8eSopenharmony_ci * @since 6
13661847f8eSopenharmony_ci */
13761847f8eSopenharmony_ci/**
13861847f8eSopenharmony_ci * Defines the basic async callback.
13961847f8eSopenharmony_ci * @typedef AsyncCallback
14061847f8eSopenharmony_ci * @syscap SystemCapability.Base
14161847f8eSopenharmony_ci * @crossplatform
14261847f8eSopenharmony_ci * @since 10
14361847f8eSopenharmony_ci */
14461847f8eSopenharmony_ci/**
14561847f8eSopenharmony_ci * Defines the basic async callback.
14661847f8eSopenharmony_ci * @typedef AsyncCallback
14761847f8eSopenharmony_ci * @syscap SystemCapability.Base
14861847f8eSopenharmony_ci * @crossplatform
14961847f8eSopenharmony_ci * @atomicservice
15061847f8eSopenharmony_ci * @since 11
15161847f8eSopenharmony_ci */
15261847f8eSopenharmony_ci/**
15361847f8eSopenharmony_ci * Defines the basic async callback.
15461847f8eSopenharmony_ci * @typedef AsyncCallback
15561847f8eSopenharmony_ci * @syscap SystemCapability.Base
15661847f8eSopenharmony_ci * @crossplatform
15761847f8eSopenharmony_ci * @form
15861847f8eSopenharmony_ci * @atomicservice
15961847f8eSopenharmony_ci * @since 12
16061847f8eSopenharmony_ci */
16161847f8eSopenharmony_ciexport interface AsyncCallback<T, E = void> {
16261847f8eSopenharmony_ci  /**
16361847f8eSopenharmony_ci   * Defines the callback data.
16461847f8eSopenharmony_ci   * @param { BusinessError<E> } err
16561847f8eSopenharmony_ci   * @param { T } data
16661847f8eSopenharmony_ci   * @syscap SystemCapability.Base
16761847f8eSopenharmony_ci   * @since 6
16861847f8eSopenharmony_ci   */
16961847f8eSopenharmony_ci  /**
17061847f8eSopenharmony_ci   * Defines the callback data.
17161847f8eSopenharmony_ci   * @param { BusinessError<E> } err
17261847f8eSopenharmony_ci   * @param { T } data
17361847f8eSopenharmony_ci   * @syscap SystemCapability.Base
17461847f8eSopenharmony_ci   * @crossplatform
17561847f8eSopenharmony_ci   * @since 10
17661847f8eSopenharmony_ci   */
17761847f8eSopenharmony_ci  /**
17861847f8eSopenharmony_ci   * Defines the callback data.
17961847f8eSopenharmony_ci   * @param { BusinessError<E> } err
18061847f8eSopenharmony_ci   * @param { T } data
18161847f8eSopenharmony_ci   * @syscap SystemCapability.Base
18261847f8eSopenharmony_ci   * @crossplatform
18361847f8eSopenharmony_ci   * @atomicservice
18461847f8eSopenharmony_ci   * @since 11
18561847f8eSopenharmony_ci   */
18661847f8eSopenharmony_ci  /**
18761847f8eSopenharmony_ci   * Defines the callback data.
18861847f8eSopenharmony_ci   * @param { BusinessError<E> } err
18961847f8eSopenharmony_ci   * @param { T } data
19061847f8eSopenharmony_ci   * @syscap SystemCapability.Base
19161847f8eSopenharmony_ci   * @crossplatform
19261847f8eSopenharmony_ci   * @form
19361847f8eSopenharmony_ci   * @atomicservice
19461847f8eSopenharmony_ci   * @since 12
19561847f8eSopenharmony_ci   */
19661847f8eSopenharmony_ci  (err: BusinessError<E>, data: T): void;
19761847f8eSopenharmony_ci}
19861847f8eSopenharmony_ci
19961847f8eSopenharmony_ci/**
20061847f8eSopenharmony_ci * Defines the error interface.
20161847f8eSopenharmony_ci * @typedef BusinessError
20261847f8eSopenharmony_ci * @syscap SystemCapability.Base
20361847f8eSopenharmony_ci * @since 6
20461847f8eSopenharmony_ci */
20561847f8eSopenharmony_ci/**
20661847f8eSopenharmony_ci * Defines the error interface.
20761847f8eSopenharmony_ci * @typedef BusinessError
20861847f8eSopenharmony_ci * @syscap SystemCapability.Base
20961847f8eSopenharmony_ci * @crossplatform
21061847f8eSopenharmony_ci * @since 10
21161847f8eSopenharmony_ci */
21261847f8eSopenharmony_ci/**
21361847f8eSopenharmony_ci * Defines the error interface.
21461847f8eSopenharmony_ci * @typedef BusinessError
21561847f8eSopenharmony_ci * @syscap SystemCapability.Base
21661847f8eSopenharmony_ci * @crossplatform
21761847f8eSopenharmony_ci * @atomicservice
21861847f8eSopenharmony_ci * @since 11
21961847f8eSopenharmony_ci */
22061847f8eSopenharmony_ci/**
22161847f8eSopenharmony_ci * Defines the error interface.
22261847f8eSopenharmony_ci * @typedef BusinessError
22361847f8eSopenharmony_ci * @syscap SystemCapability.Base
22461847f8eSopenharmony_ci * @crossplatform
22561847f8eSopenharmony_ci * @form
22661847f8eSopenharmony_ci * @atomicservice
22761847f8eSopenharmony_ci * @since 12
22861847f8eSopenharmony_ci */
22961847f8eSopenharmony_ciexport interface BusinessError<T = void> extends Error {
23061847f8eSopenharmony_ci  /**
23161847f8eSopenharmony_ci   * Defines the basic error code.
23261847f8eSopenharmony_ci   * @type { number } code
23361847f8eSopenharmony_ci   * @syscap SystemCapability.Base
23461847f8eSopenharmony_ci   * @since 6
23561847f8eSopenharmony_ci   */
23661847f8eSopenharmony_ci  /**
23761847f8eSopenharmony_ci   * Defines the basic error code.
23861847f8eSopenharmony_ci   * @type { number } code
23961847f8eSopenharmony_ci   * @syscap SystemCapability.Base
24061847f8eSopenharmony_ci   * @crossplatform
24161847f8eSopenharmony_ci   * @since 10
24261847f8eSopenharmony_ci   */
24361847f8eSopenharmony_ci  /**
24461847f8eSopenharmony_ci   * Defines the basic error code.
24561847f8eSopenharmony_ci   * @type { number } code
24661847f8eSopenharmony_ci   * @syscap SystemCapability.Base
24761847f8eSopenharmony_ci   * @crossplatform
24861847f8eSopenharmony_ci   * @atomicservice
24961847f8eSopenharmony_ci   * @since 11
25061847f8eSopenharmony_ci   */
25161847f8eSopenharmony_ci  /**
25261847f8eSopenharmony_ci   * Defines the basic error code.
25361847f8eSopenharmony_ci   * @type { number } code
25461847f8eSopenharmony_ci   * @syscap SystemCapability.Base
25561847f8eSopenharmony_ci   * @crossplatform
25661847f8eSopenharmony_ci   * @form
25761847f8eSopenharmony_ci   * @atomicservice
25861847f8eSopenharmony_ci   * @since 12
25961847f8eSopenharmony_ci   */
26061847f8eSopenharmony_ci  code: number;
26161847f8eSopenharmony_ci  /**
26261847f8eSopenharmony_ci   * Defines the additional information for business
26361847f8eSopenharmony_ci   * @type { ?T } data
26461847f8eSopenharmony_ci   * @syscap SystemCapability.Base
26561847f8eSopenharmony_ci   * @since 9
26661847f8eSopenharmony_ci   */
26761847f8eSopenharmony_ci  /**
26861847f8eSopenharmony_ci   * Defines the additional information for business
26961847f8eSopenharmony_ci   * @type { ?T } data
27061847f8eSopenharmony_ci   * @syscap SystemCapability.Base
27161847f8eSopenharmony_ci   * @crossplatform
27261847f8eSopenharmony_ci   * @since 10
27361847f8eSopenharmony_ci   */
27461847f8eSopenharmony_ci  /**
27561847f8eSopenharmony_ci   * Defines the additional information for business
27661847f8eSopenharmony_ci   * @type { ?T } data
27761847f8eSopenharmony_ci   * @syscap SystemCapability.Base
27861847f8eSopenharmony_ci   * @crossplatform
27961847f8eSopenharmony_ci   * @atomicservice
28061847f8eSopenharmony_ci   * @since 11
28161847f8eSopenharmony_ci   */
28261847f8eSopenharmony_ci  /**
28361847f8eSopenharmony_ci   * Defines the additional information for business
28461847f8eSopenharmony_ci   * @type { ?T } data
28561847f8eSopenharmony_ci   * @syscap SystemCapability.Base
28661847f8eSopenharmony_ci   * @crossplatform
28761847f8eSopenharmony_ci   * @form
28861847f8eSopenharmony_ci   * @atomicservice
28961847f8eSopenharmony_ci   * @since 12
29061847f8eSopenharmony_ci   */
29161847f8eSopenharmony_ci  data?: T;
29261847f8eSopenharmony_ci}
293