/*
* Copyright (c) 2025 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.
*/
package OHOS.SysInstaller;
sequenceable OHOS.SysInstaller.BufferInfoParcel;
import Types;
import ISysInstallerCallback;
option_stub_hooks on;
interface OHOS.SysInstaller.ISysInstaller {
void SysInstallerInit([in] String taskId, [in] boolean bStreamUpgrade);
[oneway] void StartUpdatePackageZip([in] String taskId, [in] String pkgPath);
void StartStreamUpdate();
void StopStreamUpdate();
void ProcessStreamData([in] BufferInfoParcel bufferParcel);
void SetUpdateCallback([in] String taskId, [in] ISysInstallerCallback updateCallback);
void GetUpdateStatus([in] String taskId);
void StartUpdateParaZip([in] String taskId, [in] String pkgPath, [in] String location, [in] String cfgDir);
void StartDeleteParaZip([in] String taskId, [in] String location, [in] String cfgDir);
void AccDecompressAndVerifyPkg([in] String taskId, [in] String srcPath, [in] String dstPath, [in] unsigned int type);
void AccDeleteDir([in] String taskId, [in] String dstPath);
void CancelUpdateVabPackageZip([in] String taskId);
[oneway] void StartUpdateVabPackageZip([in] String taskId, [in] List<String> pkgPath);
void StartUpdateSingularPackageZip([in] String taskId, [in] String pkgPath, [in] String type);
[oneway] void StartVabMerge([in] String taskId);
void ClearVabMetadataAndCow();
void VabUpdateActive([in] VabActiveMode mode);
void GetMetadataResult([in] String action, [out] boolean metadataResult);
void GetPartitionAvailableSize([in] OrderedMap<String, unsigned long> dtsCowsSize,
[in] OrderedMap<String, unsigned long> dtsImgsSize, [in] PartitionInfo partitionInfo,
[out] unsigned long availSize);
void CreateVabSnapshotCowImg([in] VabCowInfo cowInfo, [out] unsigned long createdSize, [out] boolean isCreated);
void GetUpdateResult([in] String taskId, [in] String taskType, [in] String resultType, [out] String updateResult);
void ExitSysInstaller();
void StartAbSync();
void SetAiMergeState();
void SetUpdateVabMode([in] String taskId, [in] UpdateVabMode mode);
void StartUpdateABPackageZip([in] String taskId, [in] List<String> pkgPath);
void InstallCloudRom([in] String taskId, [in] InstallMode installMode, [in] List<FeatureInfo> featureInfos, [in] RebootStatus rebootStatus);
void UninstallCloudRom([in] String taskId, [in] List<FeatureInfo> featureInfos, [in] RebootStatus rebootStatus);
void GetFeatureStatus([in] List<FeatureInfo> featureInfos, [inout] List<FeatureStatus> statusInfos);
void GetAllFeatureStatus([in] String baseVersion, [inout] List<FeatureStatus> statusInfos);
void ClearCloudRom([in] String baseVersion, [in] String featureName);
void UpdateCloudRomVersion([in] String baseVersion);
void ClearVabPatch();
void GetPartitionStashSize([in] String taskId, [in] List<String> pkgPaths, [out] unsigned long stashSize);
}