161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2021-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 ArkUI
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ci/**
2261847f8eSopenharmony_ci * Defines the text data detector type.
2361847f8eSopenharmony_ci *
2461847f8eSopenharmony_ci * @enum { number }
2561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
2661847f8eSopenharmony_ci * @since 11
2761847f8eSopenharmony_ci */
2861847f8eSopenharmony_ci/**
2961847f8eSopenharmony_ci * Defines the text data detector type.
3061847f8eSopenharmony_ci *
3161847f8eSopenharmony_ci * @enum { number }
3261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
3361847f8eSopenharmony_ci * @atomicservice
3461847f8eSopenharmony_ci * @since 12
3561847f8eSopenharmony_ci */
3661847f8eSopenharmony_cideclare enum TextDataDetectorType {
3761847f8eSopenharmony_ci  /**
3861847f8eSopenharmony_ci   * Detector type phone number.
3961847f8eSopenharmony_ci   *
4061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
4161847f8eSopenharmony_ci   * @since 11
4261847f8eSopenharmony_ci   */  
4361847f8eSopenharmony_ci  /**
4461847f8eSopenharmony_ci   * Detector type phone number.
4561847f8eSopenharmony_ci   *
4661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
4761847f8eSopenharmony_ci   * @atomicservice
4861847f8eSopenharmony_ci   * @since 12
4961847f8eSopenharmony_ci   */   
5061847f8eSopenharmony_ci  PHONE_NUMBER = 0,
5161847f8eSopenharmony_ci
5261847f8eSopenharmony_ci  /**
5361847f8eSopenharmony_ci   * Detector type URL.
5461847f8eSopenharmony_ci   *
5561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
5661847f8eSopenharmony_ci   * @since 11
5761847f8eSopenharmony_ci   */ 
5861847f8eSopenharmony_ci  /**
5961847f8eSopenharmony_ci   * Detector type URL.
6061847f8eSopenharmony_ci   *
6161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
6261847f8eSopenharmony_ci   * @atomicservice
6361847f8eSopenharmony_ci   * @since 12
6461847f8eSopenharmony_ci   */
6561847f8eSopenharmony_ci  URL = 1,
6661847f8eSopenharmony_ci
6761847f8eSopenharmony_ci  /**
6861847f8eSopenharmony_ci   * Detector type email.
6961847f8eSopenharmony_ci   *
7061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
7161847f8eSopenharmony_ci   * @since 11
7261847f8eSopenharmony_ci   */ 
7361847f8eSopenharmony_ci  /**
7461847f8eSopenharmony_ci   * Detector type email.
7561847f8eSopenharmony_ci   *
7661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
7761847f8eSopenharmony_ci   * @atomicservice
7861847f8eSopenharmony_ci   * @since 12
7961847f8eSopenharmony_ci   */ 
8061847f8eSopenharmony_ci  EMAIL = 2,
8161847f8eSopenharmony_ci
8261847f8eSopenharmony_ci  /**
8361847f8eSopenharmony_ci   * Detector type address.
8461847f8eSopenharmony_ci   *
8561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
8661847f8eSopenharmony_ci   * @since 11
8761847f8eSopenharmony_ci   */
8861847f8eSopenharmony_ci  /**
8961847f8eSopenharmony_ci   * Detector type address.
9061847f8eSopenharmony_ci   *
9161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
9261847f8eSopenharmony_ci   * @atomicservice
9361847f8eSopenharmony_ci   * @since 12
9461847f8eSopenharmony_ci   */
9561847f8eSopenharmony_ci  ADDRESS = 3,
9661847f8eSopenharmony_ci
9761847f8eSopenharmony_ci  /**
9861847f8eSopenharmony_ci   * Detector type datetime.
9961847f8eSopenharmony_ci   *
10061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
10161847f8eSopenharmony_ci   * @atomicservice
10261847f8eSopenharmony_ci   * @since 12
10361847f8eSopenharmony_ci   */
10461847f8eSopenharmony_ci  DATE_TIME = 4,
10561847f8eSopenharmony_ci}
10661847f8eSopenharmony_ci  
10761847f8eSopenharmony_ci/**
10861847f8eSopenharmony_ci * Text data detector config.
10961847f8eSopenharmony_ci *
11061847f8eSopenharmony_ci * @interface TextDataDetectorConfig
11161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
11261847f8eSopenharmony_ci * @since 11
11361847f8eSopenharmony_ci */
11461847f8eSopenharmony_ci/**
11561847f8eSopenharmony_ci * Text data detector config.
11661847f8eSopenharmony_ci *
11761847f8eSopenharmony_ci * @interface TextDataDetectorConfig
11861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
11961847f8eSopenharmony_ci * @atomicservice
12061847f8eSopenharmony_ci * @since 12
12161847f8eSopenharmony_ci */
12261847f8eSopenharmony_cideclare interface TextDataDetectorConfig {
12361847f8eSopenharmony_ci  /**
12461847f8eSopenharmony_ci   * Text data detector types.
12561847f8eSopenharmony_ci   *
12661847f8eSopenharmony_ci   * @type { TextDataDetectorType[] }
12761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
12861847f8eSopenharmony_ci   * @since 11
12961847f8eSopenharmony_ci   */
13061847f8eSopenharmony_ci  /**
13161847f8eSopenharmony_ci   * Text data detector types.
13261847f8eSopenharmony_ci   *
13361847f8eSopenharmony_ci   * @type { TextDataDetectorType[] }
13461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
13561847f8eSopenharmony_ci   * @atomicservice
13661847f8eSopenharmony_ci   * @since 12
13761847f8eSopenharmony_ci   */
13861847f8eSopenharmony_ci  types: TextDataDetectorType[]
13961847f8eSopenharmony_ci
14061847f8eSopenharmony_ci  /**
14161847f8eSopenharmony_ci   * Text data detect result callback.
14261847f8eSopenharmony_ci   *
14361847f8eSopenharmony_ci   * @type { ?function }
14461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
14561847f8eSopenharmony_ci   * @since 11
14661847f8eSopenharmony_ci   */
14761847f8eSopenharmony_ci  /**
14861847f8eSopenharmony_ci   * Text data detect result callback.
14961847f8eSopenharmony_ci   *
15061847f8eSopenharmony_ci   * @type { ?function }
15161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
15261847f8eSopenharmony_ci   * @atomicservice
15361847f8eSopenharmony_ci   * @since 12
15461847f8eSopenharmony_ci   */
15561847f8eSopenharmony_ci  onDetectResultUpdate?: (result: string) => void
15661847f8eSopenharmony_ci
15761847f8eSopenharmony_ci  /**
15861847f8eSopenharmony_ci   * The color of AI entity.
15961847f8eSopenharmony_ci   *
16061847f8eSopenharmony_ci   * @type { ?ResourceColor }
16161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
16261847f8eSopenharmony_ci   * @atomicservice
16361847f8eSopenharmony_ci   * @since 12
16461847f8eSopenharmony_ci   */
16561847f8eSopenharmony_ci  color?: ResourceColor,
16661847f8eSopenharmony_ci
16761847f8eSopenharmony_ci  /**
16861847f8eSopenharmony_ci   * The decoration of AI entity.
16961847f8eSopenharmony_ci   *
17061847f8eSopenharmony_ci   * @type { ?DecorationStyleInterface }
17161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
17261847f8eSopenharmony_ci   * @atomicservice
17361847f8eSopenharmony_ci   * @since 12
17461847f8eSopenharmony_ci   */
17561847f8eSopenharmony_ci  decoration?: DecorationStyleInterface
17661847f8eSopenharmony_ci}
17761847f8eSopenharmony_ci
17861847f8eSopenharmony_ci/**
17961847f8eSopenharmony_ci * Defines range of text type component.
18061847f8eSopenharmony_ci *
18161847f8eSopenharmony_ci * @interface TextRange
18261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
18361847f8eSopenharmony_ci * @crossplatform
18461847f8eSopenharmony_ci * @atomicservice
18561847f8eSopenharmony_ci * @since 12
18661847f8eSopenharmony_ci */
18761847f8eSopenharmony_cideclare interface TextRange {
18861847f8eSopenharmony_ci  /**
18961847f8eSopenharmony_ci   * Start offset.
19061847f8eSopenharmony_ci   *
19161847f8eSopenharmony_ci   * @type { ?number }
19261847f8eSopenharmony_ci   * @default 0
19361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
19461847f8eSopenharmony_ci   * @crossplatform
19561847f8eSopenharmony_ci   * @atomicservice
19661847f8eSopenharmony_ci   * @since 12
19761847f8eSopenharmony_ci   */
19861847f8eSopenharmony_ci  start?: number;
19961847f8eSopenharmony_ci
20061847f8eSopenharmony_ci  /**
20161847f8eSopenharmony_ci   * End offset.
20261847f8eSopenharmony_ci   *
20361847f8eSopenharmony_ci   * @type { ?number }
20461847f8eSopenharmony_ci   * @default text length
20561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
20661847f8eSopenharmony_ci   * @crossplatform
20761847f8eSopenharmony_ci   * @atomicservice
20861847f8eSopenharmony_ci   * @since 12
20961847f8eSopenharmony_ci   */
21061847f8eSopenharmony_ci  end?: number;
21161847f8eSopenharmony_ci}
21261847f8eSopenharmony_ci
21361847f8eSopenharmony_ci/**
21461847f8eSopenharmony_ci * Defines the inserted text value info.
21561847f8eSopenharmony_ci *
21661847f8eSopenharmony_ci * @interface InsertValue
21761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
21861847f8eSopenharmony_ci * @crossplatform
21961847f8eSopenharmony_ci * @atomicservice
22061847f8eSopenharmony_ci * @since 12
22161847f8eSopenharmony_ci */
22261847f8eSopenharmony_cideclare interface InsertValue {
22361847f8eSopenharmony_ci  /**
22461847f8eSopenharmony_ci   * The location info where the value will be inserted.
22561847f8eSopenharmony_ci   *
22661847f8eSopenharmony_ci   * @type { number }
22761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
22861847f8eSopenharmony_ci   * @crossplatform
22961847f8eSopenharmony_ci   * @atomicservice
23061847f8eSopenharmony_ci   * @since 12
23161847f8eSopenharmony_ci   */
23261847f8eSopenharmony_ci  insertOffset: number;
23361847f8eSopenharmony_ci
23461847f8eSopenharmony_ci  /**
23561847f8eSopenharmony_ci   * The inserted value.
23661847f8eSopenharmony_ci   *
23761847f8eSopenharmony_ci   * @type { string }
23861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
23961847f8eSopenharmony_ci   * @crossplatform
24061847f8eSopenharmony_ci   * @atomicservice
24161847f8eSopenharmony_ci   * @since 12
24261847f8eSopenharmony_ci   */
24361847f8eSopenharmony_ci  insertValue: string;
24461847f8eSopenharmony_ci}
24561847f8eSopenharmony_ci
24661847f8eSopenharmony_ci/**
24761847f8eSopenharmony_ci * Defines delete text direction.
24861847f8eSopenharmony_ci *
24961847f8eSopenharmony_ci * @enum { number }
25061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
25161847f8eSopenharmony_ci * @crossplatform
25261847f8eSopenharmony_ci * @atomicservice
25361847f8eSopenharmony_ci * @since 12
25461847f8eSopenharmony_ci */
25561847f8eSopenharmony_cideclare enum TextDeleteDirection {
25661847f8eSopenharmony_ci  /**
25761847f8eSopenharmony_ci   * Delete backward.
25861847f8eSopenharmony_ci   *
25961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
26061847f8eSopenharmony_ci   * @crossplatform
26161847f8eSopenharmony_ci   * @atomicservice
26261847f8eSopenharmony_ci   * @since 12
26361847f8eSopenharmony_ci   */
26461847f8eSopenharmony_ci  BACKWARD = 0,
26561847f8eSopenharmony_ci
26661847f8eSopenharmony_ci  /**
26761847f8eSopenharmony_ci   * Delete forward.
26861847f8eSopenharmony_ci   *
26961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
27061847f8eSopenharmony_ci   * @crossplatform
27161847f8eSopenharmony_ci   * @atomicservice
27261847f8eSopenharmony_ci   * @since 12
27361847f8eSopenharmony_ci   */
27461847f8eSopenharmony_ci  FORWARD = 1,
27561847f8eSopenharmony_ci}
27661847f8eSopenharmony_ci
27761847f8eSopenharmony_ci/**
27861847f8eSopenharmony_ci * Defines menu type.
27961847f8eSopenharmony_ci *
28061847f8eSopenharmony_ci * @enum { number }
28161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
28261847f8eSopenharmony_ci * @crossplatform
28361847f8eSopenharmony_ci * @atomicservice
28461847f8eSopenharmony_ci * @since 13
28561847f8eSopenharmony_ci */
28661847f8eSopenharmony_cideclare enum MenuType {
28761847f8eSopenharmony_ci  /**
28861847f8eSopenharmony_ci   * Selection menu.
28961847f8eSopenharmony_ci   *
29061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
29161847f8eSopenharmony_ci   * @crossplatform
29261847f8eSopenharmony_ci   * @atomicservice
29361847f8eSopenharmony_ci   * @since 13
29461847f8eSopenharmony_ci   */
29561847f8eSopenharmony_ci  SELECTION_MENU = 0,
29661847f8eSopenharmony_ci
29761847f8eSopenharmony_ci  /**
29861847f8eSopenharmony_ci   * Preview menu, only for image.
29961847f8eSopenharmony_ci   *
30061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
30161847f8eSopenharmony_ci   * @crossplatform
30261847f8eSopenharmony_ci   * @atomicservice
30361847f8eSopenharmony_ci   * @since 13
30461847f8eSopenharmony_ci   */
30561847f8eSopenharmony_ci  PREVIEW_MENU = 1,
30661847f8eSopenharmony_ci}
30761847f8eSopenharmony_ci
30861847f8eSopenharmony_ci/**
30961847f8eSopenharmony_ci * Provides an interface for deleting value from text.
31061847f8eSopenharmony_ci *
31161847f8eSopenharmony_ci * @interface DeleteValue
31261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
31361847f8eSopenharmony_ci * @crossplatform
31461847f8eSopenharmony_ci * @atomicservice
31561847f8eSopenharmony_ci * @since 12
31661847f8eSopenharmony_ci */
31761847f8eSopenharmony_cideclare interface DeleteValue {
31861847f8eSopenharmony_ci  /**
31961847f8eSopenharmony_ci   * The location info where the value will be deleted.
32061847f8eSopenharmony_ci   *
32161847f8eSopenharmony_ci   * @type { number }
32261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
32361847f8eSopenharmony_ci   * @crossplatform
32461847f8eSopenharmony_ci   * @atomicservice
32561847f8eSopenharmony_ci   * @since 12
32661847f8eSopenharmony_ci   */
32761847f8eSopenharmony_ci  deleteOffset: number;
32861847f8eSopenharmony_ci
32961847f8eSopenharmony_ci  /**
33061847f8eSopenharmony_ci   * The deleted direction.
33161847f8eSopenharmony_ci   *
33261847f8eSopenharmony_ci   * @type { TextDeleteDirection }
33361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
33461847f8eSopenharmony_ci   * @crossplatform
33561847f8eSopenharmony_ci   * @atomicservice
33661847f8eSopenharmony_ci   * @since 12
33761847f8eSopenharmony_ci   */
33861847f8eSopenharmony_ci  direction: TextDeleteDirection;
33961847f8eSopenharmony_ci
34061847f8eSopenharmony_ci  /**
34161847f8eSopenharmony_ci   * The deleted value.
34261847f8eSopenharmony_ci   *
34361847f8eSopenharmony_ci   * @type { string }
34461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
34561847f8eSopenharmony_ci   * @crossplatform
34661847f8eSopenharmony_ci   * @atomicservice
34761847f8eSopenharmony_ci   * @since 12
34861847f8eSopenharmony_ci   */
34961847f8eSopenharmony_ci  deleteValue: string;
35061847f8eSopenharmony_ci}
35161847f8eSopenharmony_ci
35261847f8eSopenharmony_ci/**
35361847f8eSopenharmony_ci * Callback after content changed.
35461847f8eSopenharmony_ci * 
35561847f8eSopenharmony_ci * @typedef { function } OnDidChangeCallback
35661847f8eSopenharmony_ci * @param { TextRange } rangeBefore - Range of content that had been replaced.
35761847f8eSopenharmony_ci * @param { TextRange } rangeAfter - Range of content that newly added.
35861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
35961847f8eSopenharmony_ci * @crossplatform
36061847f8eSopenharmony_ci * @atomicservice
36161847f8eSopenharmony_ci * @since 12
36261847f8eSopenharmony_ci */
36361847f8eSopenharmony_cideclare type OnDidChangeCallback = (rangeBefore: TextRange, rangeAfter: TextRange) => void;
36461847f8eSopenharmony_ci
36561847f8eSopenharmony_ci/**
36661847f8eSopenharmony_ci * Callback when input sometimes has info of previewText.
36761847f8eSopenharmony_ci *
36861847f8eSopenharmony_ci * @typedef { function } EditableTextOnChangeCallback
36961847f8eSopenharmony_ci * @param { string } value - Value of body text, without previewText value.
37061847f8eSopenharmony_ci * @param { PreviewText } [previewText] - info of previewText, contains previewText value and start index.
37161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
37261847f8eSopenharmony_ci * @crossplatform
37361847f8eSopenharmony_ci * @atomicservice
37461847f8eSopenharmony_ci * @since 12
37561847f8eSopenharmony_ci */
37661847f8eSopenharmony_cideclare type EditableTextOnChangeCallback = (value: string, previewText?: PreviewText) => void;
37761847f8eSopenharmony_ci
37861847f8eSopenharmony_ci/**
37961847f8eSopenharmony_ci * Define the text selection controller.
38061847f8eSopenharmony_ci *
38161847f8eSopenharmony_ci * @interface TextBaseController
38261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
38361847f8eSopenharmony_ci * @crossplatform
38461847f8eSopenharmony_ci * @atomicservice
38561847f8eSopenharmony_ci * @since 12
38661847f8eSopenharmony_ci */
38761847f8eSopenharmony_cideclare interface TextBaseController {
38861847f8eSopenharmony_ci  /**
38961847f8eSopenharmony_ci   * Set selection to select a range of content.
39061847f8eSopenharmony_ci   *
39161847f8eSopenharmony_ci   * @param { number } selectionStart - The start position of the selected text.
39261847f8eSopenharmony_ci   * @param { number } selectionEnd - The end position of the selected text.
39361847f8eSopenharmony_ci   * @param { SelectionOptions } [options] - Indicates the options of selection.
39461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
39561847f8eSopenharmony_ci   * @crossplatform
39661847f8eSopenharmony_ci   * @atomicservice
39761847f8eSopenharmony_ci   * @since 12
39861847f8eSopenharmony_ci   */
39961847f8eSopenharmony_ci  setSelection(selectionStart: number, selectionEnd: number, options?: SelectionOptions): void;
40061847f8eSopenharmony_ci
40161847f8eSopenharmony_ci  /**
40261847f8eSopenharmony_ci   * Close the select menu when menu is on.
40361847f8eSopenharmony_ci   *
40461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
40561847f8eSopenharmony_ci   * @crossplatform
40661847f8eSopenharmony_ci   * @atomicservice
40761847f8eSopenharmony_ci   * @since 12
40861847f8eSopenharmony_ci   */
40961847f8eSopenharmony_ci  closeSelectionMenu(): void;
41061847f8eSopenharmony_ci
41161847f8eSopenharmony_ci  /**
41261847f8eSopenharmony_ci   * Get LayoutManager.
41361847f8eSopenharmony_ci   *
41461847f8eSopenharmony_ci   * @returns { LayoutManager } - Return the LayoutManager.
41561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
41661847f8eSopenharmony_ci   * @crossplatform
41761847f8eSopenharmony_ci   * @atomicservice
41861847f8eSopenharmony_ci   * @since 12
41961847f8eSopenharmony_ci   */
42061847f8eSopenharmony_ci  getLayoutManager(): LayoutManager;
42161847f8eSopenharmony_ci}
42261847f8eSopenharmony_ci
42361847f8eSopenharmony_ci/**
42461847f8eSopenharmony_ci * Define the text extended editing controller.
42561847f8eSopenharmony_ci *
42661847f8eSopenharmony_ci * @interface TextEditControllerEx
42761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
42861847f8eSopenharmony_ci * @crossplatform
42961847f8eSopenharmony_ci * @atomicservice
43061847f8eSopenharmony_ci * @since 12
43161847f8eSopenharmony_ci */
43261847f8eSopenharmony_cideclare interface TextEditControllerEx extends TextBaseController{
43361847f8eSopenharmony_ci  /**
43461847f8eSopenharmony_ci   * Judge whether is in editing state
43561847f8eSopenharmony_ci   * 
43661847f8eSopenharmony_ci   * @returns { boolean } - true means that the component is in editing state, false means is non in editing status
43761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
43861847f8eSopenharmony_ci   * @crossplatform
43961847f8eSopenharmony_ci   * @atomicservice
44061847f8eSopenharmony_ci   * @since 12
44161847f8eSopenharmony_ci   */
44261847f8eSopenharmony_ci  isEditing(): boolean;
44361847f8eSopenharmony_ci
44461847f8eSopenharmony_ci  /**
44561847f8eSopenharmony_ci   * Stop editing state.
44661847f8eSopenharmony_ci   *
44761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
44861847f8eSopenharmony_ci   * @crossplatform
44961847f8eSopenharmony_ci   * @atomicservice
45061847f8eSopenharmony_ci   * @since 12
45161847f8eSopenharmony_ci   */
45261847f8eSopenharmony_ci  stopEditing(): void;
45361847f8eSopenharmony_ci
45461847f8eSopenharmony_ci  /**
45561847f8eSopenharmony_ci   * Set caret offset.
45661847f8eSopenharmony_ci   *
45761847f8eSopenharmony_ci   * @param { number } offset - caret offset.
45861847f8eSopenharmony_ci   * @returns { boolean } - Return true if the caret offset was successfully set, false otherwise.
45961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
46061847f8eSopenharmony_ci   * @crossplatform
46161847f8eSopenharmony_ci   * @atomicservice
46261847f8eSopenharmony_ci   * @since 12
46361847f8eSopenharmony_ci   */
46461847f8eSopenharmony_ci  setCaretOffset(offset: number): boolean;
46561847f8eSopenharmony_ci
46661847f8eSopenharmony_ci  /**
46761847f8eSopenharmony_ci   * Get caret offset from controller.
46861847f8eSopenharmony_ci   *
46961847f8eSopenharmony_ci   * @returns { number }
47061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
47161847f8eSopenharmony_ci   * @crossplatform
47261847f8eSopenharmony_ci   * @atomicservice
47361847f8eSopenharmony_ci   * @since 12
47461847f8eSopenharmony_ci   */
47561847f8eSopenharmony_ci  getCaretOffset(): number;
47661847f8eSopenharmony_ci
47761847f8eSopenharmony_ci  /**
47861847f8eSopenharmony_ci   * Get PreviewText.
47961847f8eSopenharmony_ci   *
48061847f8eSopenharmony_ci   * @returns { PreviewText } - Return the PreviewText.
48161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
48261847f8eSopenharmony_ci   * @crossplatform
48361847f8eSopenharmony_ci   * @atomicservice
48461847f8eSopenharmony_ci   * @since 12
48561847f8eSopenharmony_ci   */
48661847f8eSopenharmony_ci  getPreviewText?(): PreviewText;
48761847f8eSopenharmony_ci}
48861847f8eSopenharmony_ci
48961847f8eSopenharmony_ci/**
49061847f8eSopenharmony_ci * Define the StyledString controller.
49161847f8eSopenharmony_ci *
49261847f8eSopenharmony_ci * @interface StyledStringController
49361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
49461847f8eSopenharmony_ci * @crossplatform
49561847f8eSopenharmony_ci * @atomicservice
49661847f8eSopenharmony_ci * @since 12
49761847f8eSopenharmony_ci */
49861847f8eSopenharmony_cideclare interface StyledStringController {
49961847f8eSopenharmony_ci  /**
50061847f8eSopenharmony_ci   * Set the StyledString of the component.
50161847f8eSopenharmony_ci   *
50261847f8eSopenharmony_ci   * @param { StyledString } styledString - StyledString.
50361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
50461847f8eSopenharmony_ci   * @crossplatform
50561847f8eSopenharmony_ci   * @atomicservice
50661847f8eSopenharmony_ci   * @since 12
50761847f8eSopenharmony_ci   */
50861847f8eSopenharmony_ci  setStyledString(styledString: StyledString): void;
50961847f8eSopenharmony_ci
51061847f8eSopenharmony_ci  /**
51161847f8eSopenharmony_ci   * Get the StyledString of the component.
51261847f8eSopenharmony_ci   *
51361847f8eSopenharmony_ci   * @returns { MutableStyledString }
51461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
51561847f8eSopenharmony_ci   * @crossplatform
51661847f8eSopenharmony_ci   * @atomicservice
51761847f8eSopenharmony_ci   * @since 12
51861847f8eSopenharmony_ci   */
51961847f8eSopenharmony_ci  getStyledString(): MutableStyledString;
52061847f8eSopenharmony_ci}
52161847f8eSopenharmony_ci
52261847f8eSopenharmony_ci/**
52361847f8eSopenharmony_ci * Define the StyledString changed listener.
52461847f8eSopenharmony_ci *
52561847f8eSopenharmony_ci * @interface StyledStringChangedListener
52661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
52761847f8eSopenharmony_ci * @crossplatform
52861847f8eSopenharmony_ci * @atomicservice
52961847f8eSopenharmony_ci * @since 12
53061847f8eSopenharmony_ci */
53161847f8eSopenharmony_cideclare interface StyledStringChangedListener {
53261847f8eSopenharmony_ci  /**
53361847f8eSopenharmony_ci   * Called before text changed.
53461847f8eSopenharmony_ci   *
53561847f8eSopenharmony_ci   * @type { ?Callback<StyledStringChangeValue, boolean> }
53661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
53761847f8eSopenharmony_ci   * @crossplatform
53861847f8eSopenharmony_ci   * @atomicservice
53961847f8eSopenharmony_ci   * @since 12
54061847f8eSopenharmony_ci   */
54161847f8eSopenharmony_ci  onWillChange?: Callback<StyledStringChangeValue, boolean>;
54261847f8eSopenharmony_ci
54361847f8eSopenharmony_ci  /**
54461847f8eSopenharmony_ci   * Called after text changed.
54561847f8eSopenharmony_ci   *
54661847f8eSopenharmony_ci   * @type { ?OnDidChangeCallback }
54761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
54861847f8eSopenharmony_ci   * @crossplatform
54961847f8eSopenharmony_ci   * @atomicservice
55061847f8eSopenharmony_ci   * @since 12
55161847f8eSopenharmony_ci   */
55261847f8eSopenharmony_ci  onDidChange?: OnDidChangeCallback;
55361847f8eSopenharmony_ci}
55461847f8eSopenharmony_ci
55561847f8eSopenharmony_ci/**
55661847f8eSopenharmony_ci * Define the StyledString changed value.
55761847f8eSopenharmony_ci *
55861847f8eSopenharmony_ci * @interface StyledStringChangeValue
55961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
56061847f8eSopenharmony_ci * @crossplatform
56161847f8eSopenharmony_ci * @atomicservice
56261847f8eSopenharmony_ci * @since 12
56361847f8eSopenharmony_ci */
56461847f8eSopenharmony_ciinterface StyledStringChangeValue {
56561847f8eSopenharmony_ci  /**
56661847f8eSopenharmony_ci   * Range of the content to be replaced.
56761847f8eSopenharmony_ci   *
56861847f8eSopenharmony_ci   * @type { TextRange }
56961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
57061847f8eSopenharmony_ci   * @crossplatform
57161847f8eSopenharmony_ci   * @atomicservice
57261847f8eSopenharmony_ci   * @since 12
57361847f8eSopenharmony_ci   */
57461847f8eSopenharmony_ci  range: TextRange;
57561847f8eSopenharmony_ci
57661847f8eSopenharmony_ci  /**
57761847f8eSopenharmony_ci   * StyledString to replace.
57861847f8eSopenharmony_ci   *
57961847f8eSopenharmony_ci   * @type { StyledString }
58061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
58161847f8eSopenharmony_ci   * @crossplatform
58261847f8eSopenharmony_ci   * @atomicservice
58361847f8eSopenharmony_ci   * @since 12
58461847f8eSopenharmony_ci   */
58561847f8eSopenharmony_ci  replacementString: StyledString;
58661847f8eSopenharmony_ci
58761847f8eSopenharmony_ci  /**
58861847f8eSopenharmony_ci   * Preview StyledString
58961847f8eSopenharmony_ci   *
59061847f8eSopenharmony_ci   * @type { ?StyledString }
59161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
59261847f8eSopenharmony_ci   * @crossplatform
59361847f8eSopenharmony_ci   * @atomicservice
59461847f8eSopenharmony_ci   * @since 12
59561847f8eSopenharmony_ci   */
59661847f8eSopenharmony_ci  previewText?: StyledString;
59761847f8eSopenharmony_ci}
59861847f8eSopenharmony_ci
59961847f8eSopenharmony_ci/**
60061847f8eSopenharmony_ci * Define the LayoutManager for querying layout information.
60161847f8eSopenharmony_ci *
60261847f8eSopenharmony_ci * @interface LayoutManager
60361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
60461847f8eSopenharmony_ci * @crossplatform
60561847f8eSopenharmony_ci * @atomicservice
60661847f8eSopenharmony_ci * @since 12
60761847f8eSopenharmony_ci */
60861847f8eSopenharmony_cideclare interface LayoutManager {
60961847f8eSopenharmony_ci  /**
61061847f8eSopenharmony_ci   * Get the line count.
61161847f8eSopenharmony_ci   * 
61261847f8eSopenharmony_ci   * @returns { number } The line count value returned to the caller.
61361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
61461847f8eSopenharmony_ci   * @crossplatform
61561847f8eSopenharmony_ci   * @atomicservice
61661847f8eSopenharmony_ci   * @since 12
61761847f8eSopenharmony_ci   */
61861847f8eSopenharmony_ci  getLineCount(): number;
61961847f8eSopenharmony_ci
62061847f8eSopenharmony_ci  /**
62161847f8eSopenharmony_ci   * Get the glyph position at coordinate.
62261847f8eSopenharmony_ci   * 
62361847f8eSopenharmony_ci   * @param { number } x - the positionX of typography.
62461847f8eSopenharmony_ci   * @param { number } y - the positionY of typography.
62561847f8eSopenharmony_ci   * @returns { PositionWithAffinity } TextBlob object.
62661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
62761847f8eSopenharmony_ci   * @crossplatform
62861847f8eSopenharmony_ci   * @atomicservice
62961847f8eSopenharmony_ci   * @since 12
63061847f8eSopenharmony_ci   */
63161847f8eSopenharmony_ci  getGlyphPositionAtCoordinate(x: number, y: number): PositionWithAffinity;
63261847f8eSopenharmony_ci
63361847f8eSopenharmony_ci  /**
63461847f8eSopenharmony_ci   * Get LineMetrics.
63561847f8eSopenharmony_ci   * 
63661847f8eSopenharmony_ci   * @param { number } lineNumber - the number of line.
63761847f8eSopenharmony_ci   * @returns { LineMetrics } The line Metrics.
63861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
63961847f8eSopenharmony_ci   * @crossplatform
64061847f8eSopenharmony_ci   * @atomicservice
64161847f8eSopenharmony_ci   * @since 12
64261847f8eSopenharmony_ci   */
64361847f8eSopenharmony_ci  getLineMetrics(lineNumber: number): LineMetrics;
64461847f8eSopenharmony_ci
64561847f8eSopenharmony_ci  /**
64661847f8eSopenharmony_ci   * Get the rects for range.
64761847f8eSopenharmony_ci   * @param { TextRange } range - The range to set.
64861847f8eSopenharmony_ci   * @param { RectWidthStyle } widthStyle - Width style to set.
64961847f8eSopenharmony_ci   * @param { RectHeightStyle } heightStyle - Height style to set.
65061847f8eSopenharmony_ci   * @returns { Array<TextBox> } The rects for range.
65161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
65261847f8eSopenharmony_ci   * @crossplatform
65361847f8eSopenharmony_ci   * @atomicservice
65461847f8eSopenharmony_ci   * @since 13
65561847f8eSopenharmony_ci   */
65661847f8eSopenharmony_ci  getRectsForRange(range: TextRange, widthStyle: RectWidthStyle, heightStyle: RectHeightStyle): Array<TextBox>;
65761847f8eSopenharmony_ci}
65861847f8eSopenharmony_ci
65961847f8eSopenharmony_ci/**
66061847f8eSopenharmony_ci * Position and affinity.
66161847f8eSopenharmony_ci * 
66261847f8eSopenharmony_ci * @typedef PositionWithAffinity
66361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
66461847f8eSopenharmony_ci * @crossplatform
66561847f8eSopenharmony_ci * @atomicservice
66661847f8eSopenharmony_ci * @since 12
66761847f8eSopenharmony_ci */
66861847f8eSopenharmony_ciinterface PositionWithAffinity {
66961847f8eSopenharmony_ci  /**
67061847f8eSopenharmony_ci   * Position of text.
67161847f8eSopenharmony_ci   * 
67261847f8eSopenharmony_ci   * @type { number }
67361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
67461847f8eSopenharmony_ci   * @crossplatform
67561847f8eSopenharmony_ci   * @atomicservice
67661847f8eSopenharmony_ci   * @since 12
67761847f8eSopenharmony_ci   */
67861847f8eSopenharmony_ci  position: number;
67961847f8eSopenharmony_ci
68061847f8eSopenharmony_ci  /**
68161847f8eSopenharmony_ci   * Affinity of text.
68261847f8eSopenharmony_ci   * 
68361847f8eSopenharmony_ci   * @type { Affinity }
68461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
68561847f8eSopenharmony_ci   * @crossplatform
68661847f8eSopenharmony_ci   * @atomicservice
68761847f8eSopenharmony_ci   * @since 12
68861847f8eSopenharmony_ci   */
68961847f8eSopenharmony_ci  affinity: Affinity;
69061847f8eSopenharmony_ci}
69161847f8eSopenharmony_ci
69261847f8eSopenharmony_ci/**
69361847f8eSopenharmony_ci * Define the Affinity type.
69461847f8eSopenharmony_ci * 
69561847f8eSopenharmony_ci * @typedef { import('../api/@ohos.graphics.text').default.Affinity } Affinity
69661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
69761847f8eSopenharmony_ci * @crossplatform
69861847f8eSopenharmony_ci * @atomicservice
69961847f8eSopenharmony_ci * @since 12
70061847f8eSopenharmony_ci */
70161847f8eSopenharmony_cideclare type Affinity = import('../api/@ohos.graphics.text').default.Affinity;
70261847f8eSopenharmony_ci
70361847f8eSopenharmony_ci/**
70461847f8eSopenharmony_ci * Define the LineMetrics type.
70561847f8eSopenharmony_ci * 
70661847f8eSopenharmony_ci * @typedef { import('../api/@ohos.graphics.text').default.LineMetrics } LineMetrics
70761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
70861847f8eSopenharmony_ci * @crossplatform
70961847f8eSopenharmony_ci * @atomicservice
71061847f8eSopenharmony_ci * @since 12
71161847f8eSopenharmony_ci */
71261847f8eSopenharmony_cideclare type LineMetrics = import('../api/@ohos.graphics.text').default.LineMetrics; 
71361847f8eSopenharmony_ci
71461847f8eSopenharmony_ci/**
71561847f8eSopenharmony_ci * Define the RectWidthStyle type.
71661847f8eSopenharmony_ci * 
71761847f8eSopenharmony_ci * @typedef { import('../api/@ohos.graphics.text').default.RectWidthStyle } RectWidthStyle
71861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
71961847f8eSopenharmony_ci * @crossplatform
72061847f8eSopenharmony_ci * @atomicservice
72161847f8eSopenharmony_ci * @since 13
72261847f8eSopenharmony_ci */
72361847f8eSopenharmony_cideclare type RectWidthStyle = import('../api/@ohos.graphics.text').default.RectWidthStyle;
72461847f8eSopenharmony_ci
72561847f8eSopenharmony_ci/**
72661847f8eSopenharmony_ci * Define the RectHeightStyle type.
72761847f8eSopenharmony_ci * 
72861847f8eSopenharmony_ci * @typedef { import('../api/@ohos.graphics.text').default.RectHeightStyle } RectHeightStyle
72961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
73061847f8eSopenharmony_ci * @crossplatform
73161847f8eSopenharmony_ci * @atomicservice
73261847f8eSopenharmony_ci * @since 13
73361847f8eSopenharmony_ci */
73461847f8eSopenharmony_cideclare type RectHeightStyle = import('../api/@ohos.graphics.text').default.RectHeightStyle;
73561847f8eSopenharmony_ci
73661847f8eSopenharmony_ci/**
73761847f8eSopenharmony_ci * Define the TextBox type.
73861847f8eSopenharmony_ci * 
73961847f8eSopenharmony_ci * @typedef { import('../api/@ohos.graphics.text').default.TextBox } TextBox
74061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
74161847f8eSopenharmony_ci * @crossplatform
74261847f8eSopenharmony_ci * @atomicservice
74361847f8eSopenharmony_ci * @since 13
74461847f8eSopenharmony_ci */
74561847f8eSopenharmony_cideclare type TextBox = import('../api/@ohos.graphics.text').default.TextBox;
74661847f8eSopenharmony_ci
74761847f8eSopenharmony_ci/**
74861847f8eSopenharmony_ci * Defines the cursor style
74961847f8eSopenharmony_ci *
75061847f8eSopenharmony_ci * @interface CaretStyle
75161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
75261847f8eSopenharmony_ci * @crossplatform
75361847f8eSopenharmony_ci * @since 10
75461847f8eSopenharmony_ci */
75561847f8eSopenharmony_ci/**
75661847f8eSopenharmony_ci * Defines the cursor style
75761847f8eSopenharmony_ci *
75861847f8eSopenharmony_ci * @interface CaretStyle
75961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
76061847f8eSopenharmony_ci * @crossplatform
76161847f8eSopenharmony_ci * @atomicservice
76261847f8eSopenharmony_ci * @since 11
76361847f8eSopenharmony_ci */
76461847f8eSopenharmony_ciinterface CaretStyle {
76561847f8eSopenharmony_ci  /**
76661847f8eSopenharmony_ci   * Set the cursor width
76761847f8eSopenharmony_ci   *
76861847f8eSopenharmony_ci   * @type { ?Length }
76961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
77061847f8eSopenharmony_ci   * @crossplatform
77161847f8eSopenharmony_ci   * @since 10
77261847f8eSopenharmony_ci   */
77361847f8eSopenharmony_ci  /**
77461847f8eSopenharmony_ci   * Set the cursor width
77561847f8eSopenharmony_ci   *
77661847f8eSopenharmony_ci   * @type { ?Length }
77761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
77861847f8eSopenharmony_ci   * @crossplatform
77961847f8eSopenharmony_ci   * @atomicservice
78061847f8eSopenharmony_ci   * @since 11
78161847f8eSopenharmony_ci   */
78261847f8eSopenharmony_ci  width?: Length,
78361847f8eSopenharmony_ci
78461847f8eSopenharmony_ci  /**
78561847f8eSopenharmony_ci   * Set the cursor color
78661847f8eSopenharmony_ci   *
78761847f8eSopenharmony_ci   * @type { ?ResourceColor }
78861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
78961847f8eSopenharmony_ci   * @crossplatform
79061847f8eSopenharmony_ci   * @since 10
79161847f8eSopenharmony_ci   */
79261847f8eSopenharmony_ci  /**
79361847f8eSopenharmony_ci   * Set the cursor color
79461847f8eSopenharmony_ci   *
79561847f8eSopenharmony_ci   * @type { ?ResourceColor }
79661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
79761847f8eSopenharmony_ci   * @crossplatform
79861847f8eSopenharmony_ci   * @atomicservice
79961847f8eSopenharmony_ci   * @since 11
80061847f8eSopenharmony_ci   */
80161847f8eSopenharmony_ci  color?: ResourceColor,
80261847f8eSopenharmony_ci}
80361847f8eSopenharmony_ci
80461847f8eSopenharmony_ci/**
80561847f8eSopenharmony_ci * Defines the TextMenuItemId.
80661847f8eSopenharmony_ci *
80761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
80861847f8eSopenharmony_ci * @crossplatform
80961847f8eSopenharmony_ci * @atomicservice
81061847f8eSopenharmony_ci * @since 12
81161847f8eSopenharmony_ci */
81261847f8eSopenharmony_cideclare class TextMenuItemId {
81361847f8eSopenharmony_ci  /**
81461847f8eSopenharmony_ci   * Init a TextMenuItemId with id.
81561847f8eSopenharmony_ci   *
81661847f8eSopenharmony_ci   * @param { ResourceStr } id - The id of the TextMenuItemId.
81761847f8eSopenharmony_ci   * @returns { TextMenuItemId } - Returns the TextMenuItemId object.
81861847f8eSopenharmony_ci   * @static
81961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
82061847f8eSopenharmony_ci   * @crossplatform
82161847f8eSopenharmony_ci   * @atomicservice
82261847f8eSopenharmony_ci   * @since 12
82361847f8eSopenharmony_ci   */
82461847f8eSopenharmony_ci  static of(id: ResourceStr): TextMenuItemId;
82561847f8eSopenharmony_ci
82661847f8eSopenharmony_ci  /**
82761847f8eSopenharmony_ci   * Judge if two TextMenuItemId are equal.
82861847f8eSopenharmony_ci   *
82961847f8eSopenharmony_ci   * @param { TextMenuItemId } id - id TextMenuItemId.
83061847f8eSopenharmony_ci   * @returns { boolean }
83161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
83261847f8eSopenharmony_ci   * @crossplatform
83361847f8eSopenharmony_ci   * @atomicservice
83461847f8eSopenharmony_ci   * @since 12
83561847f8eSopenharmony_ci   */
83661847f8eSopenharmony_ci  equals(id: TextMenuItemId): boolean;
83761847f8eSopenharmony_ci
83861847f8eSopenharmony_ci  /**
83961847f8eSopenharmony_ci   * Indicates the TextMenuItemId to copy and delete the currently selected text.
84061847f8eSopenharmony_ci   *
84161847f8eSopenharmony_ci   * @type { TextMenuItemId }
84261847f8eSopenharmony_ci   * @readonly
84361847f8eSopenharmony_ci   * @static
84461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
84561847f8eSopenharmony_ci   * @atomicservice
84661847f8eSopenharmony_ci   * @since 12
84761847f8eSopenharmony_ci   */
84861847f8eSopenharmony_ci  static readonly CUT: TextMenuItemId;
84961847f8eSopenharmony_ci
85061847f8eSopenharmony_ci  /**
85161847f8eSopenharmony_ci   * Indicates the TextMenuItemId to copy the currently selected text to the clipboard.
85261847f8eSopenharmony_ci   *
85361847f8eSopenharmony_ci   * @type { TextMenuItemId }
85461847f8eSopenharmony_ci   * @readonly
85561847f8eSopenharmony_ci   * @static
85661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
85761847f8eSopenharmony_ci   * @atomicservice
85861847f8eSopenharmony_ci   * @since 12
85961847f8eSopenharmony_ci   */
86061847f8eSopenharmony_ci  static readonly COPY: TextMenuItemId;
86161847f8eSopenharmony_ci
86261847f8eSopenharmony_ci  /**
86361847f8eSopenharmony_ci   * Indicates the TextMenuItemId to copy the current contents of the clipboard into the text view.
86461847f8eSopenharmony_ci   *
86561847f8eSopenharmony_ci   * @type { TextMenuItemId }
86661847f8eSopenharmony_ci   * @readonly
86761847f8eSopenharmony_ci   * @static
86861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
86961847f8eSopenharmony_ci   * @atomicservice
87061847f8eSopenharmony_ci   * @since 12
87161847f8eSopenharmony_ci   */
87261847f8eSopenharmony_ci  static readonly PASTE: TextMenuItemId;
87361847f8eSopenharmony_ci
87461847f8eSopenharmony_ci  /**
87561847f8eSopenharmony_ci   * Indicates the TextMenuItemId to select all text in a text view.
87661847f8eSopenharmony_ci   * 
87761847f8eSopenharmony_ci   * @type { TextMenuItemId }
87861847f8eSopenharmony_ci   * @readonly
87961847f8eSopenharmony_ci   * @static
88061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
88161847f8eSopenharmony_ci   * @atomicservice
88261847f8eSopenharmony_ci   * @since 12
88361847f8eSopenharmony_ci   */
88461847f8eSopenharmony_ci  static readonly SELECT_ALL: TextMenuItemId;
88561847f8eSopenharmony_ci
88661847f8eSopenharmony_ci  /**
88761847f8eSopenharmony_ci   * Indicates the TextMenuItemId for collaboration service menu items.
88861847f8eSopenharmony_ci   *
88961847f8eSopenharmony_ci   * @type { TextMenuItemId }
89061847f8eSopenharmony_ci   * @readonly
89161847f8eSopenharmony_ci   * @static
89261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
89361847f8eSopenharmony_ci   * @atomicservice
89461847f8eSopenharmony_ci   * @since 12
89561847f8eSopenharmony_ci   */
89661847f8eSopenharmony_ci  static readonly COLLABORATION_SERVICE: TextMenuItemId;
89761847f8eSopenharmony_ci
89861847f8eSopenharmony_ci  /**
89961847f8eSopenharmony_ci   * Indicates the TextMenuItemId to recognize the text in the picture and input it into the text view.
90061847f8eSopenharmony_ci   *
90161847f8eSopenharmony_ci   * @type { TextMenuItemId }
90261847f8eSopenharmony_ci   * @readonly
90361847f8eSopenharmony_ci   * @static
90461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
90561847f8eSopenharmony_ci   * @atomicservice
90661847f8eSopenharmony_ci   * @since 12
90761847f8eSopenharmony_ci   */
90861847f8eSopenharmony_ci  static readonly CAMERA_INPUT: TextMenuItemId;
90961847f8eSopenharmony_ci
91061847f8eSopenharmony_ci  /**
91161847f8eSopenharmony_ci   * Indicates the TextMenuItemId to help with text creation by invoking large models.
91261847f8eSopenharmony_ci   *
91361847f8eSopenharmony_ci   * @type { TextMenuItemId }
91461847f8eSopenharmony_ci   * @readonly
91561847f8eSopenharmony_ci   * @static
91661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
91761847f8eSopenharmony_ci   * @atomicservice
91861847f8eSopenharmony_ci   * @since 13
91961847f8eSopenharmony_ci   */
92061847f8eSopenharmony_ci  static readonly AI_WRITER: TextMenuItemId;
92161847f8eSopenharmony_ci}
92261847f8eSopenharmony_ci
92361847f8eSopenharmony_ci/**
92461847f8eSopenharmony_ci * The previewText.
92561847f8eSopenharmony_ci * @interface PreviewText
92661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
92761847f8eSopenharmony_ci * @crossplatform
92861847f8eSopenharmony_ci * @atomicservice
92961847f8eSopenharmony_ci * @since 12
93061847f8eSopenharmony_ci */
93161847f8eSopenharmony_cideclare interface PreviewText {
93261847f8eSopenharmony_ci  /**
93361847f8eSopenharmony_ci   * Start offset of the previewText
93461847f8eSopenharmony_ci   *
93561847f8eSopenharmony_ci   * @type { number }
93661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
93761847f8eSopenharmony_ci   * @crossplatform
93861847f8eSopenharmony_ci   * @atomicservice
93961847f8eSopenharmony_ci   * @since 12
94061847f8eSopenharmony_ci   */
94161847f8eSopenharmony_ci  offset: number;
94261847f8eSopenharmony_ci
94361847f8eSopenharmony_ci  /**
94461847f8eSopenharmony_ci   * Value of the previewText.
94561847f8eSopenharmony_ci   *
94661847f8eSopenharmony_ci   * @type { string }
94761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
94861847f8eSopenharmony_ci   * @crossplatform
94961847f8eSopenharmony_ci   * @atomicservice
95061847f8eSopenharmony_ci   * @since 12
95161847f8eSopenharmony_ci   */
95261847f8eSopenharmony_ci  value: string;
95361847f8eSopenharmony_ci}
95461847f8eSopenharmony_ci
95561847f8eSopenharmony_ci/**
95661847f8eSopenharmony_ci * TextMenuItem
95761847f8eSopenharmony_ci *
95861847f8eSopenharmony_ci * @interface TextMenuItem
95961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
96061847f8eSopenharmony_ci * @crossplatform
96161847f8eSopenharmony_ci * @atomicservice
96261847f8eSopenharmony_ci * @since 12
96361847f8eSopenharmony_ci */
96461847f8eSopenharmony_cideclare interface TextMenuItem {
96561847f8eSopenharmony_ci  /**
96661847f8eSopenharmony_ci   * Customize what the menu displays.
96761847f8eSopenharmony_ci   *
96861847f8eSopenharmony_ci   * @type { ResourceStr }
96961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
97061847f8eSopenharmony_ci   * @crossplatform
97161847f8eSopenharmony_ci   * @atomicservice
97261847f8eSopenharmony_ci   * @since 12
97361847f8eSopenharmony_ci   */
97461847f8eSopenharmony_ci  content: ResourceStr;
97561847f8eSopenharmony_ci  /**
97661847f8eSopenharmony_ci   * Customize the icon before the menu displays content.
97761847f8eSopenharmony_ci   *
97861847f8eSopenharmony_ci   * @type { ?ResourceStr }
97961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
98061847f8eSopenharmony_ci   * @crossplatform
98161847f8eSopenharmony_ci   * @atomicservice
98261847f8eSopenharmony_ci   * @since 12
98361847f8eSopenharmony_ci   */
98461847f8eSopenharmony_ci  icon?: ResourceStr;
98561847f8eSopenharmony_ci  /**
98661847f8eSopenharmony_ci   * Distinguish clicked menu content by Id.
98761847f8eSopenharmony_ci   *
98861847f8eSopenharmony_ci   * @type { TextMenuItemId }
98961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
99061847f8eSopenharmony_ci   * @crossplatform
99161847f8eSopenharmony_ci   * @atomicservice
99261847f8eSopenharmony_ci   * @since 12
99361847f8eSopenharmony_ci   */
99461847f8eSopenharmony_ci  id: TextMenuItemId;
99561847f8eSopenharmony_ci}
99661847f8eSopenharmony_ci
99761847f8eSopenharmony_ci/**
99861847f8eSopenharmony_ci * EditMenuOptions
99961847f8eSopenharmony_ci *
100061847f8eSopenharmony_ci * @interface EditMenuOptions
100161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
100261847f8eSopenharmony_ci * @crossplatform
100361847f8eSopenharmony_ci * @atomicservice
100461847f8eSopenharmony_ci * @since 12
100561847f8eSopenharmony_ci */
100661847f8eSopenharmony_cideclare interface EditMenuOptions {
100761847f8eSopenharmony_ci  /**
100861847f8eSopenharmony_ci   * Passes the default menu, invokes before every display to generate a menu for triggering click events.
100961847f8eSopenharmony_ci   *
101061847f8eSopenharmony_ci   * @param { Array<TextMenuItem> } menuItems - current default menu array.
101161847f8eSopenharmony_ci   * @returns { Array<TextMenuItem> } - Return the menu after operations.
101261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
101361847f8eSopenharmony_ci   * @crossplatform
101461847f8eSopenharmony_ci   * @atomicservice
101561847f8eSopenharmony_ci   * @since 12
101661847f8eSopenharmony_ci   */
101761847f8eSopenharmony_ci  onCreateMenu(menuItems: Array<TextMenuItem>): Array<TextMenuItem>;
101861847f8eSopenharmony_ci  /**
101961847f8eSopenharmony_ci   * Invoke upon clicking an item, capable of intercepting the default system menu execution behavior.
102061847f8eSopenharmony_ci   *
102161847f8eSopenharmony_ci   * @param { TextMenuItem } menuItem - current default menu.
102261847f8eSopenharmony_ci   * @param { TextRange } range - current selected range.
102361847f8eSopenharmony_ci   * @returns { boolean } - Return True, the event is consumed, false otherwise.
102461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
102561847f8eSopenharmony_ci   * @crossplatform
102661847f8eSopenharmony_ci   * @atomicservice
102761847f8eSopenharmony_ci   * @since 12
102861847f8eSopenharmony_ci   */
102961847f8eSopenharmony_ci  onMenuItemClick(menuItem: TextMenuItem, range: TextRange): boolean;
103061847f8eSopenharmony_ci}
103161847f8eSopenharmony_ci
103261847f8eSopenharmony_ci/**
103361847f8eSopenharmony_ci * Defines the font decoration result.
103461847f8eSopenharmony_ci *
103561847f8eSopenharmony_ci * @interface DecorationStyleResult
103661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
103761847f8eSopenharmony_ci * @crossplatform
103861847f8eSopenharmony_ci * @atomicservice
103961847f8eSopenharmony_ci * @since 12
104061847f8eSopenharmony_ci */
104161847f8eSopenharmony_ciinterface DecorationStyleResult {
104261847f8eSopenharmony_ci  /**
104361847f8eSopenharmony_ci   * Font decoration type.
104461847f8eSopenharmony_ci   *
104561847f8eSopenharmony_ci   * @type { TextDecorationType }
104661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
104761847f8eSopenharmony_ci   * @crossplatform
104861847f8eSopenharmony_ci   * @atomicservice
104961847f8eSopenharmony_ci   * @since 12
105061847f8eSopenharmony_ci   */
105161847f8eSopenharmony_ci  type: TextDecorationType;
105261847f8eSopenharmony_ci
105361847f8eSopenharmony_ci  /**
105461847f8eSopenharmony_ci   * Font decoration color.
105561847f8eSopenharmony_ci   *
105661847f8eSopenharmony_ci   * @type { ResourceColor }
105761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
105861847f8eSopenharmony_ci   * @crossplatform
105961847f8eSopenharmony_ci   * @atomicservice
106061847f8eSopenharmony_ci   * @since 12
106161847f8eSopenharmony_ci   */
106261847f8eSopenharmony_ci  color: ResourceColor;
106361847f8eSopenharmony_ci
106461847f8eSopenharmony_ci  /**
106561847f8eSopenharmony_ci   * The style value of the decoration property object.
106661847f8eSopenharmony_ci   *
106761847f8eSopenharmony_ci   * @type { ?TextDecorationStyle }
106861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
106961847f8eSopenharmony_ci   * @crossplatform
107061847f8eSopenharmony_ci   * @atomicservice
107161847f8eSopenharmony_ci   * @since 12
107261847f8eSopenharmony_ci   */
107361847f8eSopenharmony_ci  style?: TextDecorationStyle;
107461847f8eSopenharmony_ci}
107561847f8eSopenharmony_ci
107661847f8eSopenharmony_ci/**
107761847f8eSopenharmony_ci * Defines the options of font.
107861847f8eSopenharmony_ci *
107961847f8eSopenharmony_ci * @interface FontSettingOptions
108061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
108161847f8eSopenharmony_ci * @crossplatform
108261847f8eSopenharmony_ci * @form
108361847f8eSopenharmony_ci * @atomicservice
108461847f8eSopenharmony_ci * @since 12
108561847f8eSopenharmony_ci */
108661847f8eSopenharmony_cideclare interface FontSettingOptions {
108761847f8eSopenharmony_ci  /**
108861847f8eSopenharmony_ci    * Define weather VariableFontWeight is supported.
108961847f8eSopenharmony_ci    *
109061847f8eSopenharmony_ci    * @type { ?boolean }
109161847f8eSopenharmony_ci    * @syscap SystemCapability.ArkUI.ArkUI.Full
109261847f8eSopenharmony_ci    * @crossplatform
109361847f8eSopenharmony_ci    * @form
109461847f8eSopenharmony_ci    * @atomicservice
109561847f8eSopenharmony_ci    * @since 12
109661847f8eSopenharmony_ci    */
109761847f8eSopenharmony_ci  enableVariableFontWeight?: boolean;
109861847f8eSopenharmony_ci }