161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit ArkTS
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ci/**
2261847f8eSopenharmony_ci * JS cross-thread task executor.
2361847f8eSopenharmony_ci *
2461847f8eSopenharmony_ci * @namespace taskpool
2561847f8eSopenharmony_ci * @syscap SystemCapability.Utils.Lang
2661847f8eSopenharmony_ci * @since 9
2761847f8eSopenharmony_ci */
2861847f8eSopenharmony_ci/**
2961847f8eSopenharmony_ci * JS cross-thread task executor.
3061847f8eSopenharmony_ci *
3161847f8eSopenharmony_ci * @namespace taskpool
3261847f8eSopenharmony_ci * @syscap SystemCapability.Utils.Lang
3361847f8eSopenharmony_ci * @crossplatform
3461847f8eSopenharmony_ci * @since 10
3561847f8eSopenharmony_ci */
3661847f8eSopenharmony_ci/**
3761847f8eSopenharmony_ci * JS cross-thread task executor.
3861847f8eSopenharmony_ci *
3961847f8eSopenharmony_ci * @namespace taskpool
4061847f8eSopenharmony_ci * @syscap SystemCapability.Utils.Lang
4161847f8eSopenharmony_ci * @crossplatform
4261847f8eSopenharmony_ci * @atomicservice
4361847f8eSopenharmony_ci * @since 11
4461847f8eSopenharmony_ci */
4561847f8eSopenharmony_cideclare namespace taskpool {
4661847f8eSopenharmony_ci  /**
4761847f8eSopenharmony_ci   * The Priority defines the task priority.
4861847f8eSopenharmony_ci   *
4961847f8eSopenharmony_ci   * @enum { number } Priority
5061847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
5161847f8eSopenharmony_ci   * @since 9
5261847f8eSopenharmony_ci   */
5361847f8eSopenharmony_ci  /**
5461847f8eSopenharmony_ci   * The Priority defines the task priority.
5561847f8eSopenharmony_ci   *
5661847f8eSopenharmony_ci   * @enum { number } Priority
5761847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
5861847f8eSopenharmony_ci   * @crossplatform
5961847f8eSopenharmony_ci   * @since 10
6061847f8eSopenharmony_ci   */
6161847f8eSopenharmony_ci  /**
6261847f8eSopenharmony_ci   * The Priority defines the task priority.
6361847f8eSopenharmony_ci   *
6461847f8eSopenharmony_ci   * @enum { number } Priority
6561847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
6661847f8eSopenharmony_ci   * @crossplatform
6761847f8eSopenharmony_ci   * @atomicservice
6861847f8eSopenharmony_ci   * @since 11
6961847f8eSopenharmony_ci   */
7061847f8eSopenharmony_ci  enum Priority {
7161847f8eSopenharmony_ci    /**
7261847f8eSopenharmony_ci     * set task priority to high.
7361847f8eSopenharmony_ci     *
7461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
7561847f8eSopenharmony_ci     * @since 9
7661847f8eSopenharmony_ci     */
7761847f8eSopenharmony_ci    /**
7861847f8eSopenharmony_ci     * set task priority to high.
7961847f8eSopenharmony_ci     *
8061847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
8161847f8eSopenharmony_ci     * @crossplatform
8261847f8eSopenharmony_ci     * @since 10
8361847f8eSopenharmony_ci     */
8461847f8eSopenharmony_ci    /**
8561847f8eSopenharmony_ci     * set task priority to high.
8661847f8eSopenharmony_ci     *
8761847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
8861847f8eSopenharmony_ci     * @crossplatform
8961847f8eSopenharmony_ci     * @atomicservice
9061847f8eSopenharmony_ci     * @since 11
9161847f8eSopenharmony_ci     */
9261847f8eSopenharmony_ci    HIGH = 0,
9361847f8eSopenharmony_ci
9461847f8eSopenharmony_ci    /**
9561847f8eSopenharmony_ci     * set task priority to medium.
9661847f8eSopenharmony_ci     *
9761847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
9861847f8eSopenharmony_ci     * @since 9
9961847f8eSopenharmony_ci     */
10061847f8eSopenharmony_ci    /**
10161847f8eSopenharmony_ci     * set task priority to medium.
10261847f8eSopenharmony_ci     *
10361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
10461847f8eSopenharmony_ci     * @crossplatform
10561847f8eSopenharmony_ci     * @since 10
10661847f8eSopenharmony_ci     */
10761847f8eSopenharmony_ci    /**
10861847f8eSopenharmony_ci     * set task priority to medium.
10961847f8eSopenharmony_ci     *
11061847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
11161847f8eSopenharmony_ci     * @crossplatform
11261847f8eSopenharmony_ci     * @atomicservice
11361847f8eSopenharmony_ci     * @since 11
11461847f8eSopenharmony_ci     */
11561847f8eSopenharmony_ci    MEDIUM = 1,
11661847f8eSopenharmony_ci
11761847f8eSopenharmony_ci    /**
11861847f8eSopenharmony_ci     * set task priority to low.
11961847f8eSopenharmony_ci     *
12061847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
12161847f8eSopenharmony_ci     * @since 9
12261847f8eSopenharmony_ci     */
12361847f8eSopenharmony_ci    /**
12461847f8eSopenharmony_ci     * set task priority to low.
12561847f8eSopenharmony_ci     *
12661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
12761847f8eSopenharmony_ci     * @crossplatform
12861847f8eSopenharmony_ci     * @since 10
12961847f8eSopenharmony_ci     */
13061847f8eSopenharmony_ci    /**
13161847f8eSopenharmony_ci     * set task priority to low.
13261847f8eSopenharmony_ci     *
13361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
13461847f8eSopenharmony_ci     * @crossplatform
13561847f8eSopenharmony_ci     * @atomicservice
13661847f8eSopenharmony_ci     * @since 11
13761847f8eSopenharmony_ci     */
13861847f8eSopenharmony_ci    LOW = 2,
13961847f8eSopenharmony_ci    /**
14061847f8eSopenharmony_ci     * set task priority to idle.
14161847f8eSopenharmony_ci     *
14261847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
14361847f8eSopenharmony_ci     * @crossplatform
14461847f8eSopenharmony_ci     * @atomicservice
14561847f8eSopenharmony_ci     * @since 12
14661847f8eSopenharmony_ci     */
14761847f8eSopenharmony_ci    IDLE = 3
14861847f8eSopenharmony_ci  }
14961847f8eSopenharmony_ci
15061847f8eSopenharmony_ci  /**
15161847f8eSopenharmony_ci   * Indicates the type of callback to be registered.
15261847f8eSopenharmony_ci   *
15361847f8eSopenharmony_ci   * @typedef { function } CallbackFunction
15461847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
15561847f8eSopenharmony_ci   * @crossplatform
15661847f8eSopenharmony_ci   * @atomicservice
15761847f8eSopenharmony_ci   * @since 12
15861847f8eSopenharmony_ci   */
15961847f8eSopenharmony_ci  type CallbackFunction = () => void;
16061847f8eSopenharmony_ci
16161847f8eSopenharmony_ci  /**
16261847f8eSopenharmony_ci   * Indicates the type of callback with error code to be registered.
16361847f8eSopenharmony_ci   *
16461847f8eSopenharmony_ci   * @typedef { function } CallbackFunctionWithError
16561847f8eSopenharmony_ci   * @param { Error } e - the error message.
16661847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
16761847f8eSopenharmony_ci   * @crossplatform
16861847f8eSopenharmony_ci   * @atomicservice
16961847f8eSopenharmony_ci   * @since 12
17061847f8eSopenharmony_ci   */
17161847f8eSopenharmony_ci  type CallbackFunctionWithError = (e: Error) => void;
17261847f8eSopenharmony_ci
17361847f8eSopenharmony_ci  /**
17461847f8eSopenharmony_ci   * The Task class provides an interface to create a task.
17561847f8eSopenharmony_ci   *
17661847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
17761847f8eSopenharmony_ci   * @since 9
17861847f8eSopenharmony_ci   */
17961847f8eSopenharmony_ci  /**
18061847f8eSopenharmony_ci   * The Task class provides an interface to create a task.
18161847f8eSopenharmony_ci   *
18261847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
18361847f8eSopenharmony_ci   * @crossplatform
18461847f8eSopenharmony_ci   * @since 10
18561847f8eSopenharmony_ci   */
18661847f8eSopenharmony_ci  /**
18761847f8eSopenharmony_ci   * The Task class provides an interface to create a task.
18861847f8eSopenharmony_ci   *
18961847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
19061847f8eSopenharmony_ci   * @crossplatform
19161847f8eSopenharmony_ci   * @atomicservice
19261847f8eSopenharmony_ci   * @since 11
19361847f8eSopenharmony_ci   */
19461847f8eSopenharmony_ci  class Task {
19561847f8eSopenharmony_ci    /**
19661847f8eSopenharmony_ci     * Create a Task instance.
19761847f8eSopenharmony_ci     *
19861847f8eSopenharmony_ci     * @param { Function } func - func func Concurrent function to execute in taskpool.
19961847f8eSopenharmony_ci     * @param { unknown[] } args - args args The concurrent function arguments.
20061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
20161847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
20261847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
20361847f8eSopenharmony_ci     * @since 9
20461847f8eSopenharmony_ci     */
20561847f8eSopenharmony_ci    /**
20661847f8eSopenharmony_ci     * Create a Task instance.
20761847f8eSopenharmony_ci     *
20861847f8eSopenharmony_ci     * @param { Function } func - func func Concurrent function to execute in taskpool.
20961847f8eSopenharmony_ci     * @param { unknown[] } args - args args The concurrent function arguments.
21061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
21161847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
21261847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
21361847f8eSopenharmony_ci     * @crossplatform
21461847f8eSopenharmony_ci     * @since 10
21561847f8eSopenharmony_ci     */
21661847f8eSopenharmony_ci    /**
21761847f8eSopenharmony_ci     * Create a Task instance.
21861847f8eSopenharmony_ci     *
21961847f8eSopenharmony_ci     * @param { Function } func - func func Concurrent function to execute in taskpool.
22061847f8eSopenharmony_ci     * @param { Object[] } args - args args The concurrent function arguments.
22161847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
22261847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
22361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
22461847f8eSopenharmony_ci     * @crossplatform
22561847f8eSopenharmony_ci     * @atomicservice
22661847f8eSopenharmony_ci     * @since 11
22761847f8eSopenharmony_ci     */
22861847f8eSopenharmony_ci    constructor(func: Function, ...args: Object[]);
22961847f8eSopenharmony_ci
23061847f8eSopenharmony_ci    /**
23161847f8eSopenharmony_ci     * Create a Task instance.
23261847f8eSopenharmony_ci     *
23361847f8eSopenharmony_ci     * @param { string } name - name name The name of Task.
23461847f8eSopenharmony_ci     * @param { Function } func - func func Concurrent function to execute in taskpool.
23561847f8eSopenharmony_ci     * @param { Object[] } args - args args The concurrent function arguments.
23661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
23761847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
23861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
23961847f8eSopenharmony_ci     * @crossplatform
24061847f8eSopenharmony_ci     * @atomicservice
24161847f8eSopenharmony_ci     * @since 11
24261847f8eSopenharmony_ci     */
24361847f8eSopenharmony_ci    constructor(name: string, func: Function, ...args: Object[]);
24461847f8eSopenharmony_ci
24561847f8eSopenharmony_ci    /**
24661847f8eSopenharmony_ci     * Check current running Task is canceled or not.
24761847f8eSopenharmony_ci     *
24861847f8eSopenharmony_ci     * @returns { boolean } Returns {@code true} if current running task is canceled; returns {@code false} otherwise.
24961847f8eSopenharmony_ci     * @static
25061847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
25161847f8eSopenharmony_ci     * @crossplatform
25261847f8eSopenharmony_ci     * @since 10
25361847f8eSopenharmony_ci     */
25461847f8eSopenharmony_ci    /**
25561847f8eSopenharmony_ci     * Check current running Task is canceled or not.
25661847f8eSopenharmony_ci     *
25761847f8eSopenharmony_ci     * @returns { boolean } Returns {@code true} if current running task is canceled; returns {@code false} otherwise.
25861847f8eSopenharmony_ci     * @static
25961847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
26061847f8eSopenharmony_ci     * @crossplatform
26161847f8eSopenharmony_ci     * @atomicservice
26261847f8eSopenharmony_ci     * @since 11
26361847f8eSopenharmony_ci     */
26461847f8eSopenharmony_ci    static isCanceled(): boolean;
26561847f8eSopenharmony_ci
26661847f8eSopenharmony_ci    /**
26761847f8eSopenharmony_ci     * Send data back to the host side and trigger the registered callback
26861847f8eSopenharmony_ci     *
26961847f8eSopenharmony_ci     * @param { Object[] } args - Data to be used as the input parameter of the registered callback.
27061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
27161847f8eSopenharmony_ci     * @throws { BusinessError } 10200006 - An exception occurred during serialization.
27261847f8eSopenharmony_ci     * @throws { BusinessError } 10200022 - The function is not called in the TaskPool thread.
27361847f8eSopenharmony_ci     * @throws { BusinessError } 10200023 - The function is not called in the concurrent function.
27461847f8eSopenharmony_ci     * @throws { BusinessError } 10200024 - The callback is not registered on the host side.
27561847f8eSopenharmony_ci     * @static
27661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
27761847f8eSopenharmony_ci     * @crossplatform
27861847f8eSopenharmony_ci     * @atomicservice
27961847f8eSopenharmony_ci     * @since 11
28061847f8eSopenharmony_ci     */
28161847f8eSopenharmony_ci    static sendData(...args: Object[]): void;
28261847f8eSopenharmony_ci
28361847f8eSopenharmony_ci    /**
28461847f8eSopenharmony_ci     * Set transfer list for this task.
28561847f8eSopenharmony_ci     *
28661847f8eSopenharmony_ci     * @param { ArrayBuffer[] } [transfer] - transfer Transfer list of this task, empty array is default.
28761847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
28861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
28961847f8eSopenharmony_ci     * @crossplatform
29061847f8eSopenharmony_ci     * @since 10
29161847f8eSopenharmony_ci     */
29261847f8eSopenharmony_ci    /**
29361847f8eSopenharmony_ci     * Set transfer list for this task.
29461847f8eSopenharmony_ci     *
29561847f8eSopenharmony_ci     * @param { ArrayBuffer[] } [transfer] - transfer Transfer list of this task, empty array is default.
29661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
29761847f8eSopenharmony_ci     * @throws { BusinessError } 10200029 - An ArrayBuffer cannot be set as both a transfer list and a clone list.
29861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
29961847f8eSopenharmony_ci     * @crossplatform
30061847f8eSopenharmony_ci     * @atomicservice
30161847f8eSopenharmony_ci     * @since 11
30261847f8eSopenharmony_ci     */
30361847f8eSopenharmony_ci    setTransferList(transfer?: ArrayBuffer[]): void;
30461847f8eSopenharmony_ci
30561847f8eSopenharmony_ci    /**
30661847f8eSopenharmony_ci     * Set clone list for this task.
30761847f8eSopenharmony_ci     *
30861847f8eSopenharmony_ci     * @param { Object[] | ArrayBuffer[] } cloneList - Sendable objects or arrayBuffer objects in this list
30961847f8eSopenharmony_ci     * will be transmitted to worker thread in a copy way.
31061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
31161847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
31261847f8eSopenharmony_ci     * 2.Incorrect parameter types;
31361847f8eSopenharmony_ci     * 3.Parameter verification failed.
31461847f8eSopenharmony_ci     * @throws { BusinessError } 10200029 - An ArrayBuffer cannot be set as both a transfer list and a clone list.
31561847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
31661847f8eSopenharmony_ci     * @crossplatform
31761847f8eSopenharmony_ci     * @atomicservice
31861847f8eSopenharmony_ci     * @since 11
31961847f8eSopenharmony_ci     */
32061847f8eSopenharmony_ci    setCloneList(cloneList: Object[] | ArrayBuffer[]): void;
32161847f8eSopenharmony_ci
32261847f8eSopenharmony_ci    /**
32361847f8eSopenharmony_ci     * Register a callback for this task to receive and handle data from the taskpool worker thread.
32461847f8eSopenharmony_ci     *
32561847f8eSopenharmony_ci     * @param { Function } [callback] - Callback to be registered and executed later on the host side.
32661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
32761847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
32861847f8eSopenharmony_ci     * @crossplatform
32961847f8eSopenharmony_ci     * @atomicservice
33061847f8eSopenharmony_ci     * @since 11
33161847f8eSopenharmony_ci     */
33261847f8eSopenharmony_ci    onReceiveData(callback?: Function): void;
33361847f8eSopenharmony_ci
33461847f8eSopenharmony_ci    /**
33561847f8eSopenharmony_ci     * Add dependencies on the task array for this task.
33661847f8eSopenharmony_ci     *
33761847f8eSopenharmony_ci     * @param { Task[] } tasks - tasks tasks An array of dependent tasks.
33861847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
33961847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
34061847f8eSopenharmony_ci     * 2.Incorrect parameter types;
34161847f8eSopenharmony_ci     * 3.Parameter verification failed.
34261847f8eSopenharmony_ci     * @throws { BusinessError } 10200026 - There is a circular dependency.
34361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
34461847f8eSopenharmony_ci     * @crossplatform
34561847f8eSopenharmony_ci     * @atomicservice
34661847f8eSopenharmony_ci     * @since 11
34761847f8eSopenharmony_ci     */
34861847f8eSopenharmony_ci    /**
34961847f8eSopenharmony_ci     * Add dependencies on the task array for this task.
35061847f8eSopenharmony_ci     *
35161847f8eSopenharmony_ci     * @param { Task[] } tasks - An array of dependent tasks.
35261847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
35361847f8eSopenharmony_ci     * <br>1. Mandatory parameters are left unspecified;
35461847f8eSopenharmony_ci     * <br>2. Incorrect parameter types;
35561847f8eSopenharmony_ci     * <br>3. Parameter verification failed.
35661847f8eSopenharmony_ci     * @throws { BusinessError } 10200026 - There is a circular dependency.
35761847f8eSopenharmony_ci     * @throws { BusinessError } 10200052 - The periodic task cannot have a dependency.
35861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
35961847f8eSopenharmony_ci     * @crossplatform
36061847f8eSopenharmony_ci     * @atomicservice
36161847f8eSopenharmony_ci     * @since 12
36261847f8eSopenharmony_ci     */
36361847f8eSopenharmony_ci    addDependency(...tasks: Task[]): void;
36461847f8eSopenharmony_ci
36561847f8eSopenharmony_ci    /**
36661847f8eSopenharmony_ci     * Remove dependencies on the task array for this task.
36761847f8eSopenharmony_ci     *
36861847f8eSopenharmony_ci     * @param { Task[] } tasks - tasks tasks An array of dependent tasks.
36961847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
37061847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
37161847f8eSopenharmony_ci     * 2.Incorrect parameter types;
37261847f8eSopenharmony_ci     * 3.Parameter verification failed.
37361847f8eSopenharmony_ci     * @throws { BusinessError } 10200027 - The dependency does not exist.
37461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
37561847f8eSopenharmony_ci     * @crossplatform
37661847f8eSopenharmony_ci     * @atomicservice
37761847f8eSopenharmony_ci     * @since 11
37861847f8eSopenharmony_ci     */
37961847f8eSopenharmony_ci    /**
38061847f8eSopenharmony_ci     * Remove dependencies on the task array for this task.
38161847f8eSopenharmony_ci     *
38261847f8eSopenharmony_ci     * @param { Task[] } tasks - An array of dependent tasks.
38361847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
38461847f8eSopenharmony_ci     * <br>1. Mandatory parameters are left unspecified;
38561847f8eSopenharmony_ci     * <br>2. Incorrect parameter types;
38661847f8eSopenharmony_ci     * <br>3. Parameter verification failed.
38761847f8eSopenharmony_ci     * @throws { BusinessError } 10200027 - The dependency does not exist.
38861847f8eSopenharmony_ci     * @throws { BusinessError } 10200052 - The periodic task cannot have a dependency.
38961847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
39061847f8eSopenharmony_ci     * @crossplatform
39161847f8eSopenharmony_ci     * @atomicservice
39261847f8eSopenharmony_ci     * @since 12
39361847f8eSopenharmony_ci     */
39461847f8eSopenharmony_ci    removeDependency(...tasks: Task[]): void;
39561847f8eSopenharmony_ci
39661847f8eSopenharmony_ci    /**
39761847f8eSopenharmony_ci     * Register a callback and call it when the task is enqueued.
39861847f8eSopenharmony_ci     *
39961847f8eSopenharmony_ci     * @param { CallbackFunction } [callback] - Callback to be registered and executed later on the host side.
40061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
40161847f8eSopenharmony_ci     * @throws { BusinessError } 10200034 - The executed task does not support the registration of listeners.
40261847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
40361847f8eSopenharmony_ci     * @crossplatform
40461847f8eSopenharmony_ci     * @atomicservice
40561847f8eSopenharmony_ci     * @since 12
40661847f8eSopenharmony_ci     */
40761847f8eSopenharmony_ci    onEnqueued(callback: CallbackFunction): void;
40861847f8eSopenharmony_ci
40961847f8eSopenharmony_ci    /**
41061847f8eSopenharmony_ci     * Register a callback and call it when the task before execute.
41161847f8eSopenharmony_ci     *
41261847f8eSopenharmony_ci     * @param { CallbackFunction } [callback] - Callback to be registered and executed later on the host side.
41361847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
41461847f8eSopenharmony_ci     * @throws { BusinessError } 10200034 - The executed task does not support the registration of listeners.
41561847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
41661847f8eSopenharmony_ci     * @crossplatform
41761847f8eSopenharmony_ci     * @atomicservice
41861847f8eSopenharmony_ci     * @since 12
41961847f8eSopenharmony_ci     */
42061847f8eSopenharmony_ci    onStartExecution(callback: CallbackFunction): void;
42161847f8eSopenharmony_ci
42261847f8eSopenharmony_ci    /**
42361847f8eSopenharmony_ci     * Register a callback and call it when the task fails to execute.
42461847f8eSopenharmony_ci     *
42561847f8eSopenharmony_ci     * @param { CallbackFunctionWithError } [callback] - Callback to be registered and executed later on the host side.
42661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
42761847f8eSopenharmony_ci     * @throws { BusinessError } 10200034 - The executed task does not support the registration of listeners.
42861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
42961847f8eSopenharmony_ci     * @crossplatform
43061847f8eSopenharmony_ci     * @atomicservice
43161847f8eSopenharmony_ci     * @since 12
43261847f8eSopenharmony_ci     */
43361847f8eSopenharmony_ci    onExecutionFailed(callback: CallbackFunctionWithError): void;
43461847f8eSopenharmony_ci
43561847f8eSopenharmony_ci    /**
43661847f8eSopenharmony_ci     * Register a callback and call it when the task successfully executes.
43761847f8eSopenharmony_ci     *
43861847f8eSopenharmony_ci     * @param { CallbackFunction } [callback] - Callback to be registered and executed later on the host side.
43961847f8eSopenharmony_ci     * @throws { BusinessError } 401 - The input parameters are invalid.
44061847f8eSopenharmony_ci     * @throws { BusinessError } 10200034 - The executed task does not support the registration of listeners.
44161847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
44261847f8eSopenharmony_ci     * @crossplatform
44361847f8eSopenharmony_ci     * @atomicservice
44461847f8eSopenharmony_ci     * @since 12
44561847f8eSopenharmony_ci     */
44661847f8eSopenharmony_ci    onExecutionSucceeded(callback: CallbackFunction): void;
44761847f8eSopenharmony_ci
44861847f8eSopenharmony_ci    /**
44961847f8eSopenharmony_ci     * Check if the task has been completed.
45061847f8eSopenharmony_ci     *
45161847f8eSopenharmony_ci     * @returns { boolean } Returns {@code true} if the task has been completed; returns {@code false} otherwise.
45261847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
45361847f8eSopenharmony_ci     * @crossplatform
45461847f8eSopenharmony_ci     * @atomicservice
45561847f8eSopenharmony_ci     * @since 12
45661847f8eSopenharmony_ci     */
45761847f8eSopenharmony_ci    isDone(): boolean;
45861847f8eSopenharmony_ci
45961847f8eSopenharmony_ci    /**
46061847f8eSopenharmony_ci     * Concurrent function to execute in taskpool.
46161847f8eSopenharmony_ci     *
46261847f8eSopenharmony_ci     * @type { Function }
46361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
46461847f8eSopenharmony_ci     * @since 9
46561847f8eSopenharmony_ci     */
46661847f8eSopenharmony_ci    /**
46761847f8eSopenharmony_ci     * Concurrent function to execute in taskpool.
46861847f8eSopenharmony_ci     *
46961847f8eSopenharmony_ci     * @type { Function }
47061847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
47161847f8eSopenharmony_ci     * @crossplatform
47261847f8eSopenharmony_ci     * @since 10
47361847f8eSopenharmony_ci     */
47461847f8eSopenharmony_ci    /**
47561847f8eSopenharmony_ci     * Concurrent function to execute in taskpool.
47661847f8eSopenharmony_ci     *
47761847f8eSopenharmony_ci     * @type { Function }
47861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
47961847f8eSopenharmony_ci     * @crossplatform
48061847f8eSopenharmony_ci     * @atomicservice
48161847f8eSopenharmony_ci     * @since 11
48261847f8eSopenharmony_ci     */
48361847f8eSopenharmony_ci    function: Function;
48461847f8eSopenharmony_ci
48561847f8eSopenharmony_ci    /**
48661847f8eSopenharmony_ci     * The concurrent function arguments.
48761847f8eSopenharmony_ci     *
48861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
48961847f8eSopenharmony_ci     * @since 9
49061847f8eSopenharmony_ci     */
49161847f8eSopenharmony_ci    /**
49261847f8eSopenharmony_ci     * The concurrent function arguments.
49361847f8eSopenharmony_ci     *
49461847f8eSopenharmony_ci     * @type { ?unknown[] }
49561847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
49661847f8eSopenharmony_ci     * @crossplatform
49761847f8eSopenharmony_ci     * @since 10
49861847f8eSopenharmony_ci     */
49961847f8eSopenharmony_ci    /**
50061847f8eSopenharmony_ci     * The concurrent function arguments.
50161847f8eSopenharmony_ci     *
50261847f8eSopenharmony_ci     * @type { ?Object[] }
50361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
50461847f8eSopenharmony_ci     * @crossplatform
50561847f8eSopenharmony_ci     * @atomicservice
50661847f8eSopenharmony_ci     * @since 11
50761847f8eSopenharmony_ci     */
50861847f8eSopenharmony_ci    arguments?: Object[];
50961847f8eSopenharmony_ci
51061847f8eSopenharmony_ci    /**
51161847f8eSopenharmony_ci     * Task name.
51261847f8eSopenharmony_ci     *
51361847f8eSopenharmony_ci     * @type { string }
51461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
51561847f8eSopenharmony_ci     * @crossplatform
51661847f8eSopenharmony_ci     * @atomicservice
51761847f8eSopenharmony_ci     * @since 11
51861847f8eSopenharmony_ci     */
51961847f8eSopenharmony_ci    name: string;
52061847f8eSopenharmony_ci
52161847f8eSopenharmony_ci    /**
52261847f8eSopenharmony_ci     * Total duration of task execution.
52361847f8eSopenharmony_ci     *
52461847f8eSopenharmony_ci     * @type { number }
52561847f8eSopenharmony_ci     * @default 0
52661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
52761847f8eSopenharmony_ci     * @crossplatform
52861847f8eSopenharmony_ci     * @atomicservice
52961847f8eSopenharmony_ci     * @since 11
53061847f8eSopenharmony_ci     */
53161847f8eSopenharmony_ci    totalDuration: number;
53261847f8eSopenharmony_ci
53361847f8eSopenharmony_ci    /**
53461847f8eSopenharmony_ci     * IO duration of task execution.
53561847f8eSopenharmony_ci     *
53661847f8eSopenharmony_ci     * @type { number }
53761847f8eSopenharmony_ci     * @default 0
53861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
53961847f8eSopenharmony_ci     * @crossplatform
54061847f8eSopenharmony_ci     * @atomicservice
54161847f8eSopenharmony_ci     * @since 11
54261847f8eSopenharmony_ci     */
54361847f8eSopenharmony_ci    ioDuration: number;
54461847f8eSopenharmony_ci
54561847f8eSopenharmony_ci    /**
54661847f8eSopenharmony_ci     * CPU duration of task execution.
54761847f8eSopenharmony_ci     *
54861847f8eSopenharmony_ci     * @type { number }
54961847f8eSopenharmony_ci     * @default 0
55061847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
55161847f8eSopenharmony_ci     * @crossplatform
55261847f8eSopenharmony_ci     * @atomicservice
55361847f8eSopenharmony_ci     * @since 11
55461847f8eSopenharmony_ci     */
55561847f8eSopenharmony_ci    cpuDuration: number;
55661847f8eSopenharmony_ci  }
55761847f8eSopenharmony_ci
55861847f8eSopenharmony_ci  /**
55961847f8eSopenharmony_ci   * The TaskGroup class provides an interface to create a task group.
56061847f8eSopenharmony_ci   *
56161847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
56261847f8eSopenharmony_ci   * @crossplatform
56361847f8eSopenharmony_ci   * @since 10
56461847f8eSopenharmony_ci   */
56561847f8eSopenharmony_ci  /**
56661847f8eSopenharmony_ci   * The TaskGroup class provides an interface to create a task group.
56761847f8eSopenharmony_ci   *
56861847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
56961847f8eSopenharmony_ci   * @crossplatform
57061847f8eSopenharmony_ci   * @atomicservice
57161847f8eSopenharmony_ci   * @since 11
57261847f8eSopenharmony_ci   */
57361847f8eSopenharmony_ci  class TaskGroup {
57461847f8eSopenharmony_ci    /**
57561847f8eSopenharmony_ci     * Create a TaskGroup instance.
57661847f8eSopenharmony_ci     *
57761847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
57861847f8eSopenharmony_ci     * @crossplatform
57961847f8eSopenharmony_ci     * @since 10
58061847f8eSopenharmony_ci     */
58161847f8eSopenharmony_ci    /**
58261847f8eSopenharmony_ci     * Create a TaskGroup instance.
58361847f8eSopenharmony_ci     *
58461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
58561847f8eSopenharmony_ci     * @crossplatform
58661847f8eSopenharmony_ci     * @atomicservice
58761847f8eSopenharmony_ci     * @since 11
58861847f8eSopenharmony_ci     */
58961847f8eSopenharmony_ci    constructor();
59061847f8eSopenharmony_ci
59161847f8eSopenharmony_ci    /**
59261847f8eSopenharmony_ci     * Create a TaskGroup instance.
59361847f8eSopenharmony_ci     *
59461847f8eSopenharmony_ci     * @param { string } name - name name The name of taskGroup.
59561847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
59661847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
59761847f8eSopenharmony_ci     * 2.Incorrect parameter types;
59861847f8eSopenharmony_ci     * 3.Parameter verification failed.
59961847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
60061847f8eSopenharmony_ci     * @crossplatform
60161847f8eSopenharmony_ci     * @atomicservice
60261847f8eSopenharmony_ci     * @since 11
60361847f8eSopenharmony_ci     */
60461847f8eSopenharmony_ci    constructor(name: string);
60561847f8eSopenharmony_ci
60661847f8eSopenharmony_ci    /**
60761847f8eSopenharmony_ci     * Add a Concurrent function into task group.
60861847f8eSopenharmony_ci     *
60961847f8eSopenharmony_ci     * @param { Function } func - func func Concurrent function to add in task group.
61061847f8eSopenharmony_ci     * @param { unknown[] } args - args args The concurrent function arguments.
61161847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
61261847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
61361847f8eSopenharmony_ci     * 2.Incorrect parameter types;
61461847f8eSopenharmony_ci     * 3.Parameter verification failed.
61561847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
61661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
61761847f8eSopenharmony_ci     * @crossplatform
61861847f8eSopenharmony_ci     * @since 10
61961847f8eSopenharmony_ci     */
62061847f8eSopenharmony_ci    /**
62161847f8eSopenharmony_ci     * Add a Concurrent function into task group.
62261847f8eSopenharmony_ci     *
62361847f8eSopenharmony_ci     * @param { Function } func - func func Concurrent function to add in task group.
62461847f8eSopenharmony_ci     * @param { Object[] } args - args args The concurrent function arguments.
62561847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
62661847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
62761847f8eSopenharmony_ci     * 2.Incorrect parameter types;
62861847f8eSopenharmony_ci     * 3.Parameter verification failed.
62961847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
63061847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
63161847f8eSopenharmony_ci     * @crossplatform
63261847f8eSopenharmony_ci     * @atomicservice
63361847f8eSopenharmony_ci     * @since 11
63461847f8eSopenharmony_ci     */
63561847f8eSopenharmony_ci    addTask(func: Function, ...args: Object[]): void;
63661847f8eSopenharmony_ci
63761847f8eSopenharmony_ci    /**
63861847f8eSopenharmony_ci     * Add a Task into TaskGroup.
63961847f8eSopenharmony_ci     *
64061847f8eSopenharmony_ci     * @param { Task } task - task task The task want to add in task group.
64161847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
64261847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
64361847f8eSopenharmony_ci     * 2.Incorrect parameter types;
64461847f8eSopenharmony_ci     * 3.Parameter verification failed.
64561847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
64661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
64761847f8eSopenharmony_ci     * @crossplatform
64861847f8eSopenharmony_ci     * @since 10
64961847f8eSopenharmony_ci     */
65061847f8eSopenharmony_ci    /**
65161847f8eSopenharmony_ci     * Add a Task into TaskGroup.
65261847f8eSopenharmony_ci     *
65361847f8eSopenharmony_ci     * @param { Task } task - task task The task want to add in task group.
65461847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
65561847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
65661847f8eSopenharmony_ci     * 2.Incorrect parameter types;
65761847f8eSopenharmony_ci     * 3.Parameter verification failed.
65861847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
65961847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
66061847f8eSopenharmony_ci     * @crossplatform
66161847f8eSopenharmony_ci     * @atomicservice
66261847f8eSopenharmony_ci     * @since 11
66361847f8eSopenharmony_ci     */
66461847f8eSopenharmony_ci    /**
66561847f8eSopenharmony_ci     * Add a Task into TaskGroup.
66661847f8eSopenharmony_ci     *
66761847f8eSopenharmony_ci     * @param { Task } task - The task want to add in task group.
66861847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
66961847f8eSopenharmony_ci     * <br>1. Mandatory parameters are left unspecified;
67061847f8eSopenharmony_ci     * <br>2. Incorrect parameter types;
67161847f8eSopenharmony_ci     * <br>3. Parameter verification failed.
67261847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
67361847f8eSopenharmony_ci     * @throws { BusinessError } 10200051 - The periodic task cannot be executed again.
67461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
67561847f8eSopenharmony_ci     * @crossplatform
67661847f8eSopenharmony_ci     * @atomicservice
67761847f8eSopenharmony_ci     * @since 12
67861847f8eSopenharmony_ci     */
67961847f8eSopenharmony_ci    addTask(task: Task): void;
68061847f8eSopenharmony_ci
68161847f8eSopenharmony_ci    /**
68261847f8eSopenharmony_ci     * TaskGroup name.
68361847f8eSopenharmony_ci     *
68461847f8eSopenharmony_ci     * @type { string }
68561847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
68661847f8eSopenharmony_ci     * @crossplatform
68761847f8eSopenharmony_ci     * @atomicservice
68861847f8eSopenharmony_ci     * @since 11
68961847f8eSopenharmony_ci     */
69061847f8eSopenharmony_ci    name: string;
69161847f8eSopenharmony_ci  }
69261847f8eSopenharmony_ci
69361847f8eSopenharmony_ci  /**
69461847f8eSopenharmony_ci   * The SequenceRunner class provides an interface to create a task sequence runner.
69561847f8eSopenharmony_ci   *
69661847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
69761847f8eSopenharmony_ci   * @crossplatform
69861847f8eSopenharmony_ci   * @atomicservice
69961847f8eSopenharmony_ci   * @since 11
70061847f8eSopenharmony_ci   */
70161847f8eSopenharmony_ci  class SequenceRunner {
70261847f8eSopenharmony_ci    /**
70361847f8eSopenharmony_ci     * Create a SequenceRunner instance.
70461847f8eSopenharmony_ci     *
70561847f8eSopenharmony_ci     * @param { Priority } priority - Task execution priority, MEDIUM is default.
70661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
70761847f8eSopenharmony_ci     * 1.Incorrect parameter types;
70861847f8eSopenharmony_ci     * 2.Parameter verification failed.
70961847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
71061847f8eSopenharmony_ci     * @crossplatform
71161847f8eSopenharmony_ci     * @atomicservice
71261847f8eSopenharmony_ci     * @since 11
71361847f8eSopenharmony_ci     */
71461847f8eSopenharmony_ci    constructor(priority?: Priority);
71561847f8eSopenharmony_ci
71661847f8eSopenharmony_ci    /**
71761847f8eSopenharmony_ci     * Create or get a SequenceRunner instance by name.
71861847f8eSopenharmony_ci     *
71961847f8eSopenharmony_ci     * @param { string } name - SequenceRunner name, if name is the same, will return the same SequenceRunner.
72061847f8eSopenharmony_ci     * @param { Priority } priority - Task execution priority, MEDIUM is default.
72161847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.
72261847f8eSopenharmony_ci     * <br>2. Incorrect parameter types. 3.Parameter verification failed.
72361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
72461847f8eSopenharmony_ci     * @crossplatform
72561847f8eSopenharmony_ci     * @atomicservice
72661847f8eSopenharmony_ci     * @since 12
72761847f8eSopenharmony_ci     */
72861847f8eSopenharmony_ci    constructor(name: string, priority?: Priority);
72961847f8eSopenharmony_ci
73061847f8eSopenharmony_ci    /**
73161847f8eSopenharmony_ci     * Execute a concurrent function.
73261847f8eSopenharmony_ci     *
73361847f8eSopenharmony_ci     * @param { Task } task - The task want to execute.
73461847f8eSopenharmony_ci     * @returns { Promise<Object> }
73561847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
73661847f8eSopenharmony_ci     * 1.Mandatory parameters are left unspecified;
73761847f8eSopenharmony_ci     * 2.Incorrect parameter types;
73861847f8eSopenharmony_ci     * @throws { BusinessError } 10200003 - Worker initialization failed.
73961847f8eSopenharmony_ci     * @throws { BusinessError } 10200006 - An exception occurred during serialization.
74061847f8eSopenharmony_ci     * @throws { BusinessError } 10200025 - The task to be added to SequenceRunner has dependent tasks.
74161847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
74261847f8eSopenharmony_ci     * @crossplatform
74361847f8eSopenharmony_ci     * @atomicservice
74461847f8eSopenharmony_ci     * @since 11
74561847f8eSopenharmony_ci     */
74661847f8eSopenharmony_ci    /**
74761847f8eSopenharmony_ci     * Execute a concurrent function.
74861847f8eSopenharmony_ci     *
74961847f8eSopenharmony_ci     * @param { Task } task - The task want to execute.
75061847f8eSopenharmony_ci     * @returns { Promise<Object> }
75161847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
75261847f8eSopenharmony_ci     * <br>1. Mandatory parameters are left unspecified;
75361847f8eSopenharmony_ci     * <br>2. Incorrect parameter types;
75461847f8eSopenharmony_ci     * @throws { BusinessError } 10200006 - An exception occurred during serialization.
75561847f8eSopenharmony_ci     * @throws { BusinessError } 10200025 - dependent task not allowed.
75661847f8eSopenharmony_ci     * @throws { BusinessError } 10200051 - The periodic task cannot be executed again.
75761847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
75861847f8eSopenharmony_ci     * @crossplatform
75961847f8eSopenharmony_ci     * @atomicservice
76061847f8eSopenharmony_ci     * @since 12
76161847f8eSopenharmony_ci     */
76261847f8eSopenharmony_ci    execute(task: Task): Promise<Object>;
76361847f8eSopenharmony_ci  }
76461847f8eSopenharmony_ci
76561847f8eSopenharmony_ci  /**
76661847f8eSopenharmony_ci   * The LongTask class provides an interface to create a task that has no upper limit on execution time.
76761847f8eSopenharmony_ci   *
76861847f8eSopenharmony_ci   * @extends Task
76961847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
77061847f8eSopenharmony_ci   * @crossplatform
77161847f8eSopenharmony_ci   * @atomicservice
77261847f8eSopenharmony_ci   * @since 12
77361847f8eSopenharmony_ci   */
77461847f8eSopenharmony_ci  class LongTask extends Task {
77561847f8eSopenharmony_ci  }
77661847f8eSopenharmony_ci
77761847f8eSopenharmony_ci  /**
77861847f8eSopenharmony_ci   * The GenericsTask class provides an interface to create a task with generics.
77961847f8eSopenharmony_ci   *
78061847f8eSopenharmony_ci   * @extends Task
78161847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
78261847f8eSopenharmony_ci   * @atomicservice
78361847f8eSopenharmony_ci   * @since 13
78461847f8eSopenharmony_ci   */
78561847f8eSopenharmony_ci  class GenericsTask<A extends Array<Object>, R> extends Task {
78661847f8eSopenharmony_ci    /**
78761847f8eSopenharmony_ci     * Create a GenericsTask instance.
78861847f8eSopenharmony_ci     *
78961847f8eSopenharmony_ci     * @param { (...args: A) => R | Promise<R> } func - Concurrent function to execute in taskpool.
79061847f8eSopenharmony_ci     * @param { A } args - The concurrent function arguments.
79161847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
79261847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
79361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
79461847f8eSopenharmony_ci     * @atomicservice
79561847f8eSopenharmony_ci     * @since 13
79661847f8eSopenharmony_ci     */
79761847f8eSopenharmony_ci    constructor(func: (...args: A) => R | Promise<R>, ...args: A);
79861847f8eSopenharmony_ci
79961847f8eSopenharmony_ci    /**
80061847f8eSopenharmony_ci     * Create a GenericsTask instance.
80161847f8eSopenharmony_ci     *
80261847f8eSopenharmony_ci     * @param { string } name - The name of GenericsTask.
80361847f8eSopenharmony_ci     * @param { (...args: A) => R | Promise<R> } func - Concurrent function to execute in taskpool.
80461847f8eSopenharmony_ci     * @param { A } args - The concurrent function arguments.
80561847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
80661847f8eSopenharmony_ci     * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
80761847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
80861847f8eSopenharmony_ci     * @atomicservice
80961847f8eSopenharmony_ci     * @since 13
81061847f8eSopenharmony_ci     */
81161847f8eSopenharmony_ci    constructor(name: string, func: (...args: A) => R | Promise<R>, ...args: A);
81261847f8eSopenharmony_ci  }
81361847f8eSopenharmony_ci
81461847f8eSopenharmony_ci  /**
81561847f8eSopenharmony_ci   * The State defines the task state.
81661847f8eSopenharmony_ci   *
81761847f8eSopenharmony_ci   * @enum { number } State
81861847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
81961847f8eSopenharmony_ci   * @crossplatform
82061847f8eSopenharmony_ci   * @since 10
82161847f8eSopenharmony_ci   */
82261847f8eSopenharmony_ci  /**
82361847f8eSopenharmony_ci   * The State defines the task state.
82461847f8eSopenharmony_ci   *
82561847f8eSopenharmony_ci   * @enum { number } State
82661847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
82761847f8eSopenharmony_ci   * @crossplatform
82861847f8eSopenharmony_ci   * @atomicservice
82961847f8eSopenharmony_ci   * @since 11
83061847f8eSopenharmony_ci   */
83161847f8eSopenharmony_ci  enum State {
83261847f8eSopenharmony_ci    /**
83361847f8eSopenharmony_ci     * the task state is waiting.
83461847f8eSopenharmony_ci     *
83561847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
83661847f8eSopenharmony_ci     * @crossplatform
83761847f8eSopenharmony_ci     * @since 10
83861847f8eSopenharmony_ci     */
83961847f8eSopenharmony_ci    /**
84061847f8eSopenharmony_ci     * the task state is waiting.
84161847f8eSopenharmony_ci     *
84261847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
84361847f8eSopenharmony_ci     * @crossplatform
84461847f8eSopenharmony_ci     * @atomicservice
84561847f8eSopenharmony_ci     * @since 11
84661847f8eSopenharmony_ci     */
84761847f8eSopenharmony_ci    WAITING = 1,
84861847f8eSopenharmony_ci
84961847f8eSopenharmony_ci    /**
85061847f8eSopenharmony_ci     * the task state is running.
85161847f8eSopenharmony_ci     *
85261847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
85361847f8eSopenharmony_ci     * @crossplatform
85461847f8eSopenharmony_ci     * @since 10
85561847f8eSopenharmony_ci     */
85661847f8eSopenharmony_ci    /**
85761847f8eSopenharmony_ci     * the task state is running.
85861847f8eSopenharmony_ci     *
85961847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
86061847f8eSopenharmony_ci     * @crossplatform
86161847f8eSopenharmony_ci     * @atomicservice
86261847f8eSopenharmony_ci     * @since 11
86361847f8eSopenharmony_ci     */
86461847f8eSopenharmony_ci    RUNNING = 2,
86561847f8eSopenharmony_ci
86661847f8eSopenharmony_ci    /**
86761847f8eSopenharmony_ci     * the task state is canceled.
86861847f8eSopenharmony_ci     *
86961847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
87061847f8eSopenharmony_ci     * @crossplatform
87161847f8eSopenharmony_ci     * @since 10
87261847f8eSopenharmony_ci     */
87361847f8eSopenharmony_ci    /**
87461847f8eSopenharmony_ci     * the task state is canceled.
87561847f8eSopenharmony_ci     *
87661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
87761847f8eSopenharmony_ci     * @crossplatform
87861847f8eSopenharmony_ci     * @atomicservice
87961847f8eSopenharmony_ci     * @since 11
88061847f8eSopenharmony_ci     */
88161847f8eSopenharmony_ci    CANCELED = 3
88261847f8eSopenharmony_ci  }
88361847f8eSopenharmony_ci
88461847f8eSopenharmony_ci  /**
88561847f8eSopenharmony_ci   * Indicates the internal information of the worker thread.
88661847f8eSopenharmony_ci   *
88761847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
88861847f8eSopenharmony_ci   * @crossplatform
88961847f8eSopenharmony_ci   * @since 10
89061847f8eSopenharmony_ci   */
89161847f8eSopenharmony_ci  /**
89261847f8eSopenharmony_ci   * Indicates the internal information of the worker thread.
89361847f8eSopenharmony_ci   *
89461847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
89561847f8eSopenharmony_ci   * @crossplatform
89661847f8eSopenharmony_ci   * @atomicservice
89761847f8eSopenharmony_ci   * @since 11
89861847f8eSopenharmony_ci   */
89961847f8eSopenharmony_ci  class TaskInfo {
90061847f8eSopenharmony_ci    /**
90161847f8eSopenharmony_ci     * Task identity.
90261847f8eSopenharmony_ci     *
90361847f8eSopenharmony_ci     * @type { number }
90461847f8eSopenharmony_ci     * @default 0
90561847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
90661847f8eSopenharmony_ci     * @crossplatform
90761847f8eSopenharmony_ci     * @since 10
90861847f8eSopenharmony_ci     */
90961847f8eSopenharmony_ci    /**
91061847f8eSopenharmony_ci     * Task identity.
91161847f8eSopenharmony_ci     *
91261847f8eSopenharmony_ci     * @type { number }
91361847f8eSopenharmony_ci     * @default 0
91461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
91561847f8eSopenharmony_ci     * @crossplatform
91661847f8eSopenharmony_ci     * @atomicservice
91761847f8eSopenharmony_ci     * @since 11
91861847f8eSopenharmony_ci     */
91961847f8eSopenharmony_ci    taskId: number;
92061847f8eSopenharmony_ci
92161847f8eSopenharmony_ci    /**
92261847f8eSopenharmony_ci     * Task state.
92361847f8eSopenharmony_ci     *
92461847f8eSopenharmony_ci     * @type { State }
92561847f8eSopenharmony_ci     * @default State::WAITING
92661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
92761847f8eSopenharmony_ci     * @crossplatform
92861847f8eSopenharmony_ci     * @since 10
92961847f8eSopenharmony_ci     */
93061847f8eSopenharmony_ci    /**
93161847f8eSopenharmony_ci     * Task state.
93261847f8eSopenharmony_ci     *
93361847f8eSopenharmony_ci     * @type { State }
93461847f8eSopenharmony_ci     * @default State::WAITING
93561847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
93661847f8eSopenharmony_ci     * @crossplatform
93761847f8eSopenharmony_ci     * @atomicservice
93861847f8eSopenharmony_ci     * @since 11
93961847f8eSopenharmony_ci     */
94061847f8eSopenharmony_ci    state: State;
94161847f8eSopenharmony_ci
94261847f8eSopenharmony_ci    /**
94361847f8eSopenharmony_ci     * Duration of task execution.
94461847f8eSopenharmony_ci     *
94561847f8eSopenharmony_ci     * @type { ?number }
94661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
94761847f8eSopenharmony_ci     * @crossplatform
94861847f8eSopenharmony_ci     * @since 10
94961847f8eSopenharmony_ci     */
95061847f8eSopenharmony_ci    /**
95161847f8eSopenharmony_ci     * Duration of task execution.
95261847f8eSopenharmony_ci     *
95361847f8eSopenharmony_ci     * @type { ?number }
95461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
95561847f8eSopenharmony_ci     * @crossplatform
95661847f8eSopenharmony_ci     * @atomicservice
95761847f8eSopenharmony_ci     * @since 11
95861847f8eSopenharmony_ci     */
95961847f8eSopenharmony_ci    duration?: number;
96061847f8eSopenharmony_ci
96161847f8eSopenharmony_ci    /**
96261847f8eSopenharmony_ci     * Task name.
96361847f8eSopenharmony_ci     *
96461847f8eSopenharmony_ci     * @type { string }
96561847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
96661847f8eSopenharmony_ci     * @crossplatform
96761847f8eSopenharmony_ci     * @atomicservice
96861847f8eSopenharmony_ci     * @since 12
96961847f8eSopenharmony_ci     */
97061847f8eSopenharmony_ci    name: string;
97161847f8eSopenharmony_ci  }
97261847f8eSopenharmony_ci
97361847f8eSopenharmony_ci  /**
97461847f8eSopenharmony_ci   * Indicates the internal information of the worker thread.
97561847f8eSopenharmony_ci   *
97661847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
97761847f8eSopenharmony_ci   * @crossplatform
97861847f8eSopenharmony_ci   * @since 10
97961847f8eSopenharmony_ci   */
98061847f8eSopenharmony_ci  /**
98161847f8eSopenharmony_ci   * Indicates the internal information of the worker thread.
98261847f8eSopenharmony_ci   *
98361847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
98461847f8eSopenharmony_ci   * @crossplatform
98561847f8eSopenharmony_ci   * @atomicservice
98661847f8eSopenharmony_ci   * @since 11
98761847f8eSopenharmony_ci   */
98861847f8eSopenharmony_ci  class ThreadInfo {
98961847f8eSopenharmony_ci    /**
99061847f8eSopenharmony_ci     * Thread id.
99161847f8eSopenharmony_ci     *
99261847f8eSopenharmony_ci     * @type { number }
99361847f8eSopenharmony_ci     * @default 0
99461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
99561847f8eSopenharmony_ci     * @crossplatform
99661847f8eSopenharmony_ci     * @since 10
99761847f8eSopenharmony_ci     */
99861847f8eSopenharmony_ci    /**
99961847f8eSopenharmony_ci     * Thread id.
100061847f8eSopenharmony_ci     *
100161847f8eSopenharmony_ci     * @type { number }
100261847f8eSopenharmony_ci     * @default 0
100361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
100461847f8eSopenharmony_ci     * @crossplatform
100561847f8eSopenharmony_ci     * @atomicservice
100661847f8eSopenharmony_ci     * @since 11
100761847f8eSopenharmony_ci     */
100861847f8eSopenharmony_ci    tid: number;
100961847f8eSopenharmony_ci
101061847f8eSopenharmony_ci    /**
101161847f8eSopenharmony_ci     * Task id list that running on current thread.
101261847f8eSopenharmony_ci     *
101361847f8eSopenharmony_ci     * @type { ?number[] }
101461847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
101561847f8eSopenharmony_ci     * @crossplatform
101661847f8eSopenharmony_ci     * @since 10
101761847f8eSopenharmony_ci     */
101861847f8eSopenharmony_ci    /**
101961847f8eSopenharmony_ci     * Task id list that running on current thread.
102061847f8eSopenharmony_ci     *
102161847f8eSopenharmony_ci     * @type { ?number[] }
102261847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
102361847f8eSopenharmony_ci     * @crossplatform
102461847f8eSopenharmony_ci     * @atomicservice
102561847f8eSopenharmony_ci     * @since 11
102661847f8eSopenharmony_ci     */
102761847f8eSopenharmony_ci    taskIds?: number[];
102861847f8eSopenharmony_ci
102961847f8eSopenharmony_ci    /**
103061847f8eSopenharmony_ci     * Thread priority.
103161847f8eSopenharmony_ci     *
103261847f8eSopenharmony_ci     * @type { ?Priority }
103361847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
103461847f8eSopenharmony_ci     * @crossplatform
103561847f8eSopenharmony_ci     * @since 10
103661847f8eSopenharmony_ci     */
103761847f8eSopenharmony_ci    /**
103861847f8eSopenharmony_ci     * Thread priority.
103961847f8eSopenharmony_ci     *
104061847f8eSopenharmony_ci     * @type { ?Priority }
104161847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
104261847f8eSopenharmony_ci     * @crossplatform
104361847f8eSopenharmony_ci     * @atomicservice
104461847f8eSopenharmony_ci     * @since 11
104561847f8eSopenharmony_ci     */
104661847f8eSopenharmony_ci    priority?: Priority;
104761847f8eSopenharmony_ci  }
104861847f8eSopenharmony_ci
104961847f8eSopenharmony_ci  /**
105061847f8eSopenharmony_ci   * Indicates the internal information of the taskpool.
105161847f8eSopenharmony_ci   *
105261847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
105361847f8eSopenharmony_ci   * @crossplatform
105461847f8eSopenharmony_ci   * @since 10
105561847f8eSopenharmony_ci   */
105661847f8eSopenharmony_ci  /**
105761847f8eSopenharmony_ci   * Indicates the internal information of the taskpool.
105861847f8eSopenharmony_ci   *
105961847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
106061847f8eSopenharmony_ci   * @crossplatform
106161847f8eSopenharmony_ci   * @atomicservice
106261847f8eSopenharmony_ci   * @since 11
106361847f8eSopenharmony_ci   */
106461847f8eSopenharmony_ci  class TaskPoolInfo {
106561847f8eSopenharmony_ci    /**
106661847f8eSopenharmony_ci     * An array of taskpool thread information.
106761847f8eSopenharmony_ci     *
106861847f8eSopenharmony_ci     * @type { ThreadInfo[] }
106961847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
107061847f8eSopenharmony_ci     * @crossplatform
107161847f8eSopenharmony_ci     * @since 10
107261847f8eSopenharmony_ci     */
107361847f8eSopenharmony_ci    /**
107461847f8eSopenharmony_ci     * An array of taskpool thread information.
107561847f8eSopenharmony_ci     *
107661847f8eSopenharmony_ci     * @type { ThreadInfo[] }
107761847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
107861847f8eSopenharmony_ci     * @crossplatform
107961847f8eSopenharmony_ci     * @atomicservice
108061847f8eSopenharmony_ci     * @since 11
108161847f8eSopenharmony_ci     */
108261847f8eSopenharmony_ci    threadInfos: ThreadInfo[];
108361847f8eSopenharmony_ci
108461847f8eSopenharmony_ci    /**
108561847f8eSopenharmony_ci     * An array of taskpool task information.
108661847f8eSopenharmony_ci     *
108761847f8eSopenharmony_ci     * @type { TaskInfo[] }
108861847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
108961847f8eSopenharmony_ci     * @crossplatform
109061847f8eSopenharmony_ci     * @since 10
109161847f8eSopenharmony_ci     */
109261847f8eSopenharmony_ci    /**
109361847f8eSopenharmony_ci     * An array of taskpool task information.
109461847f8eSopenharmony_ci     *
109561847f8eSopenharmony_ci     * @type { TaskInfo[] }
109661847f8eSopenharmony_ci     * @syscap SystemCapability.Utils.Lang
109761847f8eSopenharmony_ci     * @crossplatform
109861847f8eSopenharmony_ci     * @atomicservice
109961847f8eSopenharmony_ci     * @since 11
110061847f8eSopenharmony_ci     */
110161847f8eSopenharmony_ci    taskInfos: TaskInfo[];
110261847f8eSopenharmony_ci  }
110361847f8eSopenharmony_ci
110461847f8eSopenharmony_ci  /**
110561847f8eSopenharmony_ci   * Execute a concurrent function.
110661847f8eSopenharmony_ci   *
110761847f8eSopenharmony_ci   * @param { Function } func - func func Concurrent function want to execute.
110861847f8eSopenharmony_ci   * @param { unknown[] } args - args args The concurrent function arguments.
110961847f8eSopenharmony_ci   * @returns { Promise<unknown> }
111061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
111161847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
111261847f8eSopenharmony_ci   * 2.Incorrect parameter types;
111361847f8eSopenharmony_ci   * 3.Parameter verification failed.
111461847f8eSopenharmony_ci   * @throws { BusinessError } 10200003 - Worker initialization failed.
111561847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
111661847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
111761847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
111861847f8eSopenharmony_ci   * @since 9
111961847f8eSopenharmony_ci   */
112061847f8eSopenharmony_ci  /**
112161847f8eSopenharmony_ci   * Execute a concurrent function.
112261847f8eSopenharmony_ci   *
112361847f8eSopenharmony_ci   * @param { Function } func - func func Concurrent function want to execute.
112461847f8eSopenharmony_ci   * @param { unknown[] } args - args args The concurrent function arguments.
112561847f8eSopenharmony_ci   * @returns { Promise<unknown> }
112661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
112761847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
112861847f8eSopenharmony_ci   * 2.Incorrect parameter types;
112961847f8eSopenharmony_ci   * 3.Parameter verification failed.
113061847f8eSopenharmony_ci   * @throws { BusinessError } 10200003 - Worker initialization failed.
113161847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
113261847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
113361847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
113461847f8eSopenharmony_ci   * @crossplatform
113561847f8eSopenharmony_ci   * @since 10
113661847f8eSopenharmony_ci   */
113761847f8eSopenharmony_ci  /**
113861847f8eSopenharmony_ci   * Execute a concurrent function.
113961847f8eSopenharmony_ci   *
114061847f8eSopenharmony_ci   * @param { Function } func - func func Concurrent function want to execute.
114161847f8eSopenharmony_ci   * @param { Object[] } args - args args The concurrent function arguments.
114261847f8eSopenharmony_ci   * @returns { Promise<Object> }
114361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
114461847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
114561847f8eSopenharmony_ci   * 2.Incorrect parameter types;
114661847f8eSopenharmony_ci   * 3.Parameter verification failed.
114761847f8eSopenharmony_ci   * @throws { BusinessError } 10200003 - Worker initialization failed.
114861847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
114961847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
115061847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
115161847f8eSopenharmony_ci   * @crossplatform
115261847f8eSopenharmony_ci   * @atomicservice
115361847f8eSopenharmony_ci   * @since 11
115461847f8eSopenharmony_ci   */
115561847f8eSopenharmony_ci  /**
115661847f8eSopenharmony_ci   * Execute a concurrent function.
115761847f8eSopenharmony_ci   *
115861847f8eSopenharmony_ci   * @param { Function } func - func func Concurrent function want to execute.
115961847f8eSopenharmony_ci   * @param { Object[] } args - args args The concurrent function arguments.
116061847f8eSopenharmony_ci   * @returns { Promise<Object> }
116161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
116261847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
116361847f8eSopenharmony_ci   * 2.Incorrect parameter types;
116461847f8eSopenharmony_ci   * 3.Parameter verification failed.
116561847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
116661847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
116761847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
116861847f8eSopenharmony_ci   * @crossplatform
116961847f8eSopenharmony_ci   * @atomicservice
117061847f8eSopenharmony_ci   * @since 12
117161847f8eSopenharmony_ci   */
117261847f8eSopenharmony_ci  function execute(func: Function, ...args: Object[]): Promise<Object>;
117361847f8eSopenharmony_ci
117461847f8eSopenharmony_ci  /**
117561847f8eSopenharmony_ci   * Execute a concurrent function with generics.
117661847f8eSopenharmony_ci   *
117761847f8eSopenharmony_ci   * @param { (...args: A) => R | Promise<R> } func - Concurrent function want to execute.
117861847f8eSopenharmony_ci   * @param { A } args - The concurrent function arguments.
117961847f8eSopenharmony_ci   * @returns { Promise<R> }
118061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
118161847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
118261847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
118361847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
118461847f8eSopenharmony_ci   * @atomicservice
118561847f8eSopenharmony_ci   * @since 13
118661847f8eSopenharmony_ci   */
118761847f8eSopenharmony_ci  function execute<A extends Array<Object>, R>(func: (...args: A) => R | Promise<R>, ...args: A): Promise<R>;
118861847f8eSopenharmony_ci
118961847f8eSopenharmony_ci  /**
119061847f8eSopenharmony_ci   * Execute a concurrent task.
119161847f8eSopenharmony_ci   *
119261847f8eSopenharmony_ci   * @param { Task } task - task task The task want to execute.
119361847f8eSopenharmony_ci   * @param { Priority } [priority] - priority priority Task priority, MEDIUM is default.
119461847f8eSopenharmony_ci   * @returns { Promise<unknown> }
119561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
119661847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
119761847f8eSopenharmony_ci   * 2.Incorrect parameter types;
119861847f8eSopenharmony_ci   * 3.Parameter verification failed.
119961847f8eSopenharmony_ci   * @throws { BusinessError } 10200003 - Worker initialization failed.
120061847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
120161847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
120261847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
120361847f8eSopenharmony_ci   * @since 9
120461847f8eSopenharmony_ci   */
120561847f8eSopenharmony_ci  /**
120661847f8eSopenharmony_ci   * Execute a concurrent task.
120761847f8eSopenharmony_ci   *
120861847f8eSopenharmony_ci   * @param { Task } task - task task The task want to execute.
120961847f8eSopenharmony_ci   * @param { Priority } [priority] - priority priority Task priority, MEDIUM is default.
121061847f8eSopenharmony_ci   * @returns { Promise<unknown> }
121161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
121261847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
121361847f8eSopenharmony_ci   * 2.Incorrect parameter types;
121461847f8eSopenharmony_ci   * 3.Parameter verification failed.
121561847f8eSopenharmony_ci   * @throws { BusinessError } 10200003 - Worker initialization failed.
121661847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
121761847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
121861847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
121961847f8eSopenharmony_ci   * @crossplatform
122061847f8eSopenharmony_ci   * @since 10
122161847f8eSopenharmony_ci   */
122261847f8eSopenharmony_ci  /**
122361847f8eSopenharmony_ci   * Execute a concurrent task.
122461847f8eSopenharmony_ci   *
122561847f8eSopenharmony_ci   * @param { Task } task - task task The task want to execute.
122661847f8eSopenharmony_ci   * @param { Priority } [priority] - priority priority Task priority, MEDIUM is default.
122761847f8eSopenharmony_ci   * @returns { Promise<Object> }
122861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
122961847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
123061847f8eSopenharmony_ci   * 2.Incorrect parameter types;
123161847f8eSopenharmony_ci   * 3.Parameter verification failed.
123261847f8eSopenharmony_ci   * @throws { BusinessError } 10200003 - Worker initialization failed.
123361847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
123461847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
123561847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
123661847f8eSopenharmony_ci   * @crossplatform
123761847f8eSopenharmony_ci   * @atomicservice
123861847f8eSopenharmony_ci   * @since 11
123961847f8eSopenharmony_ci   */
124061847f8eSopenharmony_ci  /**
124161847f8eSopenharmony_ci   * Execute a concurrent task.
124261847f8eSopenharmony_ci   *
124361847f8eSopenharmony_ci   * @param { Task } task - The task want to execute.
124461847f8eSopenharmony_ci   * @param { Priority } [priority] - Task priority, MEDIUM is default.
124561847f8eSopenharmony_ci   * @returns { Promise<Object> }
124661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
124761847f8eSopenharmony_ci   * <br>1. Mandatory parameters are left unspecified;
124861847f8eSopenharmony_ci   * <br>2. Incorrect parameter types;
124961847f8eSopenharmony_ci   * <br>3. Parameter verification failed.
125061847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
125161847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
125261847f8eSopenharmony_ci   * @throws { BusinessError } 10200051 - The periodic task cannot be executed again.
125361847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
125461847f8eSopenharmony_ci   * @crossplatform
125561847f8eSopenharmony_ci   * @atomicservice
125661847f8eSopenharmony_ci   * @since 12
125761847f8eSopenharmony_ci   */
125861847f8eSopenharmony_ci  function execute(task: Task, priority?: Priority): Promise<Object>;
125961847f8eSopenharmony_ci
126061847f8eSopenharmony_ci  /**
126161847f8eSopenharmony_ci   * Execute a concurrent task with generics.
126261847f8eSopenharmony_ci   *
126361847f8eSopenharmony_ci   * @param { GenericsTask<A, R> } task - The task want to execute.
126461847f8eSopenharmony_ci   * @param { Priority } [priority] - Task priority, MEDIUM is default.
126561847f8eSopenharmony_ci   * @returns { Promise<R> }
126661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
126761847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
126861847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
126961847f8eSopenharmony_ci   * @throws { BusinessError } 10200051 - The periodic task cannot be executed again.
127061847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
127161847f8eSopenharmony_ci   * @atomicservice
127261847f8eSopenharmony_ci   * @since 13
127361847f8eSopenharmony_ci   */
127461847f8eSopenharmony_ci  function execute<A extends Array<Object>, R>(task: GenericsTask<A, R>, priority?: Priority): Promise<R>;
127561847f8eSopenharmony_ci
127661847f8eSopenharmony_ci  /**
127761847f8eSopenharmony_ci   * Execute a concurrent task group.
127861847f8eSopenharmony_ci   *
127961847f8eSopenharmony_ci   * @param { TaskGroup } group - group group The task group want to execute.
128061847f8eSopenharmony_ci   * @param { Priority } [priority] - priority priority Task group priority, MEDIUM is default.
128161847f8eSopenharmony_ci   * @returns { Promise<unknown[]> }
128261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
128361847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
128461847f8eSopenharmony_ci   * 2.Incorrect parameter types;
128561847f8eSopenharmony_ci   * 3.Parameter verification failed.
128661847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
128761847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
128861847f8eSopenharmony_ci   * @crossplatform
128961847f8eSopenharmony_ci   * @since 10
129061847f8eSopenharmony_ci   */
129161847f8eSopenharmony_ci  /**
129261847f8eSopenharmony_ci   * Execute a concurrent task group.
129361847f8eSopenharmony_ci   *
129461847f8eSopenharmony_ci   * @param { TaskGroup } group - group group The task group want to execute.
129561847f8eSopenharmony_ci   * @param { Priority } [priority] - priority priority Task group priority, MEDIUM is default.
129661847f8eSopenharmony_ci   * @returns { Promise<Object[]> }
129761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
129861847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
129961847f8eSopenharmony_ci   * 2.Incorrect parameter types;
130061847f8eSopenharmony_ci   * 3.Parameter verification failed.
130161847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
130261847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
130361847f8eSopenharmony_ci   * @crossplatform
130461847f8eSopenharmony_ci   * @atomicservice
130561847f8eSopenharmony_ci   * @since 11
130661847f8eSopenharmony_ci   */
130761847f8eSopenharmony_ci  function execute(group: TaskGroup, priority?: Priority): Promise<Object[]>;
130861847f8eSopenharmony_ci
130961847f8eSopenharmony_ci  /**
131061847f8eSopenharmony_ci   * Execute a concurrent task after the specified time.
131161847f8eSopenharmony_ci   *
131261847f8eSopenharmony_ci   * @param { number } delayTime - delayTime delayTime The time want to delay.
131361847f8eSopenharmony_ci   * @param { Task } task - task task The task want to execute.
131461847f8eSopenharmony_ci   * @param { Priority } [priority] - priority priority Task priority, MEDIUM is default.
131561847f8eSopenharmony_ci   * @returns { Promise<Object> }
131661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
131761847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
131861847f8eSopenharmony_ci   * 2.Incorrect parameter types;
131961847f8eSopenharmony_ci   * 3.Parameter verification failed.
132061847f8eSopenharmony_ci   * @throws { BusinessError } 10200028 - The delayTime is less than zero.
132161847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
132261847f8eSopenharmony_ci   * @crossplatform
132361847f8eSopenharmony_ci   * @atomicservice
132461847f8eSopenharmony_ci   * @since 11
132561847f8eSopenharmony_ci   */
132661847f8eSopenharmony_ci  /**
132761847f8eSopenharmony_ci   * Execute a concurrent task after the specified time.
132861847f8eSopenharmony_ci   *
132961847f8eSopenharmony_ci   * @param { number } delayTime - The time want to delay.
133061847f8eSopenharmony_ci   * @param { Task } task - The task want to execute.
133161847f8eSopenharmony_ci   * @param { Priority } [priority] - Task priority, MEDIUM is default.
133261847f8eSopenharmony_ci   * @returns { Promise<Object> }
133361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
133461847f8eSopenharmony_ci   * <br>1. Mandatory parameters are left unspecified;
133561847f8eSopenharmony_ci   * <br>2. Incorrect parameter types;
133661847f8eSopenharmony_ci   * <br>3. Parameter verification failed.
133761847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
133861847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
133961847f8eSopenharmony_ci   * @throws { BusinessError } 10200028 - The delayTime is less than zero.
134061847f8eSopenharmony_ci   * @throws { BusinessError } 10200051 - The periodic task cannot be executed again.
134161847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
134261847f8eSopenharmony_ci   * @crossplatform
134361847f8eSopenharmony_ci   * @atomicservice
134461847f8eSopenharmony_ci   * @since 12
134561847f8eSopenharmony_ci   */
134661847f8eSopenharmony_ci  function executeDelayed(delayTime: number, task: Task, priority?: Priority): Promise<Object>;
134761847f8eSopenharmony_ci
134861847f8eSopenharmony_ci  /**
134961847f8eSopenharmony_ci   * Execute a concurrent task with generics after the specified time.
135061847f8eSopenharmony_ci   *
135161847f8eSopenharmony_ci   * @param { number } delayTime - The time want to delay.
135261847f8eSopenharmony_ci   * @param { GenericsTask<A, R> } task - The task want to execute.
135361847f8eSopenharmony_ci   * @param { Priority } [priority] - Task priority, MEDIUM is default.
135461847f8eSopenharmony_ci   * @returns { Promise<R> }
135561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
135661847f8eSopenharmony_ci   * @throws { BusinessError } 10200028 - The delayTime is less than zero.
135761847f8eSopenharmony_ci   * @throws { BusinessError } 10200051 - The periodic task cannot be executed again.
135861847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
135961847f8eSopenharmony_ci   * @atomicservice
136061847f8eSopenharmony_ci   * @since 13
136161847f8eSopenharmony_ci   */
136261847f8eSopenharmony_ci  function executeDelayed<A extends Array<Object>, R>(delayTime: number, task: GenericsTask<A, R>, priority?: Priority): Promise<R>;
136361847f8eSopenharmony_ci
136461847f8eSopenharmony_ci  /**
136561847f8eSopenharmony_ci   * Execute a concurrent task periodically.
136661847f8eSopenharmony_ci   *
136761847f8eSopenharmony_ci   * @param { number } period - The period in milliseconds for executing task.
136861847f8eSopenharmony_ci   * @param { Task } task - The task want to execute.
136961847f8eSopenharmony_ci   * @param { Priority } [priority] - Task priority, MEDIUM is default.
137061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
137161847f8eSopenharmony_ci   * <br>1. Mandatory parameters are left unspecified;
137261847f8eSopenharmony_ci   * <br>2. Incorrect parameter types;
137361847f8eSopenharmony_ci   * <br>3. Parameter verification failed.
137461847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
137561847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
137661847f8eSopenharmony_ci   * @throws { BusinessError } 10200028 - The period is less than zero.
137761847f8eSopenharmony_ci   * @throws { BusinessError } 10200050 - The concurrent task has been executed and cannot be executed periodically.
137861847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
137961847f8eSopenharmony_ci   * @crossplatform
138061847f8eSopenharmony_ci   * @atomicservice
138161847f8eSopenharmony_ci   * @since 12
138261847f8eSopenharmony_ci   */
138361847f8eSopenharmony_ci  function executePeriodically(period: number, task: Task, priority?: Priority): void;
138461847f8eSopenharmony_ci
138561847f8eSopenharmony_ci  /**
138661847f8eSopenharmony_ci   * Execute a concurrent task with generics periodically.
138761847f8eSopenharmony_ci   *
138861847f8eSopenharmony_ci   * @param { number } period - The period in milliseconds for executing task.
138961847f8eSopenharmony_ci   * @param { GenericsTask<A, R> } task - The task want to execute.
139061847f8eSopenharmony_ci   * @param { Priority } [priority] - Task priority, MEDIUM is default.
139161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Incorrect parameter types; 2.Parameter verification failed.
139261847f8eSopenharmony_ci   * @throws { BusinessError } 10200006 - An exception occurred during serialization.
139361847f8eSopenharmony_ci   * @throws { BusinessError } 10200014 - The function is not marked as concurrent.
139461847f8eSopenharmony_ci   * @throws { BusinessError } 10200028 - The period is less than zero.
139561847f8eSopenharmony_ci   * @throws { BusinessError } 10200050 - The concurrent task has been executed and cannot be executed periodically.
139661847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
139761847f8eSopenharmony_ci   * @atomicservice
139861847f8eSopenharmony_ci   * @since 13
139961847f8eSopenharmony_ci   */
140061847f8eSopenharmony_ci  function executePeriodically<A extends Array<Object>, R>(period: number, task: GenericsTask<A, R>, priority?: Priority): void;
140161847f8eSopenharmony_ci
140261847f8eSopenharmony_ci  /**
140361847f8eSopenharmony_ci   * Cancel a concurrent task.
140461847f8eSopenharmony_ci   *
140561847f8eSopenharmony_ci   * @param { Task } task - task task The task want to cancel.
140661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
140761847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
140861847f8eSopenharmony_ci   * 2.Incorrect parameter types;
140961847f8eSopenharmony_ci   * 3.Parameter verification failed.
141061847f8eSopenharmony_ci   * @throws { BusinessError } 10200015 - The task to cancel does not exist.
141161847f8eSopenharmony_ci   * @throws { BusinessError } 10200016 - The task to cancel is being executed.
141261847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
141361847f8eSopenharmony_ci   * @since 9
141461847f8eSopenharmony_ci   */
141561847f8eSopenharmony_ci  /**
141661847f8eSopenharmony_ci   * Cancel a concurrent task.
141761847f8eSopenharmony_ci   *
141861847f8eSopenharmony_ci   * @param { Task } task - task task The task want to cancel.
141961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
142061847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
142161847f8eSopenharmony_ci   * 2.Incorrect parameter types;
142261847f8eSopenharmony_ci   * 3.Parameter verification failed.
142361847f8eSopenharmony_ci   * @throws { BusinessError } 10200015 - The task to cancel does not exist.
142461847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
142561847f8eSopenharmony_ci   * @crossplatform
142661847f8eSopenharmony_ci   * @since 10
142761847f8eSopenharmony_ci   */
142861847f8eSopenharmony_ci  /**
142961847f8eSopenharmony_ci   * Cancel a concurrent task.
143061847f8eSopenharmony_ci   *
143161847f8eSopenharmony_ci   * @param { Task } task - task task The task want to cancel.
143261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
143361847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
143461847f8eSopenharmony_ci   * 2.Incorrect parameter types;
143561847f8eSopenharmony_ci   * 3.Parameter verification failed.
143661847f8eSopenharmony_ci   * @throws { BusinessError } 10200015 - The task to cancel does not exist.
143761847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
143861847f8eSopenharmony_ci   * @crossplatform
143961847f8eSopenharmony_ci   * @atomicservice
144061847f8eSopenharmony_ci   * @since 11
144161847f8eSopenharmony_ci   */
144261847f8eSopenharmony_ci  function cancel(task: Task): void;
144361847f8eSopenharmony_ci
144461847f8eSopenharmony_ci  /**
144561847f8eSopenharmony_ci   * Cancel a concurrent task group.
144661847f8eSopenharmony_ci   *
144761847f8eSopenharmony_ci   * @param { TaskGroup } group - group group The task group want to cancel.
144861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
144961847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
145061847f8eSopenharmony_ci   * 2.Incorrect parameter types;
145161847f8eSopenharmony_ci   * 3.Parameter verification failed.
145261847f8eSopenharmony_ci   * @throws { BusinessError } 10200018 - The task group to cancel does not exist.
145361847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
145461847f8eSopenharmony_ci   * @crossplatform
145561847f8eSopenharmony_ci   * @since 10
145661847f8eSopenharmony_ci   */
145761847f8eSopenharmony_ci  /**
145861847f8eSopenharmony_ci   * Cancel a concurrent task group.
145961847f8eSopenharmony_ci   *
146061847f8eSopenharmony_ci   * @param { TaskGroup } group - group group The task group want to cancel.
146161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
146261847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
146361847f8eSopenharmony_ci   * 2.Incorrect parameter types;
146461847f8eSopenharmony_ci   * 3.Parameter verification failed.
146561847f8eSopenharmony_ci   * @throws { BusinessError } 10200018 - The task group to cancel does not exist.
146661847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
146761847f8eSopenharmony_ci   * @crossplatform
146861847f8eSopenharmony_ci   * @atomicservice
146961847f8eSopenharmony_ci   * @since 11
147061847f8eSopenharmony_ci   */
147161847f8eSopenharmony_ci  function cancel(group: TaskGroup): void;
147261847f8eSopenharmony_ci
147361847f8eSopenharmony_ci  /**
147461847f8eSopenharmony_ci   * Get task pool internal information.
147561847f8eSopenharmony_ci   *
147661847f8eSopenharmony_ci   * @returns { TaskPoolInfo }
147761847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
147861847f8eSopenharmony_ci   * @crossplatform
147961847f8eSopenharmony_ci   * @since 10
148061847f8eSopenharmony_ci   */
148161847f8eSopenharmony_ci  /**
148261847f8eSopenharmony_ci   * Get task pool internal information.
148361847f8eSopenharmony_ci   *
148461847f8eSopenharmony_ci   * @returns { TaskPoolInfo }
148561847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
148661847f8eSopenharmony_ci   * @crossplatform
148761847f8eSopenharmony_ci   * @atomicservice
148861847f8eSopenharmony_ci   * @since 11
148961847f8eSopenharmony_ci   */
149061847f8eSopenharmony_ci  function getTaskPoolInfo(): TaskPoolInfo;
149161847f8eSopenharmony_ci
149261847f8eSopenharmony_ci  /**
149361847f8eSopenharmony_ci   * Terminate a long task.
149461847f8eSopenharmony_ci   *
149561847f8eSopenharmony_ci   * @param { LongTask } longTask - The long task want to terminate.
149661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
149761847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
149861847f8eSopenharmony_ci   * 2.Incorrect parameter types;
149961847f8eSopenharmony_ci   * 3.Parameter verification failed.
150061847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
150161847f8eSopenharmony_ci   * @crossplatform
150261847f8eSopenharmony_ci   * @atomicservice
150361847f8eSopenharmony_ci   * @since 12
150461847f8eSopenharmony_ci   */
150561847f8eSopenharmony_ci  function terminateTask(longTask: LongTask): void;
150661847f8eSopenharmony_ci
150761847f8eSopenharmony_ci    /**
150861847f8eSopenharmony_ci   * Check if the function is a concurrent function.
150961847f8eSopenharmony_ci   *
151061847f8eSopenharmony_ci   * @param { Function } func - The function name to check.
151161847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if it is a concurrent function; returns {@code false} otherwise.
151261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes:
151361847f8eSopenharmony_ci   * 1.Mandatory parameters are left unspecified;
151461847f8eSopenharmony_ci   * 2.Incorrect parameter types;
151561847f8eSopenharmony_ci   * 3.Parameter verification failed.
151661847f8eSopenharmony_ci   * @syscap SystemCapability.Utils.Lang
151761847f8eSopenharmony_ci   * @crossplatform
151861847f8eSopenharmony_ci   * @atomicservice
151961847f8eSopenharmony_ci   * @since 12
152061847f8eSopenharmony_ci   */
152161847f8eSopenharmony_ci    function isConcurrent(func: Function): boolean;
152261847f8eSopenharmony_ci}
152361847f8eSopenharmony_ci
152461847f8eSopenharmony_ciexport default taskpool;
1525