/*
 * 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.
 */
 
import AccessibilityIpcTypes;
 
sequenceable parcel.accessibility_ability_info_parcel..OHOS.Accessibility.AccessibilityAbilityInfoParcel;
sequenceable parcel.accessibility_caption_parcel..OHOS.Accessibility.CaptionPropertyParcel;
sequenceable parcel.accessibility_event_info_parcel..OHOS.Accessibility.AccessibilityEventInfoParcel;
sequenceable parcel.accessibility_bundle_senior_mode_info_parcel..OHOS.Accessibility.AccessibilityBundleSeniorModeInfoParcel;
interface OHOS.Accessibility.IAccessibleAbilityManagerStateObserver;
interface OHOS.Accessibility.IAccessibleAbilityManagerCaptionObserver;
interface OHOS.Accessibility.IAccessibilityEnableAbilityListsObserver;
interface OHOS.Accessibility.IAccessibilityEnableAbilityCallbackObserver;
interface OHOS.Accessibility.IAccessibilityElementOperator;
interface OHOS.Accessibility.IAccessibleAbilityManagerConfigObserver;
interface OHOS.Accessibility.IAccessibilityAppSeniorModeStateObserver;
sequenceable OHOS.IRemoteObject;
rawdata OHOS.Accessibility.AccessibilitySecCompRawdata;

interface OHOS.Accessibility.IAccessibleAbilityManagerService {
    [oneway] void SendEvent([in] AccessibilityEventInfoParcel eventInfoParcel, [in] int flag);
    void RegisterStateObserver([in] IAccessibleAbilityManagerStateObserver observer, [out] unsigned int state);
    void RegisterCaptionObserver([in] IAccessibleAbilityManagerCaptionObserver observer);
    [oneway] void RegisterEnableAbilityListsObserver([in] IAccessibilityEnableAbilityListsObserver observer);
    [oneway] void RegisterEnableAbilityCallbackObserver([in] IAccessibilityEnableAbilityCallbackObserver observer);
    void GetAbilityList([in] unsigned int abilityTypes, [in] int stateType, [out] AccessibilityAbilityInfoParcel[] infos);
    [oneway] void RegisterElementOperatorByWindowId([in] int windowId, [in] IAccessibilityElementOperator elementOperator, [in] unsigned long displayId);
    [oneway] void RegisterElementOperatorByParameter([in] RegistrationPara parameter, [in] IAccessibilityElementOperator elementOperator);
    [oneway] void DeregisterElementOperatorByWindowId([in] int windowId, [in] unsigned long displayId);
    [oneway] void DeregisterElementOperatorByWindowIdAndTreeId([in] int windowId, [in] int treeId, [in] unsigned long displayId);
    [oneway] void RegisterSeniorModeStateObserver([in] IAccessibilityAppSeniorModeStateObserver observer);
    void GetCaptionProperty([out] CaptionPropertyParcel caption, [in] boolean isPermissionRequired);
    void GetCaptionState([out] boolean state, [in] boolean isPermissionRequired);
    void SetCaptionProperty([in] CaptionPropertyParcel caption, [in] boolean isPermissionRequired);
    void SetCaptionState([in] boolean state, [in] boolean isPermissionRequired);
    void EnableAbility([in] String name, [in] unsigned int capabilities, [in] boolean connectCallBackFlag);
    void GetEnabledAbilities([out] String[] enabledAbilities);
    void DisableAbility([in] String name);
    void SetMagnificationState([in] boolean state);
    void GetActiveWindow([out] int windowId);
    void GetActiveWindow([out] int windowId, [in] boolean systemApi);
    void CheckExtensionAbilityPermission([inout] String processName);
    void EnableUITestAbility([in] IRemoteObject obj, [in] int userId, [out] int actualUserId);
    void DisableUITestAbility([in] int userId);
    void SetScreenMagnificationState([in] boolean state);
    void SetShortKeyState([in] boolean state);
    void SetMouseKeyState([in] boolean state);
    void SetMouseAutoClick([in] int time);
    void SetShortkeyTarget([in] String name);
    void SetShortkeyMultiTarget([in] String[] name);
    void SetHighContrastTextState([in] boolean state);
    void SetInvertColorState([in] boolean state);
    void SetAnimationOffState([in] boolean state);
    void SetAudioMonoState([in] boolean state);
    void SetDaltonizationState([in] boolean state);
    void SetDaltonizationColorFilter([in] unsigned int filter);
    void SetContentTimeout([in] unsigned int time);
    void SetBrightnessDiscount([in] float discount);
    void SetAudioBalance([in] float balance);
    void SetClickResponseTime([in] unsigned int time);
    void SetIgnoreRepeatClickState([in] boolean state);
    void SetIgnoreRepeatClickTime([in] unsigned int time);
    void GetScreenMagnificationState([out] boolean state);
    void GetShortKeyState([out] boolean state);
    void GetMouseKeyState([out] boolean state);
    void GetMouseAutoClick([out] int time);
    void GetShortkeyTarget([out] String name);
    void GetShortkeyMultiTarget([out] String[] name);
    void GetHighContrastTextState([out] boolean state);
    void GetInvertColorState([out] boolean state);
    void GetAnimationOffState([out] boolean state);
    void GetAudioMonoState([out] boolean state);
    void GetDaltonizationState([out] boolean state);
    void GetDaltonizationColorFilter([out] unsigned int filter);
    void GetContentTimeout([out] unsigned int time);
    void GetBrightnessDiscount([out] float brightness);
    void GetAudioBalance([out] float balance);
    void GetClickResponseTime([out] unsigned int time);
    void GetIgnoreRepeatClickState([out] boolean state);
    void GetIgnoreRepeatClickTime([out] unsigned int time);
    void GetFlashReminderSwitch([out] boolean state);
    void GetSeniorModeState([out] boolean state);
    void GetAllConfigs([out] AccessibilityConfigData configData, [out] CaptionPropertyParcel caption);
    void GetFocusedWindowId([out] int focusedWindowId);
    void RegisterConfigObserver([in] IAccessibleAbilityManagerConfigObserver observer);
    void RemoveRequestId([in] int requestId);
    void GetRootParentId([in] int windowsId, [in] int treeId, [out] long parentId);
    void GetRootParentId([in] int windowsId, [in] int treeId, [out] long parentId, [in] boolean systemApi);
    void GetScreenReaderState([out] boolean state);
    void SetEnhanceConfig([in] AccessibilitySecCompRawdata rawData);
    void SearchNeedEvents([out] unsigned int[] needEvents);
    void GetReadableRules([out] String name);
    void DeRegisterCaptionObserver([in] IRemoteObject obj);
    void DeRegisterEnableAbilityListsObserver([in] IRemoteObject obj);
    void DeRegisterEnableAbilityCallbackObserver([in] IRemoteObject obj);
    void DeRegisterConfigObserver([in] IRemoteObject obj);
    void IsInnerWindowRootElement([in] long elementId, [out] boolean state);
    void GetSeniorModeStateForApp([out] boolean state);
    void SetSeniorModeStateForApp([in] boolean state);
    void GetSeniorModeStateForApp([in] String name, [in] int appIndex, [out] boolean state);
    void SetSeniorModeStateForApp([in] AccessibilityBundleSeniorModeInfoParcel[] infos);
    void DeRegisterSeniorModeStateObserver([in] IRemoteObject obj);
}