/*
 * 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.
 */

sequenceable input_method_property..OHOS.MiscServices.Property;
sequenceable input_method_property..OHOS.MiscServices.SubProperty;
sequenceable input_method_utils..OHOS.MiscServices.CursorInfoInner;
sequenceable input_window_info..OHOS.MiscServices.InputWindowStatus;
sequenceable input_window_info..OHOS.MiscServices.ImeWindowInfo;
sequenceable input_status_info..OHOS.MiscServices.InputStartInfo;
sequenceable input_status_info..OHOS.MiscServices.InputStopInfo;
sequenceable input_status_info..OHOS.MiscServices.BoundImeInfo;
sequenceable OHOS.IRemoteObject;
import InputMethodClientTypes;
interface OHOS.MiscServices.IInputClient {
    void OnInputReady([in] IRemoteObject agent, [in] BindImeInfo imeInfo);
    [oneway] void OnInputStop([in] boolean isStopInactiveClient, [in] IRemoteObject object, [in] boolean isSendKeyboardStatus, [in] boolean isStopByMultiPreemptInProc);
    [oneway] void OnInputStopAsync([in] boolean isStopInactiveClient, [in] boolean isSendKeyboardStatus, [in] boolean isStopByMultiPreemptInProc);
    void OnSwitchInput([in] Property property, [in] SubProperty subProperty, [in] int userId);
    void OnPanelStatusChange([in] unsigned int status, [in] ImeWindowInfo info);
    void NotifyInputStart([in] InputStartInfo inputStartInfo);
    void NotifyInputStop([in] InputStopInfo inputStopInfo);
    [oneway] void NotifySoftKeyBoardInfoChanged([in] int userId, [in] BoundImeInfo oldImeInfo, [in] BoundImeInfo newImeInfo);
    [oneway] void DeactivateClient();
    void OnImeMirrorStop([in] IRemoteObject object);
    void GetCurrentCursorInfo([out] CursorInfoInner cursorInfo);
}