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 BackgroundTasksKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport { AsyncCallback } from './@ohos.base';
2261847f8eSopenharmony_ci
2361847f8eSopenharmony_ci/**
2461847f8eSopenharmony_ci * Work scheduler interface.
2561847f8eSopenharmony_ci *
2661847f8eSopenharmony_ci * @namespace workScheduler
2761847f8eSopenharmony_ci * @syscap SystemCapability.ResourceSchedule.WorkScheduler
2861847f8eSopenharmony_ci * @StageModelOnly
2961847f8eSopenharmony_ci * @since 9
3061847f8eSopenharmony_ci */
3161847f8eSopenharmony_cideclare namespace workScheduler {
3261847f8eSopenharmony_ci  /**
3361847f8eSopenharmony_ci   * The info of work.
3461847f8eSopenharmony_ci   *
3561847f8eSopenharmony_ci   * @interface WorkInfo
3661847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
3761847f8eSopenharmony_ci   * @StageModelOnly
3861847f8eSopenharmony_ci   * @since 9
3961847f8eSopenharmony_ci   */
4061847f8eSopenharmony_ci  export interface WorkInfo {
4161847f8eSopenharmony_ci    /**
4261847f8eSopenharmony_ci     * The id of the current work.
4361847f8eSopenharmony_ci     *
4461847f8eSopenharmony_ci     * @type { number }
4561847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
4661847f8eSopenharmony_ci     * @StageModelOnly
4761847f8eSopenharmony_ci     * @since 9
4861847f8eSopenharmony_ci     */
4961847f8eSopenharmony_ci    workId: number;
5061847f8eSopenharmony_ci    /**
5161847f8eSopenharmony_ci     * The bundle name of the current work.
5261847f8eSopenharmony_ci     *
5361847f8eSopenharmony_ci     * @type { string }
5461847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
5561847f8eSopenharmony_ci     * @StageModelOnly
5661847f8eSopenharmony_ci     * @since 9
5761847f8eSopenharmony_ci     */
5861847f8eSopenharmony_ci    bundleName: string;
5961847f8eSopenharmony_ci    /**
6061847f8eSopenharmony_ci     * The ability name of the current work.
6161847f8eSopenharmony_ci     *
6261847f8eSopenharmony_ci     * @type { string }
6361847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
6461847f8eSopenharmony_ci     * @StageModelOnly
6561847f8eSopenharmony_ci     * @since 9
6661847f8eSopenharmony_ci     */
6761847f8eSopenharmony_ci    abilityName: string;
6861847f8eSopenharmony_ci    /**
6961847f8eSopenharmony_ci     * Whether the current work will be saved.
7061847f8eSopenharmony_ci     *
7161847f8eSopenharmony_ci     * @type { ?boolean }
7261847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
7361847f8eSopenharmony_ci     * @StageModelOnly
7461847f8eSopenharmony_ci     * @since 9
7561847f8eSopenharmony_ci     */
7661847f8eSopenharmony_ci    isPersisted?: boolean;
7761847f8eSopenharmony_ci    /**
7861847f8eSopenharmony_ci     * The network type of the current work.
7961847f8eSopenharmony_ci     *
8061847f8eSopenharmony_ci     * @type { ?NetworkType }
8161847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
8261847f8eSopenharmony_ci     * @StageModelOnly
8361847f8eSopenharmony_ci     * @since 9
8461847f8eSopenharmony_ci     */
8561847f8eSopenharmony_ci    networkType?: NetworkType;
8661847f8eSopenharmony_ci    /**
8761847f8eSopenharmony_ci     * Whether a charging state has been set for triggering the work.
8861847f8eSopenharmony_ci     *
8961847f8eSopenharmony_ci     * @type { ?boolean }
9061847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
9161847f8eSopenharmony_ci     * @StageModelOnly
9261847f8eSopenharmony_ci     * @since 9
9361847f8eSopenharmony_ci     */
9461847f8eSopenharmony_ci    isCharging?: boolean;
9561847f8eSopenharmony_ci    /**
9661847f8eSopenharmony_ci     * The charger type based on which the work is triggered.
9761847f8eSopenharmony_ci     *
9861847f8eSopenharmony_ci     * @type { ?ChargingType }
9961847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
10061847f8eSopenharmony_ci     * @StageModelOnly
10161847f8eSopenharmony_ci     * @since 9
10261847f8eSopenharmony_ci     */
10361847f8eSopenharmony_ci    chargerType?: ChargingType;
10461847f8eSopenharmony_ci    /**
10561847f8eSopenharmony_ci     * The battery level for triggering a work.
10661847f8eSopenharmony_ci     *
10761847f8eSopenharmony_ci     * @type { ?number }
10861847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
10961847f8eSopenharmony_ci     * @StageModelOnly
11061847f8eSopenharmony_ci     * @since 9
11161847f8eSopenharmony_ci     */
11261847f8eSopenharmony_ci    batteryLevel?: number;
11361847f8eSopenharmony_ci    /**
11461847f8eSopenharmony_ci     * The battery status for triggering a work.
11561847f8eSopenharmony_ci     *
11661847f8eSopenharmony_ci     * @type { ?BatteryStatus }
11761847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
11861847f8eSopenharmony_ci     * @StageModelOnly
11961847f8eSopenharmony_ci     * @since 9
12061847f8eSopenharmony_ci     */
12161847f8eSopenharmony_ci    batteryStatus?: BatteryStatus;
12261847f8eSopenharmony_ci    /**
12361847f8eSopenharmony_ci     * Whether a storage state has been set for triggering the work.
12461847f8eSopenharmony_ci     *
12561847f8eSopenharmony_ci     * @type { ?StorageRequest }
12661847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
12761847f8eSopenharmony_ci     * @StageModelOnly
12861847f8eSopenharmony_ci     * @since 9
12961847f8eSopenharmony_ci     */
13061847f8eSopenharmony_ci    storageRequest?: StorageRequest;
13161847f8eSopenharmony_ci    /**
13261847f8eSopenharmony_ci     * The interval at which the work is repeated.
13361847f8eSopenharmony_ci     *
13461847f8eSopenharmony_ci     * @type { ?number }
13561847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
13661847f8eSopenharmony_ci     * @StageModelOnly
13761847f8eSopenharmony_ci     * @since 9
13861847f8eSopenharmony_ci     */
13961847f8eSopenharmony_ci    repeatCycleTime?: number;
14061847f8eSopenharmony_ci    /**
14161847f8eSopenharmony_ci     * Whether the work has been set to repeat at the specified interval.
14261847f8eSopenharmony_ci     *
14361847f8eSopenharmony_ci     * @type { ?boolean }
14461847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
14561847f8eSopenharmony_ci     * @StageModelOnly
14661847f8eSopenharmony_ci     * @since 9
14761847f8eSopenharmony_ci     */
14861847f8eSopenharmony_ci    isRepeat?: boolean;
14961847f8eSopenharmony_ci    /**
15061847f8eSopenharmony_ci     * The repeat of the current work.
15161847f8eSopenharmony_ci     *
15261847f8eSopenharmony_ci     * @type { ?number }
15361847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
15461847f8eSopenharmony_ci     * @StageModelOnly
15561847f8eSopenharmony_ci     * @since 9
15661847f8eSopenharmony_ci     */
15761847f8eSopenharmony_ci    repeatCount?: number;
15861847f8eSopenharmony_ci    /**
15961847f8eSopenharmony_ci     * Whether the device deep idle state has been set for triggering the work.
16061847f8eSopenharmony_ci     *
16161847f8eSopenharmony_ci     * @type { ?boolean }
16261847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
16361847f8eSopenharmony_ci     * @StageModelOnly
16461847f8eSopenharmony_ci     * @since 9
16561847f8eSopenharmony_ci     */
16661847f8eSopenharmony_ci    isDeepIdle?: boolean;
16761847f8eSopenharmony_ci    /**
16861847f8eSopenharmony_ci     * The idle wait time based on which the work is triggered.
16961847f8eSopenharmony_ci     *
17061847f8eSopenharmony_ci     * @type { ?number }
17161847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
17261847f8eSopenharmony_ci     * @StageModelOnly
17361847f8eSopenharmony_ci     * @since 9
17461847f8eSopenharmony_ci     */
17561847f8eSopenharmony_ci    idleWaitTime?: number;
17661847f8eSopenharmony_ci    /**
17761847f8eSopenharmony_ci     * The parameters of the work. The value is only supported basic type(Number, String, Boolean).
17861847f8eSopenharmony_ci     *
17961847f8eSopenharmony_ci     * @type { ?Record<string, number | string | boolean> }
18061847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
18161847f8eSopenharmony_ci     * @StageModelOnly
18261847f8eSopenharmony_ci     * @since 9
18361847f8eSopenharmony_ci     */
18461847f8eSopenharmony_ci    parameters?: Record<string, number | string | boolean>;
18561847f8eSopenharmony_ci  }
18661847f8eSopenharmony_ci
18761847f8eSopenharmony_ci  /**
18861847f8eSopenharmony_ci   * Add a work to the queue. A work can be executed only when it meets the preset triggering condition
18961847f8eSopenharmony_ci   * <p> and complies with the rules of work scheduler manager. </p>
19061847f8eSopenharmony_ci   *
19161847f8eSopenharmony_ci   * @param { WorkInfo } work - The info of work.
19261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
19361847f8eSopenharmony_ci   * <br> 2. Incorrect parameters types; 3. Parameter verification failed.
19461847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
19561847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
19661847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
19761847f8eSopenharmony_ci   * @throws { BusinessError } 9700004 - Check on workInfo failed.
19861847f8eSopenharmony_ci   * @throws { BusinessError } 9700005 - Calling startWork failed.
19961847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
20061847f8eSopenharmony_ci   * @StageModelOnly
20161847f8eSopenharmony_ci   * @since 9
20261847f8eSopenharmony_ci   */
20361847f8eSopenharmony_ci  function startWork(work: WorkInfo): void;
20461847f8eSopenharmony_ci
20561847f8eSopenharmony_ci  /**
20661847f8eSopenharmony_ci   * Stop a work.
20761847f8eSopenharmony_ci   *
20861847f8eSopenharmony_ci   * @param { WorkInfo } work - The info of work.
20961847f8eSopenharmony_ci   * @param { boolean } needCancel - True if need to be canceled after being stopped, otherwise false.
21061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
21161847f8eSopenharmony_ci   * <br> 2. Incorrect parameters types; 3. Parameter verification failed.
21261847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
21361847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
21461847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
21561847f8eSopenharmony_ci   * @throws { BusinessError } 9700004 - Check on workInfo failed.
21661847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
21761847f8eSopenharmony_ci   * @StageModelOnly
21861847f8eSopenharmony_ci   * @since 9
21961847f8eSopenharmony_ci   */
22061847f8eSopenharmony_ci  function stopWork(work: WorkInfo, needCancel?: boolean): void;
22161847f8eSopenharmony_ci
22261847f8eSopenharmony_ci  /**
22361847f8eSopenharmony_ci   * Obtains the work info of the wordId.
22461847f8eSopenharmony_ci   *
22561847f8eSopenharmony_ci   * @param { number } workId - The id of work.
22661847f8eSopenharmony_ci   * @param { AsyncCallback<WorkInfo> } callback - The callback of the function.
22761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: Parameter verification failed.
22861847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
22961847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
23061847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
23161847f8eSopenharmony_ci   * @throws { BusinessError } 9700004 - Check on workInfo failed.
23261847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
23361847f8eSopenharmony_ci   * @StageModelOnly
23461847f8eSopenharmony_ci   * @since 9
23561847f8eSopenharmony_ci   */
23661847f8eSopenharmony_ci  function getWorkStatus(workId: number, callback: AsyncCallback<WorkInfo>): void;
23761847f8eSopenharmony_ci
23861847f8eSopenharmony_ci  /**
23961847f8eSopenharmony_ci   * Obtains the work info of the wordId.
24061847f8eSopenharmony_ci   *
24161847f8eSopenharmony_ci   * @param { number } workId - The id of work.
24261847f8eSopenharmony_ci   * @returns { Promise<WorkInfo> } The promise returned by the function.
24361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: Parameter verification failed.
24461847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
24561847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
24661847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
24761847f8eSopenharmony_ci   * @throws { BusinessError } 9700004 - Check on workInfo failed.
24861847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
24961847f8eSopenharmony_ci   * @StageModelOnly
25061847f8eSopenharmony_ci   * @since 9
25161847f8eSopenharmony_ci   */
25261847f8eSopenharmony_ci  function getWorkStatus(workId: number): Promise<WorkInfo>;
25361847f8eSopenharmony_ci
25461847f8eSopenharmony_ci  /**
25561847f8eSopenharmony_ci   * Get all works of the calling application.
25661847f8eSopenharmony_ci   *
25761847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - The callback of the function.
25861847f8eSopenharmony_ci   * @returns { Array<WorkInfo> } the work info list.
25961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
26061847f8eSopenharmony_ci   * <br> 2. Incorrect parameters types.
26161847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
26261847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
26361847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
26461847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
26561847f8eSopenharmony_ci   * @StageModelOnly
26661847f8eSopenharmony_ci   * @since 9
26761847f8eSopenharmony_ci   * @deprecated since 10
26861847f8eSopenharmony_ci   */
26961847f8eSopenharmony_ci  function obtainAllWorks(callback: AsyncCallback<void>): Array<WorkInfo>;
27061847f8eSopenharmony_ci
27161847f8eSopenharmony_ci  /**
27261847f8eSopenharmony_ci   * Get all works of the calling application.
27361847f8eSopenharmony_ci   *
27461847f8eSopenharmony_ci   * @param { AsyncCallback<Array<WorkInfo>> } callback - The callback of the function.
27561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
27661847f8eSopenharmony_ci   * <br> 2. Incorrect parameters types.
27761847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
27861847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
27961847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
28061847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
28161847f8eSopenharmony_ci   * @StageModelOnly
28261847f8eSopenharmony_ci   * @since 10
28361847f8eSopenharmony_ci   */
28461847f8eSopenharmony_ci  function obtainAllWorks(callback: AsyncCallback<Array<WorkInfo>>): void;
28561847f8eSopenharmony_ci
28661847f8eSopenharmony_ci  /**
28761847f8eSopenharmony_ci   * Get all works of the calling application.
28861847f8eSopenharmony_ci   *
28961847f8eSopenharmony_ci   * @returns { Promise<Array<WorkInfo>> } The work info list.
29061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
29161847f8eSopenharmony_ci   * <br> 2. Incorrect parameters types.
29261847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
29361847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
29461847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
29561847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
29661847f8eSopenharmony_ci   * @StageModelOnly
29761847f8eSopenharmony_ci   * @since 9
29861847f8eSopenharmony_ci   */
29961847f8eSopenharmony_ci  function obtainAllWorks(): Promise<Array<WorkInfo>>;
30061847f8eSopenharmony_ci
30161847f8eSopenharmony_ci  /**
30261847f8eSopenharmony_ci   * Stop all and clear all works of the calling application.
30361847f8eSopenharmony_ci   *
30461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
30561847f8eSopenharmony_ci   * <br> 2. Incorrect parameters types.
30661847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
30761847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
30861847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
30961847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
31061847f8eSopenharmony_ci   * @StageModelOnly
31161847f8eSopenharmony_ci   * @since 9
31261847f8eSopenharmony_ci   */
31361847f8eSopenharmony_ci  function stopAndClearWorks(): void;
31461847f8eSopenharmony_ci
31561847f8eSopenharmony_ci  /**
31661847f8eSopenharmony_ci   * Check whether last work running is timeout. The interface is for repeating work.
31761847f8eSopenharmony_ci   *
31861847f8eSopenharmony_ci   * @param { number } workId - The id of work.
31961847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - The callback of the function.
32061847f8eSopenharmony_ci   * @returns { boolean } true if last work running is timeout, otherwise false.
32161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: Parameter verification failed.
32261847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
32361847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
32461847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
32561847f8eSopenharmony_ci   * @throws { BusinessError } 9700004 - Check on workInfo failed.
32661847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
32761847f8eSopenharmony_ci   * @StageModelOnly
32861847f8eSopenharmony_ci   * @since 9
32961847f8eSopenharmony_ci   * @deprecated since 10
33061847f8eSopenharmony_ci   */
33161847f8eSopenharmony_ci  function isLastWorkTimeOut(workId: number, callback: AsyncCallback<void>): boolean;
33261847f8eSopenharmony_ci
33361847f8eSopenharmony_ci  /**
33461847f8eSopenharmony_ci   * Check whether last work running is timeout. The interface is for repeating work.
33561847f8eSopenharmony_ci   *
33661847f8eSopenharmony_ci   * @param { number } workId - The id of work.
33761847f8eSopenharmony_ci   * @param { AsyncCallback<boolean> } callback - The callback of the function.
33861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: Parameter verification failed.
33961847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
34061847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
34161847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
34261847f8eSopenharmony_ci   * @throws { BusinessError } 9700004 - Check on workInfo failed.
34361847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
34461847f8eSopenharmony_ci   * @StageModelOnly
34561847f8eSopenharmony_ci   * @since 10
34661847f8eSopenharmony_ci   */
34761847f8eSopenharmony_ci  function isLastWorkTimeOut(workId: number, callback: AsyncCallback<boolean>): void;
34861847f8eSopenharmony_ci
34961847f8eSopenharmony_ci  /**
35061847f8eSopenharmony_ci   * Check whether last work running is timeout. The interface is for repeating work.
35161847f8eSopenharmony_ci   *
35261847f8eSopenharmony_ci   * @param { number } workId - The id of work.
35361847f8eSopenharmony_ci   * @returns { Promise<boolean> } True if last work running is timeout, otherwise false.
35461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: Parameter verification failed.
35561847f8eSopenharmony_ci   * @throws { BusinessError } 9700001 - Memory operation failed.
35661847f8eSopenharmony_ci   * @throws { BusinessError } 9700002 - Parcel operation failed.
35761847f8eSopenharmony_ci   * @throws { BusinessError } 9700003 - System service operation failed.
35861847f8eSopenharmony_ci   * @throws { BusinessError } 9700004 - Check on workInfo failed.
35961847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
36061847f8eSopenharmony_ci   * @StageModelOnly
36161847f8eSopenharmony_ci   * @since 9
36261847f8eSopenharmony_ci   */
36361847f8eSopenharmony_ci  function isLastWorkTimeOut(workId: number): Promise<boolean>;
36461847f8eSopenharmony_ci
36561847f8eSopenharmony_ci  /**
36661847f8eSopenharmony_ci   * Describes network type.
36761847f8eSopenharmony_ci   *
36861847f8eSopenharmony_ci   * @enum { number }
36961847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
37061847f8eSopenharmony_ci   * @StageModelOnly
37161847f8eSopenharmony_ci   * @since 9
37261847f8eSopenharmony_ci   * @name NetworkType
37361847f8eSopenharmony_ci  */
37461847f8eSopenharmony_ci  export enum NetworkType {
37561847f8eSopenharmony_ci    /**
37661847f8eSopenharmony_ci     * Describes any network connection.
37761847f8eSopenharmony_ci     *
37861847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
37961847f8eSopenharmony_ci     * @StageModelOnly
38061847f8eSopenharmony_ci     * @since 9
38161847f8eSopenharmony_ci     */
38261847f8eSopenharmony_ci    NETWORK_TYPE_ANY = 0,
38361847f8eSopenharmony_ci    /**
38461847f8eSopenharmony_ci     * Describes a mobile network connection.
38561847f8eSopenharmony_ci     *
38661847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
38761847f8eSopenharmony_ci     * @StageModelOnly
38861847f8eSopenharmony_ci     * @since 9
38961847f8eSopenharmony_ci     */
39061847f8eSopenharmony_ci    NETWORK_TYPE_MOBILE,
39161847f8eSopenharmony_ci    /**
39261847f8eSopenharmony_ci     * Describes a wifi network connection.
39361847f8eSopenharmony_ci     *
39461847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
39561847f8eSopenharmony_ci     * @StageModelOnly
39661847f8eSopenharmony_ci     * @since 9
39761847f8eSopenharmony_ci     */
39861847f8eSopenharmony_ci    NETWORK_TYPE_WIFI,
39961847f8eSopenharmony_ci    /**
40061847f8eSopenharmony_ci     * Describes a bluetooth network connection.
40161847f8eSopenharmony_ci     *
40261847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
40361847f8eSopenharmony_ci     * @StageModelOnly
40461847f8eSopenharmony_ci     * @since 9
40561847f8eSopenharmony_ci     */
40661847f8eSopenharmony_ci    NETWORK_TYPE_BLUETOOTH,
40761847f8eSopenharmony_ci    /**
40861847f8eSopenharmony_ci     * Describes a wifi p2p network connection.
40961847f8eSopenharmony_ci     *
41061847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
41161847f8eSopenharmony_ci     * @StageModelOnly
41261847f8eSopenharmony_ci     * @since 9
41361847f8eSopenharmony_ci     */
41461847f8eSopenharmony_ci    NETWORK_TYPE_WIFI_P2P,
41561847f8eSopenharmony_ci    /**
41661847f8eSopenharmony_ci     * Describes a wifi wire network connection.
41761847f8eSopenharmony_ci     *
41861847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
41961847f8eSopenharmony_ci     * @StageModelOnly
42061847f8eSopenharmony_ci     * @since 9
42161847f8eSopenharmony_ci     */
42261847f8eSopenharmony_ci    NETWORK_TYPE_ETHERNET
42361847f8eSopenharmony_ci  }
42461847f8eSopenharmony_ci
42561847f8eSopenharmony_ci  /**
42661847f8eSopenharmony_ci   * Describes charging type.
42761847f8eSopenharmony_ci   *
42861847f8eSopenharmony_ci   * @enum { number }
42961847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
43061847f8eSopenharmony_ci   * @StageModelOnly
43161847f8eSopenharmony_ci   * @since 9
43261847f8eSopenharmony_ci   * @name ChargingType
43361847f8eSopenharmony_ci  */
43461847f8eSopenharmony_ci  export enum ChargingType {
43561847f8eSopenharmony_ci    /**
43661847f8eSopenharmony_ci     * Describes any charger is connected.
43761847f8eSopenharmony_ci     *
43861847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
43961847f8eSopenharmony_ci     * @StageModelOnly
44061847f8eSopenharmony_ci     * @since 9
44161847f8eSopenharmony_ci     */
44261847f8eSopenharmony_ci    CHARGING_PLUGGED_ANY = 0,
44361847f8eSopenharmony_ci    /**
44461847f8eSopenharmony_ci     * Describes ac charger is connected.
44561847f8eSopenharmony_ci     *
44661847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
44761847f8eSopenharmony_ci     * @StageModelOnly
44861847f8eSopenharmony_ci     * @since 9
44961847f8eSopenharmony_ci     */
45061847f8eSopenharmony_ci    CHARGING_PLUGGED_AC,
45161847f8eSopenharmony_ci    /**
45261847f8eSopenharmony_ci     * Describes usb charger is connected.
45361847f8eSopenharmony_ci     *
45461847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
45561847f8eSopenharmony_ci     * @StageModelOnly
45661847f8eSopenharmony_ci     * @since 9
45761847f8eSopenharmony_ci     */
45861847f8eSopenharmony_ci    CHARGING_PLUGGED_USB,
45961847f8eSopenharmony_ci    /**
46061847f8eSopenharmony_ci     * Describes wireless charger is connected.
46161847f8eSopenharmony_ci     *
46261847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
46361847f8eSopenharmony_ci     * @StageModelOnly
46461847f8eSopenharmony_ci     * @since 9
46561847f8eSopenharmony_ci     */
46661847f8eSopenharmony_ci    CHARGING_PLUGGED_WIRELESS
46761847f8eSopenharmony_ci  }
46861847f8eSopenharmony_ci
46961847f8eSopenharmony_ci  /**
47061847f8eSopenharmony_ci   * Describes the battery status.
47161847f8eSopenharmony_ci   *
47261847f8eSopenharmony_ci   * @enum { number }
47361847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
47461847f8eSopenharmony_ci   * @StageModelOnly
47561847f8eSopenharmony_ci   * @since 9
47661847f8eSopenharmony_ci   * @name BatteryStatus
47761847f8eSopenharmony_ci  */
47861847f8eSopenharmony_ci  export enum BatteryStatus {
47961847f8eSopenharmony_ci    /**
48061847f8eSopenharmony_ci     * Describes battery status is to low.
48161847f8eSopenharmony_ci     *
48261847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
48361847f8eSopenharmony_ci     * @StageModelOnly
48461847f8eSopenharmony_ci     * @since 9
48561847f8eSopenharmony_ci     */
48661847f8eSopenharmony_ci    BATTERY_STATUS_LOW = 0,
48761847f8eSopenharmony_ci    /**
48861847f8eSopenharmony_ci     * Describes battery status is to ok.
48961847f8eSopenharmony_ci     *
49061847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
49161847f8eSopenharmony_ci     * @StageModelOnly
49261847f8eSopenharmony_ci     * @since 9
49361847f8eSopenharmony_ci     */
49461847f8eSopenharmony_ci    BATTERY_STATUS_OKAY,
49561847f8eSopenharmony_ci    /**
49661847f8eSopenharmony_ci     * Describes battery status is to low or ok.
49761847f8eSopenharmony_ci     *
49861847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
49961847f8eSopenharmony_ci     * @StageModelOnly
50061847f8eSopenharmony_ci     * @since 9
50161847f8eSopenharmony_ci     */
50261847f8eSopenharmony_ci    BATTERY_STATUS_LOW_OR_OKAY
50361847f8eSopenharmony_ci  }
50461847f8eSopenharmony_ci
50561847f8eSopenharmony_ci  /**
50661847f8eSopenharmony_ci   * Describes the storage request.
50761847f8eSopenharmony_ci   *
50861847f8eSopenharmony_ci   * @enum { number }
50961847f8eSopenharmony_ci   * @syscap SystemCapability.ResourceSchedule.WorkScheduler
51061847f8eSopenharmony_ci   * @StageModelOnly
51161847f8eSopenharmony_ci   * @since 9
51261847f8eSopenharmony_ci   * @name StorageRequest
51361847f8eSopenharmony_ci  */
51461847f8eSopenharmony_ci  export enum StorageRequest {
51561847f8eSopenharmony_ci    /**
51661847f8eSopenharmony_ci     * Describes storage is to low.
51761847f8eSopenharmony_ci     *
51861847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
51961847f8eSopenharmony_ci     * @StageModelOnly
52061847f8eSopenharmony_ci     * @since 9
52161847f8eSopenharmony_ci     */
52261847f8eSopenharmony_ci    STORAGE_LEVEL_LOW = 0,
52361847f8eSopenharmony_ci    /**
52461847f8eSopenharmony_ci     * Describes storage is to ok.
52561847f8eSopenharmony_ci     *
52661847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
52761847f8eSopenharmony_ci     * @StageModelOnly
52861847f8eSopenharmony_ci     * @since 9
52961847f8eSopenharmony_ci     */
53061847f8eSopenharmony_ci    STORAGE_LEVEL_OKAY,
53161847f8eSopenharmony_ci    /**
53261847f8eSopenharmony_ci     * Describes storage is to low or ok.
53361847f8eSopenharmony_ci     *
53461847f8eSopenharmony_ci     * @syscap SystemCapability.ResourceSchedule.WorkScheduler
53561847f8eSopenharmony_ci     * @StageModelOnly
53661847f8eSopenharmony_ci     * @since 9
53761847f8eSopenharmony_ci     */
53861847f8eSopenharmony_ci    STORAGE_LEVEL_LOW_OR_OKAY
53961847f8eSopenharmony_ci  }
54061847f8eSopenharmony_ci}
54161847f8eSopenharmony_ciexport default workScheduler;