161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 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_ciimport type { Callback } from './@ohos.base';
2261847f8eSopenharmony_ciimport type UIAbilityContext from './application/UIAbilityContext';
2361847f8eSopenharmony_ciimport type { NavigationOperation, NavBar } from '../component/navigation';
2461847f8eSopenharmony_ci
2561847f8eSopenharmony_ci/**
2661847f8eSopenharmony_ci * Register callbacks to observe ArkUI behavior.
2761847f8eSopenharmony_ci *
2861847f8eSopenharmony_ci * @namespace uiObserver
2961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
3061847f8eSopenharmony_ci * @crossplatform
3161847f8eSopenharmony_ci * @since 11
3261847f8eSopenharmony_ci */
3361847f8eSopenharmony_ci/**
3461847f8eSopenharmony_ci * Register callbacks to observe ArkUI behavior.
3561847f8eSopenharmony_ci *
3661847f8eSopenharmony_ci * @namespace uiObserver
3761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
3861847f8eSopenharmony_ci * @crossplatform
3961847f8eSopenharmony_ci * @atomicservice
4061847f8eSopenharmony_ci * @since 12
4161847f8eSopenharmony_ci */
4261847f8eSopenharmony_cideclare namespace uiObserver {
4361847f8eSopenharmony_ci  /**
4461847f8eSopenharmony_ci   * NavDestination state.
4561847f8eSopenharmony_ci   *
4661847f8eSopenharmony_ci   * @enum { number }
4761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
4861847f8eSopenharmony_ci   * @crossplatform
4961847f8eSopenharmony_ci   * @form
5061847f8eSopenharmony_ci   * @since 11
5161847f8eSopenharmony_ci   */
5261847f8eSopenharmony_ci  /**
5361847f8eSopenharmony_ci   * NavDestination state.
5461847f8eSopenharmony_ci   *
5561847f8eSopenharmony_ci   * @enum { number }
5661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
5761847f8eSopenharmony_ci   * @crossplatform
5861847f8eSopenharmony_ci   * @form
5961847f8eSopenharmony_ci   * @atomicservice
6061847f8eSopenharmony_ci   * @since 12
6161847f8eSopenharmony_ci   */
6261847f8eSopenharmony_ci  export enum NavDestinationState {
6361847f8eSopenharmony_ci    /**
6461847f8eSopenharmony_ci     * When the NavDestination is displayed.
6561847f8eSopenharmony_ci     *
6661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
6761847f8eSopenharmony_ci     * @crossplatform
6861847f8eSopenharmony_ci     * @form
6961847f8eSopenharmony_ci     * @since 11
7061847f8eSopenharmony_ci     */
7161847f8eSopenharmony_ci    /**
7261847f8eSopenharmony_ci     * When the NavDestination is displayed.
7361847f8eSopenharmony_ci     *
7461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
7561847f8eSopenharmony_ci     * @crossplatform
7661847f8eSopenharmony_ci     * @form
7761847f8eSopenharmony_ci     * @atomicservice
7861847f8eSopenharmony_ci     * @since 12
7961847f8eSopenharmony_ci     */
8061847f8eSopenharmony_ci    ON_SHOWN = 0,
8161847f8eSopenharmony_ci
8261847f8eSopenharmony_ci    /**
8361847f8eSopenharmony_ci     * When the NavDestination is hidden.
8461847f8eSopenharmony_ci     *
8561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
8661847f8eSopenharmony_ci     * @crossplatform
8761847f8eSopenharmony_ci     * @form
8861847f8eSopenharmony_ci     * @since 11
8961847f8eSopenharmony_ci     */
9061847f8eSopenharmony_ci    /**
9161847f8eSopenharmony_ci     * When the NavDestination is hidden.
9261847f8eSopenharmony_ci     *
9361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
9461847f8eSopenharmony_ci     * @crossplatform
9561847f8eSopenharmony_ci     * @form
9661847f8eSopenharmony_ci     * @atomicservice
9761847f8eSopenharmony_ci     * @since 12
9861847f8eSopenharmony_ci     */
9961847f8eSopenharmony_ci    ON_HIDDEN = 1,
10061847f8eSopenharmony_ci
10161847f8eSopenharmony_ci    /**
10261847f8eSopenharmony_ci     * When the NavDestination appear.
10361847f8eSopenharmony_ci     *
10461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
10561847f8eSopenharmony_ci     * @crossplatform
10661847f8eSopenharmony_ci     * @form
10761847f8eSopenharmony_ci     * @atomicservice
10861847f8eSopenharmony_ci     * @since 12
10961847f8eSopenharmony_ci     */
11061847f8eSopenharmony_ci    ON_APPEAR = 2,
11161847f8eSopenharmony_ci
11261847f8eSopenharmony_ci    /**
11361847f8eSopenharmony_ci     * When the NavDestination disappear.
11461847f8eSopenharmony_ci     *
11561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
11661847f8eSopenharmony_ci     * @crossplatform
11761847f8eSopenharmony_ci     * @form
11861847f8eSopenharmony_ci     * @atomicservice
11961847f8eSopenharmony_ci     * @since 12
12061847f8eSopenharmony_ci     */
12161847f8eSopenharmony_ci    ON_DISAPPEAR = 3,
12261847f8eSopenharmony_ci
12361847f8eSopenharmony_ci    /**
12461847f8eSopenharmony_ci     * Before the NavDestination is displayed.
12561847f8eSopenharmony_ci     *
12661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
12761847f8eSopenharmony_ci     * @crossplatform
12861847f8eSopenharmony_ci     * @form
12961847f8eSopenharmony_ci     * @atomicservice
13061847f8eSopenharmony_ci     * @since 12
13161847f8eSopenharmony_ci     */
13261847f8eSopenharmony_ci    ON_WILL_SHOW = 4,
13361847f8eSopenharmony_ci
13461847f8eSopenharmony_ci    /**
13561847f8eSopenharmony_ci     * Before the NavDestination is hidden.
13661847f8eSopenharmony_ci     *
13761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
13861847f8eSopenharmony_ci     * @crossplatform
13961847f8eSopenharmony_ci     * @form
14061847f8eSopenharmony_ci     * @atomicservice
14161847f8eSopenharmony_ci     * @since 12
14261847f8eSopenharmony_ci     */
14361847f8eSopenharmony_ci    ON_WILL_HIDE = 5,
14461847f8eSopenharmony_ci
14561847f8eSopenharmony_ci    /**
14661847f8eSopenharmony_ci     * Before the NavDestination is appeared.
14761847f8eSopenharmony_ci     *
14861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
14961847f8eSopenharmony_ci     * @crossplatform
15061847f8eSopenharmony_ci     * @form
15161847f8eSopenharmony_ci     * @atomicservice
15261847f8eSopenharmony_ci     * @since 12
15361847f8eSopenharmony_ci     */
15461847f8eSopenharmony_ci    ON_WILL_APPEAR = 6,
15561847f8eSopenharmony_ci
15661847f8eSopenharmony_ci    /**
15761847f8eSopenharmony_ci     * Before the NavDestination is disappeared.
15861847f8eSopenharmony_ci     *
15961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
16061847f8eSopenharmony_ci     * @crossplatform
16161847f8eSopenharmony_ci     * @form
16261847f8eSopenharmony_ci     * @atomicservice
16361847f8eSopenharmony_ci     * @since 12
16461847f8eSopenharmony_ci     */
16561847f8eSopenharmony_ci    ON_WILL_DISAPPEAR = 7,
16661847f8eSopenharmony_ci
16761847f8eSopenharmony_ci    /**
16861847f8eSopenharmony_ci     * When back press event happened in NavDestination.
16961847f8eSopenharmony_ci     *
17061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
17161847f8eSopenharmony_ci     * @crossplatform
17261847f8eSopenharmony_ci     * @form
17361847f8eSopenharmony_ci     * @atomicservice
17461847f8eSopenharmony_ci     * @since 12
17561847f8eSopenharmony_ci     */
17661847f8eSopenharmony_ci    ON_BACKPRESS = 100
17761847f8eSopenharmony_ci  }
17861847f8eSopenharmony_ci
17961847f8eSopenharmony_ci  /**
18061847f8eSopenharmony_ci   * Router page state.
18161847f8eSopenharmony_ci   *
18261847f8eSopenharmony_ci   * @enum { number }
18361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
18461847f8eSopenharmony_ci   * @crossplatform
18561847f8eSopenharmony_ci   * @since 11
18661847f8eSopenharmony_ci   */
18761847f8eSopenharmony_ci  /**
18861847f8eSopenharmony_ci   * Router page state.
18961847f8eSopenharmony_ci   *
19061847f8eSopenharmony_ci   * @enum { number }
19161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
19261847f8eSopenharmony_ci   * @crossplatform
19361847f8eSopenharmony_ci   * @atomicservice
19461847f8eSopenharmony_ci   * @since 12
19561847f8eSopenharmony_ci   */
19661847f8eSopenharmony_ci  export enum RouterPageState {
19761847f8eSopenharmony_ci    /**
19861847f8eSopenharmony_ci     * When the router page create.
19961847f8eSopenharmony_ci     *
20061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
20161847f8eSopenharmony_ci     * @crossplatform
20261847f8eSopenharmony_ci     * @since 11
20361847f8eSopenharmony_ci     */
20461847f8eSopenharmony_ci    /**
20561847f8eSopenharmony_ci     * When the router page create.
20661847f8eSopenharmony_ci     *
20761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
20861847f8eSopenharmony_ci     * @crossplatform
20961847f8eSopenharmony_ci     * @atomicservice
21061847f8eSopenharmony_ci     * @since 12
21161847f8eSopenharmony_ci     */
21261847f8eSopenharmony_ci    ABOUT_TO_APPEAR = 0,
21361847f8eSopenharmony_ci
21461847f8eSopenharmony_ci    /**
21561847f8eSopenharmony_ci     * When the router page destroy.
21661847f8eSopenharmony_ci     *
21761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
21861847f8eSopenharmony_ci     * @crossplatform
21961847f8eSopenharmony_ci     * @since 11
22061847f8eSopenharmony_ci     */
22161847f8eSopenharmony_ci    /**
22261847f8eSopenharmony_ci     * When the router page destroy.
22361847f8eSopenharmony_ci     *
22461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
22561847f8eSopenharmony_ci     * @crossplatform
22661847f8eSopenharmony_ci     * @atomicservice
22761847f8eSopenharmony_ci     * @since 12
22861847f8eSopenharmony_ci     */
22961847f8eSopenharmony_ci    ABOUT_TO_DISAPPEAR = 1,
23061847f8eSopenharmony_ci
23161847f8eSopenharmony_ci    /**
23261847f8eSopenharmony_ci     * When the router page show.
23361847f8eSopenharmony_ci     *
23461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
23561847f8eSopenharmony_ci     * @crossplatform
23661847f8eSopenharmony_ci     * @since 11
23761847f8eSopenharmony_ci     */
23861847f8eSopenharmony_ci    /**
23961847f8eSopenharmony_ci     * When the router page show.
24061847f8eSopenharmony_ci     *
24161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
24261847f8eSopenharmony_ci     * @crossplatform
24361847f8eSopenharmony_ci     * @atomicservice
24461847f8eSopenharmony_ci     * @since 12
24561847f8eSopenharmony_ci     */
24661847f8eSopenharmony_ci    ON_PAGE_SHOW = 2,
24761847f8eSopenharmony_ci
24861847f8eSopenharmony_ci    /**
24961847f8eSopenharmony_ci     * When the router page hide.
25061847f8eSopenharmony_ci     *
25161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
25261847f8eSopenharmony_ci     * @crossplatform
25361847f8eSopenharmony_ci     * @since 11
25461847f8eSopenharmony_ci     */
25561847f8eSopenharmony_ci    /**
25661847f8eSopenharmony_ci     * When the router page hide.
25761847f8eSopenharmony_ci     *
25861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
25961847f8eSopenharmony_ci     * @crossplatform
26061847f8eSopenharmony_ci     * @atomicservice
26161847f8eSopenharmony_ci     * @since 12
26261847f8eSopenharmony_ci     */
26361847f8eSopenharmony_ci    ON_PAGE_HIDE = 3,
26461847f8eSopenharmony_ci
26561847f8eSopenharmony_ci    /**
26661847f8eSopenharmony_ci     * When back press event happened in the router page.
26761847f8eSopenharmony_ci     *
26861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
26961847f8eSopenharmony_ci     * @crossplatform
27061847f8eSopenharmony_ci     * @since 11
27161847f8eSopenharmony_ci     */
27261847f8eSopenharmony_ci    /**
27361847f8eSopenharmony_ci     * When back press event happened in the router page.
27461847f8eSopenharmony_ci     *
27561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
27661847f8eSopenharmony_ci     * @crossplatform
27761847f8eSopenharmony_ci     * @atomicservice
27861847f8eSopenharmony_ci     * @since 12
27961847f8eSopenharmony_ci     */
28061847f8eSopenharmony_ci    ON_BACK_PRESS = 4
28161847f8eSopenharmony_ci  }
28261847f8eSopenharmony_ci
28361847f8eSopenharmony_ci  /**
28461847f8eSopenharmony_ci   * ScrollEvent type.
28561847f8eSopenharmony_ci   *
28661847f8eSopenharmony_ci   * @enum { number }
28761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
28861847f8eSopenharmony_ci   * @crossplatform
28961847f8eSopenharmony_ci   * @atomicservice
29061847f8eSopenharmony_ci   * @since 12
29161847f8eSopenharmony_ci   */
29261847f8eSopenharmony_ci    export enum ScrollEventType {
29361847f8eSopenharmony_ci      /**
29461847f8eSopenharmony_ci       * When the ScrollEvent start.
29561847f8eSopenharmony_ci       *
29661847f8eSopenharmony_ci       * @syscap SystemCapability.ArkUI.ArkUI.Full
29761847f8eSopenharmony_ci       * @crossplatform
29861847f8eSopenharmony_ci       * @atomicservice
29961847f8eSopenharmony_ci       * @since 12
30061847f8eSopenharmony_ci       */
30161847f8eSopenharmony_ci      SCROLL_START = 0,
30261847f8eSopenharmony_ci  
30361847f8eSopenharmony_ci      /**
30461847f8eSopenharmony_ci       * When the ScrollEvent stop.
30561847f8eSopenharmony_ci       *
30661847f8eSopenharmony_ci       * @syscap SystemCapability.ArkUI.ArkUI.Full
30761847f8eSopenharmony_ci       * @crossplatform
30861847f8eSopenharmony_ci       * @atomicservice
30961847f8eSopenharmony_ci       * @since 12
31061847f8eSopenharmony_ci       */
31161847f8eSopenharmony_ci      SCROLL_STOP = 1
31261847f8eSopenharmony_ci    }
31361847f8eSopenharmony_ci
31461847f8eSopenharmony_ci  /**
31561847f8eSopenharmony_ci   * TabContent state.
31661847f8eSopenharmony_ci   *
31761847f8eSopenharmony_ci   * @enum { number }
31861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
31961847f8eSopenharmony_ci   * @crossplatform
32061847f8eSopenharmony_ci   * @atomicservice
32161847f8eSopenharmony_ci   * @since 12
32261847f8eSopenharmony_ci   */
32361847f8eSopenharmony_ci  export enum TabContentState {
32461847f8eSopenharmony_ci    /**
32561847f8eSopenharmony_ci     * When the TabContent hidden.
32661847f8eSopenharmony_ci     *
32761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
32861847f8eSopenharmony_ci     * @crossplatform
32961847f8eSopenharmony_ci     * @atomicservice
33061847f8eSopenharmony_ci     * @since 12
33161847f8eSopenharmony_ci     */
33261847f8eSopenharmony_ci    ON_SHOW = 0,
33361847f8eSopenharmony_ci
33461847f8eSopenharmony_ci    /**
33561847f8eSopenharmony_ci     * When the TabContent hidden.
33661847f8eSopenharmony_ci     *
33761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
33861847f8eSopenharmony_ci     * @crossplatform
33961847f8eSopenharmony_ci     * @atomicservice
34061847f8eSopenharmony_ci     * @since 12
34161847f8eSopenharmony_ci     */
34261847f8eSopenharmony_ci    ON_HIDE = 1
34361847f8eSopenharmony_ci  }
34461847f8eSopenharmony_ci
34561847f8eSopenharmony_ci  /**
34661847f8eSopenharmony_ci   * NavDestination info.
34761847f8eSopenharmony_ci   *
34861847f8eSopenharmony_ci   * @interface NavDestinationInfo
34961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
35061847f8eSopenharmony_ci   * @crossplatform
35161847f8eSopenharmony_ci   * @since 11
35261847f8eSopenharmony_ci   */
35361847f8eSopenharmony_ci  /**
35461847f8eSopenharmony_ci   * NavDestination info.
35561847f8eSopenharmony_ci   *
35661847f8eSopenharmony_ci   * @interface NavDestinationInfo
35761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
35861847f8eSopenharmony_ci   * @crossplatform
35961847f8eSopenharmony_ci   * @atomicservice
36061847f8eSopenharmony_ci   * @since 12
36161847f8eSopenharmony_ci   */
36261847f8eSopenharmony_ci  export interface NavDestinationInfo {
36361847f8eSopenharmony_ci    /**
36461847f8eSopenharmony_ci     * Navigation id.
36561847f8eSopenharmony_ci     *
36661847f8eSopenharmony_ci     * @type { ResourceStr }
36761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
36861847f8eSopenharmony_ci     * @crossplatform
36961847f8eSopenharmony_ci     * @since 11
37061847f8eSopenharmony_ci     */
37161847f8eSopenharmony_ci    /**
37261847f8eSopenharmony_ci     * Navigation id.
37361847f8eSopenharmony_ci     *
37461847f8eSopenharmony_ci     * @type { ResourceStr }
37561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
37661847f8eSopenharmony_ci     * @crossplatform
37761847f8eSopenharmony_ci     * @atomicservice
37861847f8eSopenharmony_ci     * @since 12
37961847f8eSopenharmony_ci     */
38061847f8eSopenharmony_ci    navigationId: ResourceStr,
38161847f8eSopenharmony_ci
38261847f8eSopenharmony_ci    /**
38361847f8eSopenharmony_ci     * Changed NavDestination name.
38461847f8eSopenharmony_ci     *
38561847f8eSopenharmony_ci     * @type { ResourceStr }
38661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
38761847f8eSopenharmony_ci     * @crossplatform
38861847f8eSopenharmony_ci     * @since 11
38961847f8eSopenharmony_ci     */
39061847f8eSopenharmony_ci    /**
39161847f8eSopenharmony_ci     * Changed NavDestination name.
39261847f8eSopenharmony_ci     *
39361847f8eSopenharmony_ci     * @type { ResourceStr }
39461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
39561847f8eSopenharmony_ci     * @crossplatform
39661847f8eSopenharmony_ci     * @atomicservice
39761847f8eSopenharmony_ci     * @since 12
39861847f8eSopenharmony_ci     */
39961847f8eSopenharmony_ci    name: ResourceStr,
40061847f8eSopenharmony_ci
40161847f8eSopenharmony_ci    /**
40261847f8eSopenharmony_ci     * Changed NavDestination state.
40361847f8eSopenharmony_ci     *
40461847f8eSopenharmony_ci     * @type { NavDestinationState }
40561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
40661847f8eSopenharmony_ci     * @crossplatform
40761847f8eSopenharmony_ci     * @since 11
40861847f8eSopenharmony_ci     */
40961847f8eSopenharmony_ci    /**
41061847f8eSopenharmony_ci     * Changed NavDestination state.
41161847f8eSopenharmony_ci     *
41261847f8eSopenharmony_ci     * @type { NavDestinationState }
41361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
41461847f8eSopenharmony_ci     * @crossplatform
41561847f8eSopenharmony_ci     * @atomicservice
41661847f8eSopenharmony_ci     * @since 12
41761847f8eSopenharmony_ci     */
41861847f8eSopenharmony_ci    state: NavDestinationState,
41961847f8eSopenharmony_ci
42061847f8eSopenharmony_ci    /**
42161847f8eSopenharmony_ci     * NavDestination index.
42261847f8eSopenharmony_ci     *
42361847f8eSopenharmony_ci     * @type { number }
42461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
42561847f8eSopenharmony_ci     * @crossplatform
42661847f8eSopenharmony_ci     * @atomicservice
42761847f8eSopenharmony_ci     * @since 12
42861847f8eSopenharmony_ci     */
42961847f8eSopenharmony_ci    index: number;
43061847f8eSopenharmony_ci
43161847f8eSopenharmony_ci    /**
43261847f8eSopenharmony_ci     * The detailed parameter of NavDestination.
43361847f8eSopenharmony_ci     *
43461847f8eSopenharmony_ci     * @type { ?Object }
43561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
43661847f8eSopenharmony_ci     * @crossplatform
43761847f8eSopenharmony_ci     * @atomicservice
43861847f8eSopenharmony_ci     * @since 12
43961847f8eSopenharmony_ci     */
44061847f8eSopenharmony_ci    param?: Object;
44161847f8eSopenharmony_ci
44261847f8eSopenharmony_ci    /**
44361847f8eSopenharmony_ci     * Auto-generated navDestination id, which is different from common property id of Component.
44461847f8eSopenharmony_ci     *
44561847f8eSopenharmony_ci     * @type { string }
44661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
44761847f8eSopenharmony_ci     * @crossplatform
44861847f8eSopenharmony_ci     * @atomicservice
44961847f8eSopenharmony_ci     * @since 12
45061847f8eSopenharmony_ci     */
45161847f8eSopenharmony_ci    navDestinationId: string;
45261847f8eSopenharmony_ci  }
45361847f8eSopenharmony_ci
45461847f8eSopenharmony_ci  /**
45561847f8eSopenharmony_ci   * Navigation info.
45661847f8eSopenharmony_ci   * 
45761847f8eSopenharmony_ci   * @interface NavigationInfo
45861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
45961847f8eSopenharmony_ci   * @crossplatform
46061847f8eSopenharmony_ci   * @atomicservice
46161847f8eSopenharmony_ci   * @since 12
46261847f8eSopenharmony_ci   */
46361847f8eSopenharmony_ci  export interface NavigationInfo {
46461847f8eSopenharmony_ci    /**
46561847f8eSopenharmony_ci     * Navigation id.
46661847f8eSopenharmony_ci     * 
46761847f8eSopenharmony_ci     * @type { string }
46861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
46961847f8eSopenharmony_ci     * @crossplatform
47061847f8eSopenharmony_ci     * @atomicservice
47161847f8eSopenharmony_ci     * @since 12
47261847f8eSopenharmony_ci     */
47361847f8eSopenharmony_ci    navigationId: string;
47461847f8eSopenharmony_ci    
47561847f8eSopenharmony_ci    /**
47661847f8eSopenharmony_ci     * Navigation path stack.
47761847f8eSopenharmony_ci     * 
47861847f8eSopenharmony_ci     * @type { NavPathStack }
47961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
48061847f8eSopenharmony_ci     * @crossplatform
48161847f8eSopenharmony_ci     * @atomicservice
48261847f8eSopenharmony_ci     * @since 12
48361847f8eSopenharmony_ci     */
48461847f8eSopenharmony_ci    pathStack: NavPathStack;
48561847f8eSopenharmony_ci  }
48661847f8eSopenharmony_ci
48761847f8eSopenharmony_ci  /**
48861847f8eSopenharmony_ci   * ScrollEvent info.
48961847f8eSopenharmony_ci   *
49061847f8eSopenharmony_ci   * @interface ScrollEventInfo
49161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
49261847f8eSopenharmony_ci   * @crossplatform
49361847f8eSopenharmony_ci   * @atomicservice
49461847f8eSopenharmony_ci   * @since 12
49561847f8eSopenharmony_ci   */
49661847f8eSopenharmony_ci  export interface ScrollEventInfo {
49761847f8eSopenharmony_ci    /**
49861847f8eSopenharmony_ci     * Scroll id.
49961847f8eSopenharmony_ci     *
50061847f8eSopenharmony_ci     * @type { string }
50161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
50261847f8eSopenharmony_ci     * @crossplatform
50361847f8eSopenharmony_ci     * @atomicservice
50461847f8eSopenharmony_ci     * @since 12
50561847f8eSopenharmony_ci     */
50661847f8eSopenharmony_ci    id: string,
50761847f8eSopenharmony_ci
50861847f8eSopenharmony_ci    /**
50961847f8eSopenharmony_ci     * The uniqueId of the scrollable component.
51061847f8eSopenharmony_ci     *
51161847f8eSopenharmony_ci     * @type { number }
51261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
51361847f8eSopenharmony_ci     * @crossplatform
51461847f8eSopenharmony_ci     * @atomicservice
51561847f8eSopenharmony_ci     * @since 12
51661847f8eSopenharmony_ci     */
51761847f8eSopenharmony_ci    uniqueId: number,
51861847f8eSopenharmony_ci
51961847f8eSopenharmony_ci    /**
52061847f8eSopenharmony_ci     * Changed ScrollEvent type.
52161847f8eSopenharmony_ci     *
52261847f8eSopenharmony_ci     * @type { ScrollEventType }
52361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
52461847f8eSopenharmony_ci     * @crossplatform
52561847f8eSopenharmony_ci     * @atomicservice
52661847f8eSopenharmony_ci     * @since 12
52761847f8eSopenharmony_ci     */
52861847f8eSopenharmony_ci    scrollEvent: ScrollEventType,
52961847f8eSopenharmony_ci
53061847f8eSopenharmony_ci    /**
53161847f8eSopenharmony_ci     * Changed ScrollEvent offset.
53261847f8eSopenharmony_ci     *
53361847f8eSopenharmony_ci     * @type { number }
53461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
53561847f8eSopenharmony_ci     * @crossplatform
53661847f8eSopenharmony_ci     * @atomicservice
53761847f8eSopenharmony_ci     * @since 12
53861847f8eSopenharmony_ci     */
53961847f8eSopenharmony_ci    offset: number
54061847f8eSopenharmony_ci  }
54161847f8eSopenharmony_ci
54261847f8eSopenharmony_ci  /**
54361847f8eSopenharmony_ci   * TabContent info.
54461847f8eSopenharmony_ci   *
54561847f8eSopenharmony_ci   * @typedef TabContentInfo
54661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
54761847f8eSopenharmony_ci   * @crossplatform
54861847f8eSopenharmony_ci   * @atomicservice
54961847f8eSopenharmony_ci   * @since 12
55061847f8eSopenharmony_ci   */
55161847f8eSopenharmony_ci  export interface TabContentInfo {
55261847f8eSopenharmony_ci    /**
55361847f8eSopenharmony_ci     * TabContent id.
55461847f8eSopenharmony_ci     *
55561847f8eSopenharmony_ci     * @type { string }
55661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
55761847f8eSopenharmony_ci     * @crossplatform
55861847f8eSopenharmony_ci     * @atomicservice
55961847f8eSopenharmony_ci     * @since 12
56061847f8eSopenharmony_ci     */
56161847f8eSopenharmony_ci    tabContentId: string,
56261847f8eSopenharmony_ci
56361847f8eSopenharmony_ci    /**
56461847f8eSopenharmony_ci     * TabContent uniqueId.
56561847f8eSopenharmony_ci     *
56661847f8eSopenharmony_ci     * @type { number }
56761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
56861847f8eSopenharmony_ci     * @crossplatform
56961847f8eSopenharmony_ci     * @atomicservice
57061847f8eSopenharmony_ci     * @since 12
57161847f8eSopenharmony_ci     */
57261847f8eSopenharmony_ci    tabContentUniqueId: number,
57361847f8eSopenharmony_ci
57461847f8eSopenharmony_ci    /**
57561847f8eSopenharmony_ci     * The state of TabContent.
57661847f8eSopenharmony_ci     *
57761847f8eSopenharmony_ci     * @type { TabContentState }
57861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
57961847f8eSopenharmony_ci     * @crossplatform
58061847f8eSopenharmony_ci     * @atomicservice
58161847f8eSopenharmony_ci     * @since 12
58261847f8eSopenharmony_ci     */
58361847f8eSopenharmony_ci    state: TabContentState,
58461847f8eSopenharmony_ci
58561847f8eSopenharmony_ci    /**
58661847f8eSopenharmony_ci     * The index of TabContent in Tabs.
58761847f8eSopenharmony_ci     *
58861847f8eSopenharmony_ci     * @type { number }
58961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
59061847f8eSopenharmony_ci     * @crossplatform
59161847f8eSopenharmony_ci     * @atomicservice
59261847f8eSopenharmony_ci     * @since 12
59361847f8eSopenharmony_ci     */
59461847f8eSopenharmony_ci    index: number,
59561847f8eSopenharmony_ci
59661847f8eSopenharmony_ci    /**
59761847f8eSopenharmony_ci     * Tabs id.
59861847f8eSopenharmony_ci     *
59961847f8eSopenharmony_ci     * @type { string }
60061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
60161847f8eSopenharmony_ci     * @crossplatform
60261847f8eSopenharmony_ci     * @atomicservice
60361847f8eSopenharmony_ci     * @since 12
60461847f8eSopenharmony_ci     */
60561847f8eSopenharmony_ci    id: string,
60661847f8eSopenharmony_ci
60761847f8eSopenharmony_ci    /**
60861847f8eSopenharmony_ci     * Tabs uniqueId.
60961847f8eSopenharmony_ci     *
61061847f8eSopenharmony_ci     * @type { number }
61161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
61261847f8eSopenharmony_ci     * @crossplatform
61361847f8eSopenharmony_ci     * @atomicservice
61461847f8eSopenharmony_ci     * @since 12
61561847f8eSopenharmony_ci     */
61661847f8eSopenharmony_ci    uniqueId: number
61761847f8eSopenharmony_ci  }
61861847f8eSopenharmony_ci
61961847f8eSopenharmony_ci    /**
62061847f8eSopenharmony_ci     * observer options.
62161847f8eSopenharmony_ci     *
62261847f8eSopenharmony_ci     * @interface ObserverOptions
62361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
62461847f8eSopenharmony_ci     * @crossplatform
62561847f8eSopenharmony_ci     * @atomicservice
62661847f8eSopenharmony_ci     * @since 12
62761847f8eSopenharmony_ci     */
62861847f8eSopenharmony_ci    export interface ObserverOptions {
62961847f8eSopenharmony_ci      /**
63061847f8eSopenharmony_ci       * component id.
63161847f8eSopenharmony_ci       *
63261847f8eSopenharmony_ci       * @type { string }
63361847f8eSopenharmony_ci       * @syscap SystemCapability.ArkUI.ArkUI.Full
63461847f8eSopenharmony_ci       * @crossplatform
63561847f8eSopenharmony_ci       * @atomicservice
63661847f8eSopenharmony_ci       * @since 12
63761847f8eSopenharmony_ci       */
63861847f8eSopenharmony_ci      id: string
63961847f8eSopenharmony_ci    }
64061847f8eSopenharmony_ci
64161847f8eSopenharmony_ci  /**
64261847f8eSopenharmony_ci   * Router page info.
64361847f8eSopenharmony_ci   *
64461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
64561847f8eSopenharmony_ci   * @crossplatform
64661847f8eSopenharmony_ci   * @since 11
64761847f8eSopenharmony_ci   */
64861847f8eSopenharmony_ci  /**
64961847f8eSopenharmony_ci   * Router page info.
65061847f8eSopenharmony_ci   *
65161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
65261847f8eSopenharmony_ci   * @crossplatform
65361847f8eSopenharmony_ci   * @atomicservice
65461847f8eSopenharmony_ci   * @since 12
65561847f8eSopenharmony_ci   */
65661847f8eSopenharmony_ci  export class RouterPageInfo {
65761847f8eSopenharmony_ci    /**
65861847f8eSopenharmony_ci     * The context of the changed router page.
65961847f8eSopenharmony_ci     *
66061847f8eSopenharmony_ci     * @type { UIAbilityContext | UIContext }
66161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
66261847f8eSopenharmony_ci     * @crossplatform
66361847f8eSopenharmony_ci     * @since 11
66461847f8eSopenharmony_ci     */
66561847f8eSopenharmony_ci    /**
66661847f8eSopenharmony_ci     * The context of the changed router page.
66761847f8eSopenharmony_ci     *
66861847f8eSopenharmony_ci     * @type { UIAbilityContext | UIContext }
66961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
67061847f8eSopenharmony_ci     * @crossplatform
67161847f8eSopenharmony_ci     * @atomicservice
67261847f8eSopenharmony_ci     * @since 12
67361847f8eSopenharmony_ci     */
67461847f8eSopenharmony_ci    context: UIAbilityContext | UIContext;
67561847f8eSopenharmony_ci
67661847f8eSopenharmony_ci    /**
67761847f8eSopenharmony_ci     * The index of the changed router page in router stack.
67861847f8eSopenharmony_ci     *
67961847f8eSopenharmony_ci     * @type { number }
68061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
68161847f8eSopenharmony_ci     * @crossplatform
68261847f8eSopenharmony_ci     * @since 11
68361847f8eSopenharmony_ci     */
68461847f8eSopenharmony_ci    /**
68561847f8eSopenharmony_ci     * The index of the changed router page in router stack.
68661847f8eSopenharmony_ci     *
68761847f8eSopenharmony_ci     * @type { number }
68861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
68961847f8eSopenharmony_ci     * @crossplatform
69061847f8eSopenharmony_ci     * @atomicservice
69161847f8eSopenharmony_ci     * @since 12
69261847f8eSopenharmony_ci     */
69361847f8eSopenharmony_ci    index: number;
69461847f8eSopenharmony_ci
69561847f8eSopenharmony_ci    /**
69661847f8eSopenharmony_ci     * The name of the changed router page.
69761847f8eSopenharmony_ci     *
69861847f8eSopenharmony_ci     * @type { string }
69961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
70061847f8eSopenharmony_ci     * @crossplatform
70161847f8eSopenharmony_ci     * @since 11
70261847f8eSopenharmony_ci     */
70361847f8eSopenharmony_ci    /**
70461847f8eSopenharmony_ci     * The name of the changed router page.
70561847f8eSopenharmony_ci     *
70661847f8eSopenharmony_ci     * @type { string }
70761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
70861847f8eSopenharmony_ci     * @crossplatform
70961847f8eSopenharmony_ci     * @atomicservice
71061847f8eSopenharmony_ci     * @since 12
71161847f8eSopenharmony_ci     */
71261847f8eSopenharmony_ci    name: string;
71361847f8eSopenharmony_ci
71461847f8eSopenharmony_ci    /**
71561847f8eSopenharmony_ci     * The path of the changed router page.
71661847f8eSopenharmony_ci     *
71761847f8eSopenharmony_ci     * @type { string }
71861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
71961847f8eSopenharmony_ci     * @crossplatform
72061847f8eSopenharmony_ci     * @since 11
72161847f8eSopenharmony_ci     */
72261847f8eSopenharmony_ci    /**
72361847f8eSopenharmony_ci     * The path of the changed router page.
72461847f8eSopenharmony_ci     *
72561847f8eSopenharmony_ci     * @type { string }
72661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
72761847f8eSopenharmony_ci     * @crossplatform
72861847f8eSopenharmony_ci     * @atomicservice
72961847f8eSopenharmony_ci     * @since 12
73061847f8eSopenharmony_ci     */
73161847f8eSopenharmony_ci    path: string;
73261847f8eSopenharmony_ci
73361847f8eSopenharmony_ci    /**
73461847f8eSopenharmony_ci     * The state of the changed router page.
73561847f8eSopenharmony_ci     *
73661847f8eSopenharmony_ci     * @type { RouterPageState }
73761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
73861847f8eSopenharmony_ci     * @crossplatform
73961847f8eSopenharmony_ci     * @since 11
74061847f8eSopenharmony_ci     */
74161847f8eSopenharmony_ci    /**
74261847f8eSopenharmony_ci     * The state of the changed router page.
74361847f8eSopenharmony_ci     *
74461847f8eSopenharmony_ci     * @type { RouterPageState }
74561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
74661847f8eSopenharmony_ci     * @crossplatform
74761847f8eSopenharmony_ci     * @atomicservice
74861847f8eSopenharmony_ci     * @since 12
74961847f8eSopenharmony_ci     */
75061847f8eSopenharmony_ci    state: RouterPageState;
75161847f8eSopenharmony_ci
75261847f8eSopenharmony_ci    /**
75361847f8eSopenharmony_ci     * The unique identifier of the router page.
75461847f8eSopenharmony_ci     *
75561847f8eSopenharmony_ci     * @type { string }
75661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
75761847f8eSopenharmony_ci     * @crossplatform
75861847f8eSopenharmony_ci     * @atomicservice
75961847f8eSopenharmony_ci     * @since 12
76061847f8eSopenharmony_ci     */
76161847f8eSopenharmony_ci     pageId: string;
76261847f8eSopenharmony_ci  }
76361847f8eSopenharmony_ci
76461847f8eSopenharmony_ci  /**
76561847f8eSopenharmony_ci   * Density info.
76661847f8eSopenharmony_ci   *
76761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
76861847f8eSopenharmony_ci   * @crossplatform
76961847f8eSopenharmony_ci   * @atomicservice
77061847f8eSopenharmony_ci   * @since 12
77161847f8eSopenharmony_ci   */
77261847f8eSopenharmony_ci  export class DensityInfo {
77361847f8eSopenharmony_ci    /**
77461847f8eSopenharmony_ci     * The context of the changed screen density.
77561847f8eSopenharmony_ci     *
77661847f8eSopenharmony_ci     * @type { UIContext }
77761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
77861847f8eSopenharmony_ci     * @crossplatform
77961847f8eSopenharmony_ci     * @atomicservice
78061847f8eSopenharmony_ci     * @since 12
78161847f8eSopenharmony_ci     */
78261847f8eSopenharmony_ci    context: UIContext;
78361847f8eSopenharmony_ci
78461847f8eSopenharmony_ci    /**
78561847f8eSopenharmony_ci     * The changed screen density.
78661847f8eSopenharmony_ci     *
78761847f8eSopenharmony_ci     * @type { number }
78861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
78961847f8eSopenharmony_ci     * @crossplatform
79061847f8eSopenharmony_ci     * @atomicservice
79161847f8eSopenharmony_ci     * @since 12
79261847f8eSopenharmony_ci     */
79361847f8eSopenharmony_ci    density: number;
79461847f8eSopenharmony_ci  }
79561847f8eSopenharmony_ci
79661847f8eSopenharmony_ci  /**
79761847f8eSopenharmony_ci   * NavDestination switch info
79861847f8eSopenharmony_ci   *
79961847f8eSopenharmony_ci   * @interface NavDestinationSwitchInfo
80061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
80161847f8eSopenharmony_ci   * @crossplatform
80261847f8eSopenharmony_ci   * @atomicservice
80361847f8eSopenharmony_ci   * @since 12
80461847f8eSopenharmony_ci   */
80561847f8eSopenharmony_ci  export interface NavDestinationSwitchInfo {
80661847f8eSopenharmony_ci    /**
80761847f8eSopenharmony_ci     * The context of the navigation operation.
80861847f8eSopenharmony_ci     *
80961847f8eSopenharmony_ci     * @type { UIAbilityContext | UIContext }
81061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
81161847f8eSopenharmony_ci     * @crossplatform
81261847f8eSopenharmony_ci     * @atomicservice
81361847f8eSopenharmony_ci     * @since 12
81461847f8eSopenharmony_ci     */
81561847f8eSopenharmony_ci    context: UIAbilityContext | UIContext;
81661847f8eSopenharmony_ci
81761847f8eSopenharmony_ci    /**
81861847f8eSopenharmony_ci     * From navigation content info.
81961847f8eSopenharmony_ci     *
82061847f8eSopenharmony_ci     * @type { NavDestinationInfo | NavBar }
82161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
82261847f8eSopenharmony_ci     * @crossplatform
82361847f8eSopenharmony_ci     * @atomicservice
82461847f8eSopenharmony_ci     * @since 12
82561847f8eSopenharmony_ci     */
82661847f8eSopenharmony_ci    from: NavDestinationInfo | NavBar;
82761847f8eSopenharmony_ci
82861847f8eSopenharmony_ci    /**
82961847f8eSopenharmony_ci     * To navigation content info.
83061847f8eSopenharmony_ci     *
83161847f8eSopenharmony_ci     * @type { NavDestinationInfo | NavBar }
83261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
83361847f8eSopenharmony_ci     * @crossplatform
83461847f8eSopenharmony_ci     * @atomicservice
83561847f8eSopenharmony_ci     * @since 12
83661847f8eSopenharmony_ci     */
83761847f8eSopenharmony_ci    to: NavDestinationInfo | NavBar;
83861847f8eSopenharmony_ci
83961847f8eSopenharmony_ci    /**
84061847f8eSopenharmony_ci     * The operation type.
84161847f8eSopenharmony_ci     *
84261847f8eSopenharmony_ci     * @type { NavigationOperation }
84361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
84461847f8eSopenharmony_ci     * @crossplatform
84561847f8eSopenharmony_ci     * @atomicservice
84661847f8eSopenharmony_ci     * @since 12
84761847f8eSopenharmony_ci     */
84861847f8eSopenharmony_ci    operation: NavigationOperation;
84961847f8eSopenharmony_ci  }
85061847f8eSopenharmony_ci
85161847f8eSopenharmony_ci  /**
85261847f8eSopenharmony_ci   * Indicates the options of NavDestination switch.
85361847f8eSopenharmony_ci   *
85461847f8eSopenharmony_ci   * @interface NavDestinationSwitchObserverOptions
85561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
85661847f8eSopenharmony_ci   * @crossplatform
85761847f8eSopenharmony_ci   * @atomicservice
85861847f8eSopenharmony_ci   * @since 12
85961847f8eSopenharmony_ci   */
86061847f8eSopenharmony_ci  export interface NavDestinationSwitchObserverOptions {
86161847f8eSopenharmony_ci    /**
86261847f8eSopenharmony_ci     * The navigationId that need observation
86361847f8eSopenharmony_ci     *
86461847f8eSopenharmony_ci     * @type { ResourceStr }
86561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
86661847f8eSopenharmony_ci     * @crossplatform
86761847f8eSopenharmony_ci     * @atomicservice
86861847f8eSopenharmony_ci     * @since 12
86961847f8eSopenharmony_ci     */
87061847f8eSopenharmony_ci    navigationId: ResourceStr;
87161847f8eSopenharmony_ci  }
87261847f8eSopenharmony_ci
87361847f8eSopenharmony_ci  /**
87461847f8eSopenharmony_ci   * Registers a callback function to be called when the navigation destination is updated.
87561847f8eSopenharmony_ci   *
87661847f8eSopenharmony_ci   * @param { 'navDestinationUpdate' } type - The type of event to listen for. Must be 'navDestinationUpdate'.
87761847f8eSopenharmony_ci   * @param { object } options - The options object.
87861847f8eSopenharmony_ci   * @param { Callback<NavDestinationInfo> } callback - The callback function to be called when the navigation destination is updated.
87961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
88061847f8eSopenharmony_ci   * @crossplatform
88161847f8eSopenharmony_ci   * @since 11
88261847f8eSopenharmony_ci   */
88361847f8eSopenharmony_ci  /**
88461847f8eSopenharmony_ci   * Registers a callback function to be called when the navigation destination is updated.
88561847f8eSopenharmony_ci   *
88661847f8eSopenharmony_ci   * @param { 'navDestinationUpdate' } type - The type of event to listen for. Must be 'navDestinationUpdate'.
88761847f8eSopenharmony_ci   * @param { object } options - The options object.
88861847f8eSopenharmony_ci   * @param { Callback<NavDestinationInfo> } callback - The callback function to be called when the navigation destination is updated.
88961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
89061847f8eSopenharmony_ci   * @crossplatform
89161847f8eSopenharmony_ci   * @atomicservice
89261847f8eSopenharmony_ci   * @since 12
89361847f8eSopenharmony_ci   */
89461847f8eSopenharmony_ci  export function on(type: 'navDestinationUpdate', options: { navigationId: ResourceStr }, callback: Callback<NavDestinationInfo>): void;
89561847f8eSopenharmony_ci
89661847f8eSopenharmony_ci  /**
89761847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
89861847f8eSopenharmony_ci   *
89961847f8eSopenharmony_ci   * @param { 'navDestinationUpdate' } type - The type of event to remove the listener for. Must be 'navDestinationUpdate'.
90061847f8eSopenharmony_ci   * @param { object } options - The options object.
90161847f8eSopenharmony_ci   * @param { Callback<NavDestinationInfo> } callback - The callback function to remove. If not provided, all callbacks for the given event type and
90261847f8eSopenharmony_ci   *                                                    navigation ID will be removed.
90361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
90461847f8eSopenharmony_ci   * @crossplatform
90561847f8eSopenharmony_ci   * @since 11
90661847f8eSopenharmony_ci   */
90761847f8eSopenharmony_ci  /**
90861847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
90961847f8eSopenharmony_ci   *
91061847f8eSopenharmony_ci   * @param { 'navDestinationUpdate' } type - The type of event to remove the listener for. Must be 'navDestinationUpdate'.
91161847f8eSopenharmony_ci   * @param { object } options - The options object.
91261847f8eSopenharmony_ci   * @param { Callback<NavDestinationInfo> } callback - The callback function to remove. If not provided, all callbacks for the given event type and
91361847f8eSopenharmony_ci   *                                                    navigation ID will be removed.
91461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
91561847f8eSopenharmony_ci   * @crossplatform
91661847f8eSopenharmony_ci   * @atomicservice
91761847f8eSopenharmony_ci   * @since 12
91861847f8eSopenharmony_ci   */
91961847f8eSopenharmony_ci  export function off(type: 'navDestinationUpdate', options: { navigationId: ResourceStr }, callback?: Callback<NavDestinationInfo>): void;
92061847f8eSopenharmony_ci
92161847f8eSopenharmony_ci  /**
92261847f8eSopenharmony_ci   * Registers a callback function to be called when the navigation destination is updated.
92361847f8eSopenharmony_ci   *
92461847f8eSopenharmony_ci   * @param { 'navDestinationUpdate' } type - The type of event to listen for. Must be 'navDestinationUpdate'.
92561847f8eSopenharmony_ci   * @param { Callback<NavDestinationInfo> } callback - The callback function to be called when the navigation destination is updated.
92661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
92761847f8eSopenharmony_ci   * @crossplatform
92861847f8eSopenharmony_ci   * @since 11
92961847f8eSopenharmony_ci   */
93061847f8eSopenharmony_ci  /**
93161847f8eSopenharmony_ci   * Registers a callback function to be called when the navigation destination is updated.
93261847f8eSopenharmony_ci   *
93361847f8eSopenharmony_ci   * @param { 'navDestinationUpdate' } type - The type of event to listen for. Must be 'navDestinationUpdate'.
93461847f8eSopenharmony_ci   * @param { Callback<NavDestinationInfo> } callback - The callback function to be called when the navigation destination is updated.
93561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
93661847f8eSopenharmony_ci   * @crossplatform
93761847f8eSopenharmony_ci   * @atomicservice
93861847f8eSopenharmony_ci   * @since 12
93961847f8eSopenharmony_ci   */
94061847f8eSopenharmony_ci  export function on(type: 'navDestinationUpdate', callback: Callback<NavDestinationInfo>): void;
94161847f8eSopenharmony_ci
94261847f8eSopenharmony_ci  /**
94361847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
94461847f8eSopenharmony_ci   *
94561847f8eSopenharmony_ci   * @param { 'navDestinationUpdate'} type - The type of event to remove the listener for. Must be 'navDestinationUpdate'.
94661847f8eSopenharmony_ci   * @param { Callback<NavDestinationInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
94761847f8eSopenharmony_ci   *                                                      will be removed.
94861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
94961847f8eSopenharmony_ci   * @crossplatform
95061847f8eSopenharmony_ci   * @since 11
95161847f8eSopenharmony_ci   */
95261847f8eSopenharmony_ci  /**
95361847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
95461847f8eSopenharmony_ci   *
95561847f8eSopenharmony_ci   * @param { 'navDestinationUpdate'} type - The type of event to remove the listener for. Must be 'navDestinationUpdate'.
95661847f8eSopenharmony_ci   * @param { Callback<NavDestinationInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
95761847f8eSopenharmony_ci   *                                                      will be removed.
95861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
95961847f8eSopenharmony_ci   * @crossplatform
96061847f8eSopenharmony_ci   * @atomicservice
96161847f8eSopenharmony_ci   * @since 12
96261847f8eSopenharmony_ci   */
96361847f8eSopenharmony_ci  export function off(type: 'navDestinationUpdate', callback?: Callback<NavDestinationInfo>): void;
96461847f8eSopenharmony_ci
96561847f8eSopenharmony_ci  /**
96661847f8eSopenharmony_ci   * Registers a callback function to be called when the scroll event start or stop.
96761847f8eSopenharmony_ci   *
96861847f8eSopenharmony_ci   * @param { 'scrollEvent' } type - The type of event to listen for. Must be 'scrollEvent'.
96961847f8eSopenharmony_ci   * @param { ObserverOptions } options - The options object.
97061847f8eSopenharmony_ci   * @param { Callback<ScrollEventInfo> } callback - The callback function to be called when the scroll event start or stop.
97161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
97261847f8eSopenharmony_ci   * @crossplatform
97361847f8eSopenharmony_ci   * @atomicservice
97461847f8eSopenharmony_ci   * @since 12
97561847f8eSopenharmony_ci   */
97661847f8eSopenharmony_ci  export function on(type: 'scrollEvent', options: ObserverOptions, callback: Callback<ScrollEventInfo>): void;
97761847f8eSopenharmony_ci
97861847f8eSopenharmony_ci  /**
97961847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
98061847f8eSopenharmony_ci   *
98161847f8eSopenharmony_ci   * @param { 'scrollEvent' } type - The type of event to remove the listener for. Must be 'scrollEvent'.
98261847f8eSopenharmony_ci   * @param { ObserverOptions } options - The options object.
98361847f8eSopenharmony_ci   * @param { Callback<ScrollEventInfo> } callback - The callback function to remove. If not provided, all callbacks for the given event type and
98461847f8eSopenharmony_ci   *                                                    scroll ID will be removed.
98561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
98661847f8eSopenharmony_ci   * @crossplatform
98761847f8eSopenharmony_ci   * @atomicservice
98861847f8eSopenharmony_ci   * @since 12
98961847f8eSopenharmony_ci   */
99061847f8eSopenharmony_ci  export function off(type: 'scrollEvent', options: ObserverOptions, callback?: Callback<ScrollEventInfo>): void;
99161847f8eSopenharmony_ci
99261847f8eSopenharmony_ci  /**
99361847f8eSopenharmony_ci   * Registers a callback function to be called when the scroll event start or stop.
99461847f8eSopenharmony_ci   *
99561847f8eSopenharmony_ci   * @param { 'scrollEvent' } type - The type of event to listen for. Must be 'scrollEvent'.
99661847f8eSopenharmony_ci   * @param { Callback<ScrollEventInfo> } callback - The callback function to be called when the scroll event start or stop.
99761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
99861847f8eSopenharmony_ci   * @crossplatform
99961847f8eSopenharmony_ci   * @atomicservice
100061847f8eSopenharmony_ci   * @since 12
100161847f8eSopenharmony_ci   */
100261847f8eSopenharmony_ci  export function on(type: 'scrollEvent', callback: Callback<ScrollEventInfo>): void;
100361847f8eSopenharmony_ci
100461847f8eSopenharmony_ci  /**
100561847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
100661847f8eSopenharmony_ci   *
100761847f8eSopenharmony_ci   * @param { 'scrollEvent'} type - The type of event to remove the listener for. Must be 'scrollEvent'.
100861847f8eSopenharmony_ci   * @param { Callback<ScrollEventInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
100961847f8eSopenharmony_ci   *                                                      will be removed.
101061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
101161847f8eSopenharmony_ci   * @crossplatform
101261847f8eSopenharmony_ci   * @atomicservice
101361847f8eSopenharmony_ci   * @since 12
101461847f8eSopenharmony_ci   */
101561847f8eSopenharmony_ci  export function off(type: 'scrollEvent', callback?: Callback<ScrollEventInfo>): void;
101661847f8eSopenharmony_ci
101761847f8eSopenharmony_ci  /**
101861847f8eSopenharmony_ci   * Registers a callback function to be called when the router page is updated.
101961847f8eSopenharmony_ci   *
102061847f8eSopenharmony_ci   * @param { 'routerPageUpdate' } type - The type of event to listen for. Must be 'routerPageUpdate'.
102161847f8eSopenharmony_ci   * @param { UIAbilityContext | UIContext } context - The context scope of the observer.
102261847f8eSopenharmony_ci   * @param { Callback<RouterPageInfo> } callback - The callback function to be called when the router page is updated.
102361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
102461847f8eSopenharmony_ci   * @crossplatform
102561847f8eSopenharmony_ci   * @since 11
102661847f8eSopenharmony_ci   */
102761847f8eSopenharmony_ci  /**
102861847f8eSopenharmony_ci   * Registers a callback function to be called when the router page is updated.
102961847f8eSopenharmony_ci   *
103061847f8eSopenharmony_ci   * @param { 'routerPageUpdate' } type - The type of event to listen for. Must be 'routerPageUpdate'.
103161847f8eSopenharmony_ci   * @param { UIAbilityContext | UIContext } context - The context scope of the observer.
103261847f8eSopenharmony_ci   * @param { Callback<RouterPageInfo> } callback - The callback function to be called when the router page is updated.
103361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
103461847f8eSopenharmony_ci   * @crossplatform
103561847f8eSopenharmony_ci   * @atomicservice
103661847f8eSopenharmony_ci   * @since 12
103761847f8eSopenharmony_ci   */
103861847f8eSopenharmony_ci  export function on(type: 'routerPageUpdate', context: UIAbilityContext | UIContext, callback: Callback<RouterPageInfo>): void;
103961847f8eSopenharmony_ci
104061847f8eSopenharmony_ci  /**
104161847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
104261847f8eSopenharmony_ci   *
104361847f8eSopenharmony_ci   * @param { 'routerPageUpdate' } type - The type of event to remove the listener for. Must be 'routerPageUpdate'.
104461847f8eSopenharmony_ci   * @param { UIAbilityContext | UIContext } context - The context scope of the observer.
104561847f8eSopenharmony_ci   * @param { Callback<RouterPageInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
104661847f8eSopenharmony_ci   *                                                               will be removed.
104761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
104861847f8eSopenharmony_ci   * @crossplatform
104961847f8eSopenharmony_ci   * @since 11
105061847f8eSopenharmony_ci   */
105161847f8eSopenharmony_ci  /**
105261847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
105361847f8eSopenharmony_ci   *
105461847f8eSopenharmony_ci   * @param { 'routerPageUpdate' } type - The type of event to remove the listener for. Must be 'routerPageUpdate'.
105561847f8eSopenharmony_ci   * @param { UIAbilityContext | UIContext } context - The context scope of the observer.
105661847f8eSopenharmony_ci   * @param { Callback<RouterPageInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
105761847f8eSopenharmony_ci   *                                                               will be removed.
105861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
105961847f8eSopenharmony_ci   * @crossplatform
106061847f8eSopenharmony_ci   * @atomicservice
106161847f8eSopenharmony_ci   * @since 12
106261847f8eSopenharmony_ci   */
106361847f8eSopenharmony_ci  export function off(type: 'routerPageUpdate', context: UIAbilityContext | UIContext, callback?: Callback<RouterPageInfo>): void;
106461847f8eSopenharmony_ci
106561847f8eSopenharmony_ci  /**
106661847f8eSopenharmony_ci   * Registers a callback function to be called when the screen density is updated.
106761847f8eSopenharmony_ci   *
106861847f8eSopenharmony_ci   * @param { 'densityUpdate' } type - The type of event to listen for. Must be 'densityUpdate'.
106961847f8eSopenharmony_ci   * @param { UIContext } context - The context scope of the observer.
107061847f8eSopenharmony_ci   * @param { Callback<DensityInfo> } callback - The callback function to be called when the screen density is updated.
107161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
107261847f8eSopenharmony_ci   * @crossplatform
107361847f8eSopenharmony_ci   * @atomicservice
107461847f8eSopenharmony_ci   * @since 12
107561847f8eSopenharmony_ci   */
107661847f8eSopenharmony_ci  export function on(type: 'densityUpdate', context: UIContext, callback: Callback<DensityInfo>): void;
107761847f8eSopenharmony_ci
107861847f8eSopenharmony_ci  /**
107961847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
108061847f8eSopenharmony_ci   *
108161847f8eSopenharmony_ci   * @param { 'densityUpdate' } type - The type of event to remove the listener for. Must be 'densityUpdate'.
108261847f8eSopenharmony_ci   * @param { UIContext } context - The context scope of the observer.
108361847f8eSopenharmony_ci   * @param { Callback<DensityInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
108461847f8eSopenharmony_ci   *                                               will be removed.
108561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
108661847f8eSopenharmony_ci   * @crossplatform
108761847f8eSopenharmony_ci   * @atomicservice
108861847f8eSopenharmony_ci   * @since 12
108961847f8eSopenharmony_ci   */
109061847f8eSopenharmony_ci  export function off(type: 'densityUpdate', context: UIContext, callback?: Callback<DensityInfo>): void;
109161847f8eSopenharmony_ci
109261847f8eSopenharmony_ci  /**
109361847f8eSopenharmony_ci   * Registers a callback function to be called when the draw command will be drawn.
109461847f8eSopenharmony_ci   *
109561847f8eSopenharmony_ci   * @param { 'willDraw' } type - The type of event to listen for. Must be 'willDraw'.
109661847f8eSopenharmony_ci   * @param { UIContext } context - The context scope of the observer.
109761847f8eSopenharmony_ci   * @param { Callback<void> } callback - The callback function to be called when the draw command will be drawn.
109861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
109961847f8eSopenharmony_ci   * @crossplatform
110061847f8eSopenharmony_ci   * @atomicservice
110161847f8eSopenharmony_ci   * @since 12
110261847f8eSopenharmony_ci   */
110361847f8eSopenharmony_ci  export function on(type: 'willDraw', context: UIContext, callback: Callback<void>): void;
110461847f8eSopenharmony_ci
110561847f8eSopenharmony_ci  /**
110661847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
110761847f8eSopenharmony_ci   *
110861847f8eSopenharmony_ci   * @param { 'willDraw' } type - The type of event to remove the listener for. Must be 'willDraw'.
110961847f8eSopenharmony_ci   * @param { UIContext } context - The context scope of the observer.
111061847f8eSopenharmony_ci   * @param { Callback<void> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
111161847f8eSopenharmony_ci   *                                               will be removed.
111261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
111361847f8eSopenharmony_ci   * @crossplatform
111461847f8eSopenharmony_ci   * @atomicservice
111561847f8eSopenharmony_ci   * @since 12
111661847f8eSopenharmony_ci   */
111761847f8eSopenharmony_ci  export function off(type: 'willDraw', context: UIContext, callback?: Callback<void>): void;
111861847f8eSopenharmony_ci
111961847f8eSopenharmony_ci  /**
112061847f8eSopenharmony_ci   * Registers a callback function to be called when the layout is done.
112161847f8eSopenharmony_ci   *
112261847f8eSopenharmony_ci   * @param { 'didLayout' } type - The type of event to listen for. Must be 'didLayout'.
112361847f8eSopenharmony_ci   * @param { UIContext } context - The context scope of the observer.
112461847f8eSopenharmony_ci   * @param { Callback<void> } callback - The callback function to be called when the layout is done.
112561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
112661847f8eSopenharmony_ci   * @crossplatform
112761847f8eSopenharmony_ci   * @atomicservice
112861847f8eSopenharmony_ci   * @since 12
112961847f8eSopenharmony_ci   */
113061847f8eSopenharmony_ci  export function on(type: 'didLayout', context: UIContext, callback: Callback<void>): void;
113161847f8eSopenharmony_ci
113261847f8eSopenharmony_ci  /**
113361847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
113461847f8eSopenharmony_ci   *
113561847f8eSopenharmony_ci   * @param { 'didLayout' } type - The type of event to remove the listener for. Must be 'didLayout'.
113661847f8eSopenharmony_ci   * @param { UIContext } context - The context scope of the observer.
113761847f8eSopenharmony_ci   * @param { Callback<void> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
113861847f8eSopenharmony_ci   *                                               will be removed.
113961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
114061847f8eSopenharmony_ci   * @crossplatform
114161847f8eSopenharmony_ci   * @atomicservice
114261847f8eSopenharmony_ci   * @since 12
114361847f8eSopenharmony_ci   */
114461847f8eSopenharmony_ci  export function off(type: 'didLayout', context: UIContext, callback?: Callback<void>): void;
114561847f8eSopenharmony_ci
114661847f8eSopenharmony_ci  /**
114761847f8eSopenharmony_ci   * Registers a callback function to be called when the tabContent is showed or hidden.
114861847f8eSopenharmony_ci   *
114961847f8eSopenharmony_ci   * @param { 'tabContentUpdate' } type - The type of event to listen for. Must be 'tabContentUpdate'.
115061847f8eSopenharmony_ci   * @param { ObserverOptions } options - The options object.
115161847f8eSopenharmony_ci   * @param { Callback<TabContentInfo> } callback - The callback function to be called when when the tabContent is showed or hidden.
115261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
115361847f8eSopenharmony_ci   * @crossplatform
115461847f8eSopenharmony_ci   * @atomicservice
115561847f8eSopenharmony_ci   * @since 12
115661847f8eSopenharmony_ci   */
115761847f8eSopenharmony_ci  export function on(type: 'tabContentUpdate', options: ObserverOptions, callback: Callback<TabContentInfo>): void;
115861847f8eSopenharmony_ci
115961847f8eSopenharmony_ci  /**
116061847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
116161847f8eSopenharmony_ci   *
116261847f8eSopenharmony_ci   * @param { 'tabContentUpdate' } type - The type of event to remove the listener for. Must be 'tabContentUpdate'.
116361847f8eSopenharmony_ci   * @param { ObserverOptions } options - The options object.
116461847f8eSopenharmony_ci   * @param { Callback<TabContentInfo> } callback - The callback function to remove. If not provided, all callbacks for the given event type and
116561847f8eSopenharmony_ci   *                                                    Tabs ID will be removed.
116661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
116761847f8eSopenharmony_ci   * @crossplatform
116861847f8eSopenharmony_ci   * @atomicservice
116961847f8eSopenharmony_ci   * @since 12
117061847f8eSopenharmony_ci   */
117161847f8eSopenharmony_ci  export function off(type: 'tabContentUpdate', options: ObserverOptions, callback?: Callback<TabContentInfo>): void;
117261847f8eSopenharmony_ci
117361847f8eSopenharmony_ci  /**
117461847f8eSopenharmony_ci   * Registers a callback function to be called when the tabContent is showed or hidden.
117561847f8eSopenharmony_ci   *
117661847f8eSopenharmony_ci   * @param { 'tabContentUpdate' } type - The type of event to listen for. Must be 'tabContentUpdate'.
117761847f8eSopenharmony_ci   * @param { Callback<TabContentInfo> } callback - The callback function to be called when the tabContent is showed or hidden.
117861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
117961847f8eSopenharmony_ci   * @crossplatform
118061847f8eSopenharmony_ci   * @atomicservice
118161847f8eSopenharmony_ci   * @since 12
118261847f8eSopenharmony_ci   */
118361847f8eSopenharmony_ci  export function on(type: 'tabContentUpdate', callback: Callback<TabContentInfo>): void;
118461847f8eSopenharmony_ci
118561847f8eSopenharmony_ci  /**
118661847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
118761847f8eSopenharmony_ci   *
118861847f8eSopenharmony_ci   * @param { 'tabContentUpdate'} type - The type of event to remove the listener for. Must be 'tabContentUpdate'.
118961847f8eSopenharmony_ci   * @param { Callback<TabContentInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
119061847f8eSopenharmony_ci   *                                                      will be removed.
119161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
119261847f8eSopenharmony_ci   * @crossplatform
119361847f8eSopenharmony_ci   * @atomicservice
119461847f8eSopenharmony_ci   * @since 12
119561847f8eSopenharmony_ci   */
119661847f8eSopenharmony_ci  export function off(type: 'tabContentUpdate', callback?: Callback<TabContentInfo>): void;
119761847f8eSopenharmony_ci
119861847f8eSopenharmony_ci  /**
119961847f8eSopenharmony_ci   * Registers a callback function to be called when the navigation switched to a new navDestination.
120061847f8eSopenharmony_ci   *
120161847f8eSopenharmony_ci   * @param { 'navDestinationSwitch' } type - The type of event to listen for. Must be 'navDestinationSwitch'.
120261847f8eSopenharmony_ci   * @param { UIAbilityContext | UIContext } context - The context scope of the observer.
120361847f8eSopenharmony_ci   * @param { Callback<NavDestinationSwitchInfo> } callback - The callback function to be called when the navigation switched to a new navDestination.
120461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
120561847f8eSopenharmony_ci   * @crossplatform
120661847f8eSopenharmony_ci   * @atomicservice
120761847f8eSopenharmony_ci   * @since 12
120861847f8eSopenharmony_ci   */
120961847f8eSopenharmony_ci  export function on(
121061847f8eSopenharmony_ci    type: 'navDestinationSwitch',
121161847f8eSopenharmony_ci    context: UIAbilityContext | UIContext,
121261847f8eSopenharmony_ci    callback: Callback<NavDestinationSwitchInfo>
121361847f8eSopenharmony_ci  ): void;
121461847f8eSopenharmony_ci
121561847f8eSopenharmony_ci  /**
121661847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
121761847f8eSopenharmony_ci   *
121861847f8eSopenharmony_ci   * @param { 'navDestinationSwitch' } type - The type of event to remove the listener for. Must be 'navDestinationSwitch'.
121961847f8eSopenharmony_ci   * @param { UIAbilityContext | UIContext } context - The context scope of the observer.
122061847f8eSopenharmony_ci   * @param { Callback<NavDestinationSwitchInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
122161847f8eSopenharmony_ci   *                                                               will be removed.
122261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
122361847f8eSopenharmony_ci   * @crossplatform
122461847f8eSopenharmony_ci   * @atomicservice
122561847f8eSopenharmony_ci   * @since 12
122661847f8eSopenharmony_ci   */
122761847f8eSopenharmony_ci  export function off(
122861847f8eSopenharmony_ci    type: 'navDestinationSwitch',
122961847f8eSopenharmony_ci    context: UIAbilityContext | UIContext,
123061847f8eSopenharmony_ci    callback?: Callback<NavDestinationSwitchInfo>
123161847f8eSopenharmony_ci  ): void;
123261847f8eSopenharmony_ci
123361847f8eSopenharmony_ci  /**
123461847f8eSopenharmony_ci   * Registers a callback function to be called when the navigation switched to a new navDestination.
123561847f8eSopenharmony_ci   *
123661847f8eSopenharmony_ci   * @param { 'navDestinationSwitch' } type - The type of event to listen for. Must be 'navDestinationSwitch'.
123761847f8eSopenharmony_ci   * @param { UIAbilityContext | UIContext } context - The context scope of the observer.
123861847f8eSopenharmony_ci   * @param { NavDestinationSwitchObserverOptions } observerOptions - Options.
123961847f8eSopenharmony_ci   * @param { Callback<NavDestinationSwitchInfo> } callback - The callback function to be called when the navigation switched to a new navDestination.
124061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
124161847f8eSopenharmony_ci   * @crossplatform
124261847f8eSopenharmony_ci   * @atomicservice
124361847f8eSopenharmony_ci   * @since 12
124461847f8eSopenharmony_ci   */
124561847f8eSopenharmony_ci  export function on(
124661847f8eSopenharmony_ci    type: 'navDestinationSwitch',
124761847f8eSopenharmony_ci    context: UIAbilityContext | UIContext,
124861847f8eSopenharmony_ci    observerOptions: NavDestinationSwitchObserverOptions,
124961847f8eSopenharmony_ci    callback: Callback<NavDestinationSwitchInfo>
125061847f8eSopenharmony_ci  ): void;
125161847f8eSopenharmony_ci
125261847f8eSopenharmony_ci  /**
125361847f8eSopenharmony_ci   * Removes a callback function that was previously registered with `on()`.
125461847f8eSopenharmony_ci   *
125561847f8eSopenharmony_ci   * @param { 'navDestinationSwitch' } type - The type of event to remove the listener for. Must be 'navDestinationSwitch'.
125661847f8eSopenharmony_ci   * @param { UIAbilityContext | UIContext } context - The context scope of the observer.
125761847f8eSopenharmony_ci   * @param { NavDestinationSwitchObserverOptions } observerOptions - Options.
125861847f8eSopenharmony_ci   * @param { Callback<NavDestinationSwitchInfo> } [callback] - The callback function to remove. If not provided, all callbacks for the given event type
125961847f8eSopenharmony_ci   *                                                               will be removed.
126061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
126161847f8eSopenharmony_ci   * @crossplatform
126261847f8eSopenharmony_ci   * @atomicservice
126361847f8eSopenharmony_ci   * @since 12
126461847f8eSopenharmony_ci   */
126561847f8eSopenharmony_ci  export function off(
126661847f8eSopenharmony_ci    type: 'navDestinationSwitch',
126761847f8eSopenharmony_ci    context: UIAbilityContext | UIContext,
126861847f8eSopenharmony_ci    observerOptions: NavDestinationSwitchObserverOptions,
126961847f8eSopenharmony_ci    callback?: Callback<NavDestinationSwitchInfo>
127061847f8eSopenharmony_ci  ): void;
127161847f8eSopenharmony_ci}
127261847f8eSopenharmony_ci
127361847f8eSopenharmony_ciexport default uiObserver;
1274