161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2022-2023 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 AccessibilityKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport type accessibility from './@ohos.accessibility';
2261847f8eSopenharmony_ciimport type { KeyEvent } from './@ohos.multimodalInput.keyEvent';
2361847f8eSopenharmony_ciimport type {
2461847f8eSopenharmony_ci  AccessibilityElement as _AccessibilityElement,
2561847f8eSopenharmony_ci  ElementAttributeValues as _ElementAttributeValues,
2661847f8eSopenharmony_ci  FocusDirection as _FocusDirection,
2761847f8eSopenharmony_ci  FocusType as _FocusType,
2861847f8eSopenharmony_ci  WindowType as _WindowType,
2961847f8eSopenharmony_ci  Rect as _Rect,
3061847f8eSopenharmony_ci} from './application/AccessibilityExtensionContext';
3161847f8eSopenharmony_ciimport type * as _AccessibilityExtensionContext from './application/AccessibilityExtensionContext';
3261847f8eSopenharmony_ci
3361847f8eSopenharmony_ci
3461847f8eSopenharmony_ci/**
3561847f8eSopenharmony_ci * Indicates an accessibility element.
3661847f8eSopenharmony_ci * Supports querying element attributes, requesting execution actions, and finding child elements by condition.
3761847f8eSopenharmony_ci *
3861847f8eSopenharmony_ci * @typedef {_AccessibilityElement}
3961847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
4061847f8eSopenharmony_ci * @since 10
4161847f8eSopenharmony_ci */
4261847f8eSopenharmony_ciexport type AccessibilityElement = _AccessibilityElement;
4361847f8eSopenharmony_ci
4461847f8eSopenharmony_ci/**
4561847f8eSopenharmony_ci * Indicates the possible attributes of the element and the type of the attribute value.
4661847f8eSopenharmony_ci *
4761847f8eSopenharmony_ci * @typedef {_ElementAttributeValues}
4861847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
4961847f8eSopenharmony_ci * @since 10
5061847f8eSopenharmony_ci */
5161847f8eSopenharmony_ciexport type ElementAttributeValues = _ElementAttributeValues;
5261847f8eSopenharmony_ci
5361847f8eSopenharmony_ci/**
5461847f8eSopenharmony_ci * Indicates the direction of the search focus.
5561847f8eSopenharmony_ci *
5661847f8eSopenharmony_ci * @typedef {_FocusDirection}
5761847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
5861847f8eSopenharmony_ci * @since 10
5961847f8eSopenharmony_ci */
6061847f8eSopenharmony_ciexport type FocusDirection = _FocusDirection;
6161847f8eSopenharmony_ci
6261847f8eSopenharmony_ci/**
6361847f8eSopenharmony_ci * Indicates the key of the attribute value.
6461847f8eSopenharmony_ci *
6561847f8eSopenharmony_ci * @typedef {keyof ElementAttributeValues}
6661847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
6761847f8eSopenharmony_ci * @since 10
6861847f8eSopenharmony_ci */
6961847f8eSopenharmony_ciexport type ElementAttributeKeys = keyof ElementAttributeValues;
7061847f8eSopenharmony_ci
7161847f8eSopenharmony_ci/**
7261847f8eSopenharmony_ci * Indicates the type of the focus.
7361847f8eSopenharmony_ci *
7461847f8eSopenharmony_ci * @typedef {_FocusType}
7561847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
7661847f8eSopenharmony_ci * @since 10
7761847f8eSopenharmony_ci */
7861847f8eSopenharmony_ciexport type FocusType = _FocusType;
7961847f8eSopenharmony_ci
8061847f8eSopenharmony_ci/**
8161847f8eSopenharmony_ci * Indicates the type of the window.
8261847f8eSopenharmony_ci *
8361847f8eSopenharmony_ci * @typedef {_WindowType}
8461847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
8561847f8eSopenharmony_ci * @since 10
8661847f8eSopenharmony_ci */
8761847f8eSopenharmony_ciexport type WindowType = _WindowType;
8861847f8eSopenharmony_ci
8961847f8eSopenharmony_ci/**
9061847f8eSopenharmony_ci * Indicates rectangle.
9161847f8eSopenharmony_ci *
9261847f8eSopenharmony_ci * @typedef {_Rect}
9361847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
9461847f8eSopenharmony_ci * @since 10
9561847f8eSopenharmony_ci */
9661847f8eSopenharmony_ciexport type Rect = _Rect;
9761847f8eSopenharmony_ci
9861847f8eSopenharmony_ci/**
9961847f8eSopenharmony_ci * The accessibility extension context. Used to configure, query information, and inject gestures.
10061847f8eSopenharmony_ci *
10161847f8eSopenharmony_ci * @typedef {_AccessibilityExtensionContext.default}
10261847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
10361847f8eSopenharmony_ci * @since 10
10461847f8eSopenharmony_ci */
10561847f8eSopenharmony_ci
10661847f8eSopenharmony_ciexport type AccessibilityExtensionContext = _AccessibilityExtensionContext.default;
10761847f8eSopenharmony_ci
10861847f8eSopenharmony_ci/**
10961847f8eSopenharmony_ci * class of accessibility extension ability.
11061847f8eSopenharmony_ci *
11161847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
11261847f8eSopenharmony_ci * @since 9
11361847f8eSopenharmony_ci */
11461847f8eSopenharmony_ciexport default class AccessibilityExtensionAbility {
11561847f8eSopenharmony_ci  /**
11661847f8eSopenharmony_ci   * Indicates accessibility extension ability context.
11761847f8eSopenharmony_ci   *
11861847f8eSopenharmony_ci   * @type {AccessibilityExtensionContext}
11961847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
12061847f8eSopenharmony_ci   * @since 9
12161847f8eSopenharmony_ci   */
12261847f8eSopenharmony_ci  context: AccessibilityExtensionContext;
12361847f8eSopenharmony_ci
12461847f8eSopenharmony_ci  /**
12561847f8eSopenharmony_ci   * Called when extension ability is connected.
12661847f8eSopenharmony_ci   *
12761847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
12861847f8eSopenharmony_ci   * @since 9
12961847f8eSopenharmony_ci   * @deprecated since 12
13061847f8eSopenharmony_ci   */
13161847f8eSopenharmony_ci  onConnect(): void;
13261847f8eSopenharmony_ci
13361847f8eSopenharmony_ci  /**
13461847f8eSopenharmony_ci   * Called when extension ability is disconnected.
13561847f8eSopenharmony_ci   *
13661847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
13761847f8eSopenharmony_ci   * @since 9
13861847f8eSopenharmony_ci   * @deprecated since 12
13961847f8eSopenharmony_ci   */
14061847f8eSopenharmony_ci  onDisconnect(): void;
14161847f8eSopenharmony_ci
14261847f8eSopenharmony_ci  /**
14361847f8eSopenharmony_ci   * Called when an accessibility event occurs, such as when the user touches the application interface.
14461847f8eSopenharmony_ci   *
14561847f8eSopenharmony_ci   * @param { AccessibilityEvent } event Indicates an accessibility event.
14661847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
14761847f8eSopenharmony_ci   * @since 9
14861847f8eSopenharmony_ci   * @deprecated since 12
14961847f8eSopenharmony_ci   */
15061847f8eSopenharmony_ci  onAccessibilityEvent(event: AccessibilityEvent): void;
15161847f8eSopenharmony_ci
15261847f8eSopenharmony_ci  /**
15361847f8eSopenharmony_ci   * Called when a physical key is pressed, such as when the user presses the volume button .
15461847f8eSopenharmony_ci   *
15561847f8eSopenharmony_ci   * @param { KeyEvent } keyEvent Indicates the physical key event.
15661847f8eSopenharmony_ci   * @returns { boolean }
15761847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
15861847f8eSopenharmony_ci   * @since 9
15961847f8eSopenharmony_ci   * @deprecated since 12
16061847f8eSopenharmony_ci   */
16161847f8eSopenharmony_ci  onKeyEvent(keyEvent: KeyEvent): boolean;
16261847f8eSopenharmony_ci}
16361847f8eSopenharmony_ci
16461847f8eSopenharmony_ci/**
16561847f8eSopenharmony_ci * Indicates the accessibility event.
16661847f8eSopenharmony_ci * It provides the event type and the target element of the event if any.
16761847f8eSopenharmony_ci *
16861847f8eSopenharmony_ci * @typedef AccessibilityEvent
16961847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
17061847f8eSopenharmony_ci * @since 9
17161847f8eSopenharmony_ci */
17261847f8eSopenharmony_cideclare interface AccessibilityEvent {
17361847f8eSopenharmony_ci  /**
17461847f8eSopenharmony_ci   * EventType
17561847f8eSopenharmony_ci   *
17661847f8eSopenharmony_ci   * @type { accessibility.EventType | accessibility.WindowUpdateType | TouchGuideType | GestureType | PageUpdateType }
17761847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
17861847f8eSopenharmony_ci   * @since 9
17961847f8eSopenharmony_ci   */
18061847f8eSopenharmony_ci  eventType: accessibility.EventType | accessibility.WindowUpdateType | TouchGuideType | GestureType | PageUpdateType;
18161847f8eSopenharmony_ci
18261847f8eSopenharmony_ci  /**
18361847f8eSopenharmony_ci   * Target
18461847f8eSopenharmony_ci   *
18561847f8eSopenharmony_ci   * @type { ?AccessibilityElement }
18661847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
18761847f8eSopenharmony_ci   * @since 9
18861847f8eSopenharmony_ci   */
18961847f8eSopenharmony_ci  target?: AccessibilityElement;
19061847f8eSopenharmony_ci
19161847f8eSopenharmony_ci  /**
19261847f8eSopenharmony_ci   * TimeStamp
19361847f8eSopenharmony_ci   *
19461847f8eSopenharmony_ci   * @type { ?number }
19561847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
19661847f8eSopenharmony_ci   * @since 9
19761847f8eSopenharmony_ci   */
19861847f8eSopenharmony_ci  timeStamp?: number;
19961847f8eSopenharmony_ci
20061847f8eSopenharmony_ci  /**
20161847f8eSopenharmony_ci   * ElementId
20261847f8eSopenharmony_ci   *
20361847f8eSopenharmony_ci   * @type { ?number }
20461847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
20561847f8eSopenharmony_ci   * @since 12
20661847f8eSopenharmony_ci   */
20761847f8eSopenharmony_ci  elementId?: number;
20861847f8eSopenharmony_ci
20961847f8eSopenharmony_ci  /**
21061847f8eSopenharmony_ci   * The content of announce accessibility text.
21161847f8eSopenharmony_ci   *
21261847f8eSopenharmony_ci   * @type { ?string }
21361847f8eSopenharmony_ci   * @syscap SystemCapability.BarrierFree.Accessibility.Core
21461847f8eSopenharmony_ci   * @since 12
21561847f8eSopenharmony_ci   */
21661847f8eSopenharmony_ci  textAnnouncedForAccessibility?: string;
21761847f8eSopenharmony_ci}
21861847f8eSopenharmony_ci
21961847f8eSopenharmony_ci/**
22061847f8eSopenharmony_ci * Indicates the gesture type.
22161847f8eSopenharmony_ci * value range: { 'left' | 'leftThenRight' | 'leftThenUp' | 'leftThenDown' |
22261847f8eSopenharmony_ci * 'right' | 'rightThenLeft' | 'rightThenUp' | 'rightThenDown' |
22361847f8eSopenharmony_ci * 'up' | 'upThenLeft' | 'upThenRight' | 'upThenDown' |
22461847f8eSopenharmony_ci * 'down' | 'downThenLeft' | 'downThenRight' | 'downThenUp' }
22561847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
22661847f8eSopenharmony_ci * @since 9
22761847f8eSopenharmony_ci */
22861847f8eSopenharmony_ci/**
22961847f8eSopenharmony_ci * Indicates the gesture type.
23061847f8eSopenharmony_ci * value range: { 'left' | 'leftThenRight' | 'leftThenUp' | 'leftThenDown' |
23161847f8eSopenharmony_ci * 'right' | 'rightThenLeft' | 'rightThenUp' | 'rightThenDown' |
23261847f8eSopenharmony_ci * 'up' | 'upThenLeft' | 'upThenRight' | 'upThenDown' |
23361847f8eSopenharmony_ci * 'down' | 'downThenLeft' | 'downThenRight' | 'downThenUp' |
23461847f8eSopenharmony_ci * 'twoFingerSingleTap' | 'twoFingerDoubleTap' | 'twoFingerDoubleTapAndHold' | 'twoFingerTripleTap' |
23561847f8eSopenharmony_ci * 'twoFingerTripleTapAndHold' | 'threeFingerSingleTap' | 'threeFingerDoubleTap' | 'threeFingerDoubleTapAndHold' |
23661847f8eSopenharmony_ci * 'threeFingerTripleTap' | 'threeFingerTripleTapAndHold' | 'fourFingerSingleTap' | 'fourFingerDoubleTap' |
23761847f8eSopenharmony_ci * 'fourFingerDoubleTapAndHold' | 'fourFingerTripleTap' | 'fourFingerTripleTapAndHold' |
23861847f8eSopenharmony_ci * 'threeFingerSwipeUp' | 'threeFingerSwipeDown' | 'threeFingerSwipeLeft' | 'threeFingerSwipeRight' |
23961847f8eSopenharmony_ci * 'fourFingerSwipeUp' | 'fourFingerSwipeDown' | 'fourFingerSwipeLeft' | 'fourFingerSwipeRight' }
24061847f8eSopenharmony_ci* @typedef {'left' | 'leftThenRight' | 'leftThenUp' | 'leftThenDown' | 'right' | 'rightThenLeft' | 'rightThenUp' | 'rightThenDown' | 'up' | 'upThenLeft' | 'upThenRight' | 'upThenDown' | 'down' | 'downThenLeft' | 'downThenRight' | 'downThenUp' | 'twoFingerSingleTap' | 'twoFingerDoubleTap' | 'twoFingerDoubleTapAndHold' | 'twoFingerTripleTap' | 'twoFingerTripleTapAndHold' | 'threeFingerSingleTap' | 'threeFingerDoubleTap' | 'threeFingerDoubleTapAndHold' | 'threeFingerTripleTap' | 'threeFingerTripleTapAndHold' | 'fourFingerSingleTap' | 'fourFingerDoubleTap' | 'fourFingerDoubleTapAndHold' | 'fourFingerTripleTap' | 'fourFingerTripleTapAndHold' | 'threeFingerSwipeUp' | 'threeFingerSwipeDown' | 'threeFingerSwipeLeft' | 'threeFingerSwipeRight' | 'fourFingerSwipeUp' | 'fourFingerSwipeDown' | 'fourFingerSwipeLeft' | 'fourFingerSwipeRight'}
24161847f8eSopenharmony_ci* @syscap SystemCapability.BarrierFree.Accessibility.Core
24261847f8eSopenharmony_ci* @since 11
24361847f8eSopenharmony_ci*/
24461847f8eSopenharmony_citype GestureType = 'left' | 'leftThenRight' | 'leftThenUp' | 'leftThenDown' |
24561847f8eSopenharmony_ci  'right' | 'rightThenLeft' | 'rightThenUp' | 'rightThenDown' |
24661847f8eSopenharmony_ci  'up' | 'upThenLeft' | 'upThenRight' | 'upThenDown' |
24761847f8eSopenharmony_ci  'down' | 'downThenLeft' | 'downThenRight' | 'downThenUp' |
24861847f8eSopenharmony_ci  'twoFingerSingleTap' | 'twoFingerDoubleTap' | 'twoFingerDoubleTapAndHold' | 'twoFingerTripleTap' |
24961847f8eSopenharmony_ci  'twoFingerTripleTapAndHold' | 'threeFingerSingleTap' | 'threeFingerDoubleTap' | 'threeFingerDoubleTapAndHold' |
25061847f8eSopenharmony_ci  'threeFingerTripleTap' | 'threeFingerTripleTapAndHold' | 'fourFingerSingleTap' | 'fourFingerDoubleTap' |
25161847f8eSopenharmony_ci  'fourFingerDoubleTapAndHold' | 'fourFingerTripleTap' | 'fourFingerTripleTapAndHold' |
25261847f8eSopenharmony_ci  'threeFingerSwipeUp' | 'threeFingerSwipeDown' | 'threeFingerSwipeLeft' | 'threeFingerSwipeRight' |
25361847f8eSopenharmony_ci  'fourFingerSwipeUp' | 'fourFingerSwipeDown' | 'fourFingerSwipeLeft' | 'fourFingerSwipeRight';
25461847f8eSopenharmony_ci
25561847f8eSopenharmony_ci/**
25661847f8eSopenharmony_ci * Indicates the page update type.
25761847f8eSopenharmony_ci *
25861847f8eSopenharmony_ci * @typedef {'pageContentUpdate' | 'pageStateUpdate'}
25961847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
26061847f8eSopenharmony_ci * @since 9
26161847f8eSopenharmony_ci */
26261847f8eSopenharmony_citype PageUpdateType = 'pageContentUpdate' | 'pageStateUpdate';
26361847f8eSopenharmony_ci
26461847f8eSopenharmony_ci/**
26561847f8eSopenharmony_ci * Indicates the type of touch event during touch browsing.
26661847f8eSopenharmony_ci *
26761847f8eSopenharmony_ci * @typedef {'touchBegin' | 'touchEnd'}
26861847f8eSopenharmony_ci * @syscap SystemCapability.BarrierFree.Accessibility.Core
26961847f8eSopenharmony_ci * @since 9
27061847f8eSopenharmony_ci */
27161847f8eSopenharmony_citype TouchGuideType = 'touchBegin' | 'touchEnd';
272