161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (C) 2021 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 InputKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport { MouseEvent } from './@ohos.multimodalInput.mouseEvent';
2261847f8eSopenharmony_ciimport { TouchEvent } from './@ohos.multimodalInput.touchEvent';
2361847f8eSopenharmony_ci/**
2461847f8eSopenharmony_ci * Global Key Event Injection
2561847f8eSopenharmony_ci *
2661847f8eSopenharmony_ci * @namespace inputEventClient
2761847f8eSopenharmony_ci * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
2861847f8eSopenharmony_ci * @systemapi hide for inner use
2961847f8eSopenharmony_ci * @since 8
3061847f8eSopenharmony_ci */
3161847f8eSopenharmony_cideclare namespace inputEventClient {
3261847f8eSopenharmony_ci  /**
3361847f8eSopenharmony_ci   * Defines event of key that user want to inject.
3461847f8eSopenharmony_ci   *
3561847f8eSopenharmony_ci   * @interface KeyEvent
3661847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
3761847f8eSopenharmony_ci   * @systemapi hide for inner use
3861847f8eSopenharmony_ci   * @since 8
3961847f8eSopenharmony_ci   */
4061847f8eSopenharmony_ci  interface KeyEvent {
4161847f8eSopenharmony_ci    /**
4261847f8eSopenharmony_ci     * The status of key.
4361847f8eSopenharmony_ci     * @type { boolean }
4461847f8eSopenharmony_ci     * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
4561847f8eSopenharmony_ci     * @systemapi hide for inner use
4661847f8eSopenharmony_ci     * @since 8
4761847f8eSopenharmony_ci     */
4861847f8eSopenharmony_ci    isPressed: boolean;
4961847f8eSopenharmony_ci
5061847f8eSopenharmony_ci    /**
5161847f8eSopenharmony_ci     * The keyCode value of key.
5261847f8eSopenharmony_ci     * @type { number }
5361847f8eSopenharmony_ci     * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
5461847f8eSopenharmony_ci     * @systemapi hide for inner use
5561847f8eSopenharmony_ci     * @since 8
5661847f8eSopenharmony_ci     */
5761847f8eSopenharmony_ci    keyCode: number;
5861847f8eSopenharmony_ci
5961847f8eSopenharmony_ci    /**
6061847f8eSopenharmony_ci     * Key hold duration.
6161847f8eSopenharmony_ci     * @type { number }
6261847f8eSopenharmony_ci     * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
6361847f8eSopenharmony_ci     * @systemapi hide for inner use
6461847f8eSopenharmony_ci     * @since 8
6561847f8eSopenharmony_ci     */
6661847f8eSopenharmony_ci    keyDownDuration: number;
6761847f8eSopenharmony_ci
6861847f8eSopenharmony_ci    /**
6961847f8eSopenharmony_ci     * Whether the key is blocked.
7061847f8eSopenharmony_ci     * @type { boolean }
7161847f8eSopenharmony_ci     * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
7261847f8eSopenharmony_ci     * @systemapi hide for inner use
7361847f8eSopenharmony_ci     * @since 8
7461847f8eSopenharmony_ci     */
7561847f8eSopenharmony_ci    isIntercepted: boolean;
7661847f8eSopenharmony_ci  }
7761847f8eSopenharmony_ci
7861847f8eSopenharmony_ci  /**
7961847f8eSopenharmony_ci   * Defines event of mouse that user want to inject.
8061847f8eSopenharmony_ci   *
8161847f8eSopenharmony_ci   * @interface MouseEventData
8261847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
8361847f8eSopenharmony_ci   * @systemapi hide for inner use
8461847f8eSopenharmony_ci   * @since 11
8561847f8eSopenharmony_ci   */
8661847f8eSopenharmony_ci  interface MouseEventData {
8761847f8eSopenharmony_ci    /**
8861847f8eSopenharmony_ci     * Inject mouse event.
8961847f8eSopenharmony_ci     *
9061847f8eSopenharmony_ci     * @type { MouseEvent }
9161847f8eSopenharmony_ci     * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
9261847f8eSopenharmony_ci     * @systemapi hide for inner use
9361847f8eSopenharmony_ci     * @since 11
9461847f8eSopenharmony_ci     */
9561847f8eSopenharmony_ci    mouseEvent: MouseEvent;
9661847f8eSopenharmony_ci  }
9761847f8eSopenharmony_ci
9861847f8eSopenharmony_ci  /**
9961847f8eSopenharmony_ci   * Defines event of touch that user want to inject.
10061847f8eSopenharmony_ci   *
10161847f8eSopenharmony_ci   * @interface TouchEventData
10261847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
10361847f8eSopenharmony_ci   * @systemapi hide for inner use
10461847f8eSopenharmony_ci   * @since 11
10561847f8eSopenharmony_ci   */
10661847f8eSopenharmony_ci  interface TouchEventData {
10761847f8eSopenharmony_ci    /**
10861847f8eSopenharmony_ci     * Inject touch event.
10961847f8eSopenharmony_ci     *
11061847f8eSopenharmony_ci     * @type { TouchEvent }
11161847f8eSopenharmony_ci     * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
11261847f8eSopenharmony_ci     * @systemapi hide for inner use
11361847f8eSopenharmony_ci     * @since 11
11461847f8eSopenharmony_ci     */
11561847f8eSopenharmony_ci    touchEvent: TouchEvent;
11661847f8eSopenharmony_ci  }
11761847f8eSopenharmony_ci
11861847f8eSopenharmony_ci  /**
11961847f8eSopenharmony_ci   * Defines event of key that user want to inject.
12061847f8eSopenharmony_ci   *
12161847f8eSopenharmony_ci   * @interface KeyEventData
12261847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
12361847f8eSopenharmony_ci   * @systemapi hide for inner use
12461847f8eSopenharmony_ci   * @since 11
12561847f8eSopenharmony_ci   */
12661847f8eSopenharmony_ci  interface KeyEventData {
12761847f8eSopenharmony_ci    /**
12861847f8eSopenharmony_ci     * Inject key event.
12961847f8eSopenharmony_ci     *
13061847f8eSopenharmony_ci     * @type { KeyEvent }
13161847f8eSopenharmony_ci     * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
13261847f8eSopenharmony_ci     * @systemapi hide for inner use
13361847f8eSopenharmony_ci     * @since 11
13461847f8eSopenharmony_ci     */
13561847f8eSopenharmony_ci    keyEvent: KeyEvent;
13661847f8eSopenharmony_ci  }
13761847f8eSopenharmony_ci
13861847f8eSopenharmony_ci  /**
13961847f8eSopenharmony_ci   * Inject system keys.
14061847f8eSopenharmony_ci   *
14161847f8eSopenharmony_ci   * @param { KeyEventData } keyEvent - the key event to be injected.
14261847f8eSopenharmony_ci   * @throws { BusinessError } 202 - SystemAPI permission error.
14361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
14461847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
14561847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
14661847f8eSopenharmony_ci   * @systemapi hide for inner use
14761847f8eSopenharmony_ci   * @since 11
14861847f8eSopenharmony_ci   */
14961847f8eSopenharmony_ci  /**
15061847f8eSopenharmony_ci   * Inject system keys.
15161847f8eSopenharmony_ci   *
15261847f8eSopenharmony_ci   * @permission ohos.permission.INJECT_INPUT_EVENT
15361847f8eSopenharmony_ci   * @param { KeyEventData } keyEvent - the key event to be injected.
15461847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied.
15561847f8eSopenharmony_ci   * @throws { BusinessError } 202 - SystemAPI permission error.
15661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
15761847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
15861847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
15961847f8eSopenharmony_ci   * @systemapi hide for inner use
16061847f8eSopenharmony_ci   * @since 12
16161847f8eSopenharmony_ci   */
16261847f8eSopenharmony_ci  function injectKeyEvent(keyEvent: KeyEventData): void;
16361847f8eSopenharmony_ci
16461847f8eSopenharmony_ci  /**
16561847f8eSopenharmony_ci   * Inject system keys.
16661847f8eSopenharmony_ci   *
16761847f8eSopenharmony_ci   * @param { { KeyEvent } } KeyEvent - the key event to be injected.
16861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
16961847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
17061847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
17161847f8eSopenharmony_ci   * @systemapi hide for inner use
17261847f8eSopenharmony_ci   * @since 8
17361847f8eSopenharmony_ci   */
17461847f8eSopenharmony_ci  /**
17561847f8eSopenharmony_ci   * Inject system keys.
17661847f8eSopenharmony_ci   *
17761847f8eSopenharmony_ci   * @permission ohos.permission.INJECT_INPUT_EVENT
17861847f8eSopenharmony_ci   * @param { { KeyEvent } } KeyEvent - the key event to be injected.
17961847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied.
18061847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission denied, non-system app called system api.
18161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
18261847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
18361847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
18461847f8eSopenharmony_ci   * @systemapi hide for inner use
18561847f8eSopenharmony_ci   * @since 12
18661847f8eSopenharmony_ci   */
18761847f8eSopenharmony_ci  function injectEvent({ KeyEvent: KeyEvent }): void;
18861847f8eSopenharmony_ci
18961847f8eSopenharmony_ci  /**
19061847f8eSopenharmony_ci   * Inject mouse event.
19161847f8eSopenharmony_ci   *
19261847f8eSopenharmony_ci   * @param { MouseEventData } mouseEvent - the mouse event to be injected.
19361847f8eSopenharmony_ci   * @throws { BusinessError } 202 - SystemAPI permission error.
19461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
19561847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
19661847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
19761847f8eSopenharmony_ci   * @systemapi hide for inner use
19861847f8eSopenharmony_ci   * @since 11
19961847f8eSopenharmony_ci   */
20061847f8eSopenharmony_ci  /**
20161847f8eSopenharmony_ci   * Inject mouse event.
20261847f8eSopenharmony_ci   *
20361847f8eSopenharmony_ci   * @permission ohos.permission.INJECT_INPUT_EVENT
20461847f8eSopenharmony_ci   * @param { MouseEventData } mouseEvent - the mouse event to be injected.
20561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied.
20661847f8eSopenharmony_ci   * @throws { BusinessError } 202 - SystemAPI permission error.
20761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
20861847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
20961847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
21061847f8eSopenharmony_ci   * @systemapi hide for inner use
21161847f8eSopenharmony_ci   * @since 12
21261847f8eSopenharmony_ci   */
21361847f8eSopenharmony_ci  function injectMouseEvent(mouseEvent: MouseEventData): void;
21461847f8eSopenharmony_ci
21561847f8eSopenharmony_ci  /**
21661847f8eSopenharmony_ci   * Inject touch event.
21761847f8eSopenharmony_ci   *
21861847f8eSopenharmony_ci   * @param { TouchEventData } touchEvent - the touch event to be injected.
21961847f8eSopenharmony_ci   * @throws { BusinessError } 202 - SystemAPI permission error.
22061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
22161847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
22261847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
22361847f8eSopenharmony_ci   * @systemapi hide for inner use
22461847f8eSopenharmony_ci   * @since 11
22561847f8eSopenharmony_ci   */
22661847f8eSopenharmony_ci  /**
22761847f8eSopenharmony_ci   * Inject touch event.
22861847f8eSopenharmony_ci   *
22961847f8eSopenharmony_ci   * @permission ohos.permission.INJECT_INPUT_EVENT
23061847f8eSopenharmony_ci   * @param { TouchEventData } touchEvent - the touch event to be injected.
23161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied.
23261847f8eSopenharmony_ci   * @throws { BusinessError } 202 - SystemAPI permission error.
23361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
23461847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
23561847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
23661847f8eSopenharmony_ci   * @systemapi hide for inner use
23761847f8eSopenharmony_ci   * @since 12
23861847f8eSopenharmony_ci   */
23961847f8eSopenharmony_ci  function injectTouchEvent(touchEvent: TouchEventData): void;
24061847f8eSopenharmony_ci
24161847f8eSopenharmony_ci  /**
24261847f8eSopenharmony_ci   * Permit event injection permission.
24361847f8eSopenharmony_ci   *
24461847f8eSopenharmony_ci   * @permission ohos.permission.INJECT_INPUT_EVENT
24561847f8eSopenharmony_ci   * @param { boolean } result - Authorization result.
24661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied.
24761847f8eSopenharmony_ci   * @throws { BusinessError } 202 - SystemAPI permission error.
24861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
24961847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
25061847f8eSopenharmony_ci   * @syscap SystemCapability.MultimodalInput.Input.InputSimulator
25161847f8eSopenharmony_ci   * @systemapi hide for inner use
25261847f8eSopenharmony_ci   * @since 12
25361847f8eSopenharmony_ci   */
25461847f8eSopenharmony_ci   function permitInjection(result: boolean): void;
25561847f8eSopenharmony_ci}
25661847f8eSopenharmony_ci
25761847f8eSopenharmony_ciexport default inputEventClient;
258