/*
* Copyright (c) 2024-2026 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
sequenceable background_task_state_info..OHOS.BackgroundTaskMgr.BackgroundTaskStateInfo;
sequenceable continuous_task_callback_info..OHOS.BackgroundTaskMgr.ContinuousTaskCallbackInfo;
sequenceable continuous_task_info..OHOS.BackgroundTaskMgr.ContinuousTaskInfo;
sequenceable continuous_task_param..OHOS.BackgroundTaskMgr.ContinuousTaskParam;
sequenceable continuous_task_param..OHOS.BackgroundTaskMgr.ContinuousTaskParamForInner;
sequenceable continuous_task_request..OHOS.BackgroundTaskMgr.ContinuousTaskRequest;
sequenceable delay_suspend_info..OHOS.BackgroundTaskMgr.DelaySuspendInfo;
sequenceable efficiency_resource_info..OHOS.BackgroundTaskMgr.EfficiencyResourceInfo;
sequenceable resource_callback_info..OHOS.BackgroundTaskMgr.ResourceCallbackInfo;
sequenceable OHOS.IRemoteObject;
sequenceable transient_task_app_info..OHOS.BackgroundTaskMgr.TransientTaskAppInfo;
interface OHOS.BackgroundTaskMgr.IBackgroundTaskSubscriber;
interface OHOS.BackgroundTaskMgr.IExpiredCallback;
interface OHOS.BackgroundTaskMgr.IBackgroundTaskMgr {
void RequestSuspendDelay([in] String reason, [in] IExpiredCallback expiredCallback, [out] DelaySuspendInfo delayInfo);
void CancelSuspendDelay([in] int requestId);
void GetRemainingDelayTime([in] int requestId, [out] int delayTime);
void GetAllTransientTasks([out] int remainingQuota, [out] sharedptr<DelaySuspendInfo>[] list);
void StartBackgroundRunning([in] ContinuousTaskParam taskParam, [out] int notificationId, [out] int continuousTaskId);
void UpdateBackgroundRunning([in] ContinuousTaskParam taskParam, [out] int notificationId, [out] int continuousTaskId);
void StopBackgroundRunning([in] String abilityName, [in] IRemoteObject abilityToken, [in] int abilityId, [in] int continuousTaskId);
void GetAllContinuousTasks([out] ContinuousTaskInfo[] list);
void GetAllContinuousTasks([out] sharedptr<ContinuousTaskInfo>[] list, [in] boolean includeSuspended);
void SubscribeBackgroundTask([in] IBackgroundTaskSubscriber subscriber, [in] unsigned int flag);
void UnsubscribeBackgroundTask([in] IBackgroundTaskSubscriber subscriber, [in] unsigned int flag);
void GetTransientTaskApps([out] TransientTaskAppInfo[] list);
void GetContinuousTaskApps([out] ContinuousTaskCallbackInfo[] list);
void ApplyEfficiencyResources([in] EfficiencyResourceInfo resourceInfo);
void ResetAllEfficiencyResources();
void GetAllEfficiencyResources([out] EfficiencyResourceInfo[] list);
void GetEfficiencyResourcesInfos([out] ResourceCallbackInfo[] appList, [out] ResourceCallbackInfo[] procList);
void StopContinuousTask([in] int uid, [in] int pid, [in] unsigned int taskType, [in] String key);
void SuspendContinuousTask([in] int uid, [in] int pid, [in] int reason, [in] String key, [in] boolean isStandby);
void ActiveContinuousTask([in] int uid, [in] int pid, [in] String key, [in] boolean isStandby);
void RequestBackgroundRunningForInner([in] ContinuousTaskParamForInner taskParam);
void RequestGetContinuousTasksByUidForInner([in] int uid, [out] ContinuousTaskInfo[] list);
void PauseTransientTaskTimeForInner([in] int uid);
void StartTransientTaskTimeForInner([in] int uid);
void AVSessionNotifyUpdateNotification([in] int uid, [in] int pid, [in] boolean isPublish);
void SetBgTaskConfig([in] String configData, [in] int sourceType);
[oneway] void SuspendContinuousAudioTask([in] int uid);
void IsModeSupported([in] ContinuousTaskParam taskParam);
void SetSupportedTaskKeepingProcesses([in] Set<String> processSet);
[oneway] void SetMaliciousAppConfig([in] Set<String> maliciousAppSet);
void RequestAuthFromUser([in] ContinuousTaskParam taskParam, [in] IExpiredCallback expiredCallback, [out] int notificationId);
void CheckSpecialScenarioAuth([in] int appIndex, [out] unsigned int authResult, [in] int apiVersion);
void CheckTaskAuthResult([in] String bundleName, [in] int userId, [in] int appIndex);
void EnableContinuousTaskRequest([in] int uid, [in] boolean isEnable);
void SetBackgroundTaskState([in] BackgroundTaskStateInfo taskParam);
void GetBackgroundTaskState([in] BackgroundTaskStateInfo taskParam, [out] unsigned int authResult);
void GetAllContinuousTasksBySystem([out] sharedptr<ContinuousTaskInfo>[] list);
[oneway] void SetSpecialExemptedProcess([in] Set<String> bundleNameSet);
void GetAllContinuousTaskApps([out] ContinuousTaskCallbackInfo[] list);
[oneway] void SendNotificationByDeteTask([in] Set<String> taskKeys);
void RemoveAuthRecord([in] ContinuousTaskParam taskParam);
}