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 BaseContext from './application/BaseContext';
2261847f8eSopenharmony_ciimport type { Callback } from './@ohos.base';
2361847f8eSopenharmony_ciimport { NodeController } from './arkui/NodeController';
2461847f8eSopenharmony_ciimport { typeNode } from './arkui/FrameNode';
2561847f8eSopenharmony_ci
2661847f8eSopenharmony_ci/**
2761847f8eSopenharmony_ci * Picture In Picture Window Manager
2861847f8eSopenharmony_ci *
2961847f8eSopenharmony_ci * @namespace PiPWindow
3061847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager
3161847f8eSopenharmony_ci * @since 11
3261847f8eSopenharmony_ci */
3361847f8eSopenharmony_ci/**
3461847f8eSopenharmony_ci * Picture In Picture Window Manager
3561847f8eSopenharmony_ci *
3661847f8eSopenharmony_ci * @namespace PiPWindow
3761847f8eSopenharmony_ci * @syscap SystemCapability.Window.SessionManager
3861847f8eSopenharmony_ci * @atomicservice
3961847f8eSopenharmony_ci * @since 12
4061847f8eSopenharmony_ci */
4161847f8eSopenharmony_cideclare namespace PiPWindow {
4261847f8eSopenharmony_ci  /**
4361847f8eSopenharmony_ci   * If picture-in-picture enabled in current OS.
4461847f8eSopenharmony_ci   *
4561847f8eSopenharmony_ci   * @returns { boolean } true if PictureInPicture enabled, otherwise false
4661847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
4761847f8eSopenharmony_ci   * @since 11
4861847f8eSopenharmony_ci   */
4961847f8eSopenharmony_ci  /**
5061847f8eSopenharmony_ci   * If picture-in-picture enabled in current OS.
5161847f8eSopenharmony_ci   *
5261847f8eSopenharmony_ci   * @returns { boolean } true if PictureInPicture enabled, otherwise false
5361847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
5461847f8eSopenharmony_ci   * @atomicservice
5561847f8eSopenharmony_ci   * @since 12
5661847f8eSopenharmony_ci   */
5761847f8eSopenharmony_ci  function isPiPEnabled(): boolean;
5861847f8eSopenharmony_ci
5961847f8eSopenharmony_ci  /**
6061847f8eSopenharmony_ci   * Create picture-in-picture controller
6161847f8eSopenharmony_ci   *
6261847f8eSopenharmony_ci   * @param { PiPConfiguration } config - Params for picture-in-picture controller creation. The config must be valid,
6361847f8eSopenharmony_ci   * the context and componentController in config should not be null. If templateType is specified, make sure
6461847f8eSopenharmony_ci   * it's type of PiPTemplateType. If controlGroups is specified, make sure it correspond to the templateType.
6561847f8eSopenharmony_ci   * @returns { Promise<PiPController> } - The promise returned by the function
6661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified.
6761847f8eSopenharmony_ci   *                                                                2. Incorrect parameter types.
6861847f8eSopenharmony_ci   *                                                                3. Parameter verification failed
6961847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call the API due to limited device capabilities.
7061847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
7161847f8eSopenharmony_ci   * @since 11
7261847f8eSopenharmony_ci   */
7361847f8eSopenharmony_ci  /**
7461847f8eSopenharmony_ci   * Create picture-in-picture controller
7561847f8eSopenharmony_ci   *
7661847f8eSopenharmony_ci   * @param { PiPConfiguration } config - Params for picture-in-picture controller creation. The config must be valid,
7761847f8eSopenharmony_ci   * the context and componentController in config should not be null. If templateType is specified, make sure
7861847f8eSopenharmony_ci   * it's type of PiPTemplateType. If controlGroups is specified, make sure it correspond to the templateType.
7961847f8eSopenharmony_ci   * @returns { Promise<PiPController> } - The promise returned by the function
8061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified.
8161847f8eSopenharmony_ci   *                                                                2. Incorrect parameter types.
8261847f8eSopenharmony_ci   *                                                                3. Parameter verification failed
8361847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call the API due to limited device capabilities.
8461847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
8561847f8eSopenharmony_ci   * @atomicservice
8661847f8eSopenharmony_ci   * @since 12
8761847f8eSopenharmony_ci   */
8861847f8eSopenharmony_ci  function create(config: PiPConfiguration): Promise<PiPController>;
8961847f8eSopenharmony_ci
9061847f8eSopenharmony_ci  /**
9161847f8eSopenharmony_ci   * Create picture-in-picture controller
9261847f8eSopenharmony_ci   *
9361847f8eSopenharmony_ci   * @param { PiPConfiguration } config - Params for picture-in-picture controller creation. The config must be valid,
9461847f8eSopenharmony_ci   * the context and componentController in config should not be null. If templateType is specified, make sure
9561847f8eSopenharmony_ci   * it's type of PiPTemplateType. If controlGroups is specified, make sure it correspond to the templateType.
9661847f8eSopenharmony_ci   * @param { typeNode.XComponent } contentNode - Params for picture-in-picture controller creation. 
9761847f8eSopenharmony_ci   * Indicates the node which display the content of pip window.
9861847f8eSopenharmony_ci   * @returns { Promise<PiPController> } - The promise returned by the function
9961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified.
10061847f8eSopenharmony_ci   *                                                                2. Incorrect parameter types.
10161847f8eSopenharmony_ci   *                                                                3. Parameter verification failed.
10261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported. Failed to call the API due to limited device capabilities.
10361847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
10461847f8eSopenharmony_ci   * @atomicservice
10561847f8eSopenharmony_ci   * @since 12
10661847f8eSopenharmony_ci   */
10761847f8eSopenharmony_ci  function create(config: PiPConfiguration, contentNode: typeNode.XComponent): Promise<PiPController>;
10861847f8eSopenharmony_ci
10961847f8eSopenharmony_ci  /**
11061847f8eSopenharmony_ci   * PiPConfiguration
11161847f8eSopenharmony_ci   *
11261847f8eSopenharmony_ci   * @interface PiPConfiguration
11361847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
11461847f8eSopenharmony_ci   * @since 11
11561847f8eSopenharmony_ci   */
11661847f8eSopenharmony_ci  /**
11761847f8eSopenharmony_ci   * PiPConfiguration
11861847f8eSopenharmony_ci   *
11961847f8eSopenharmony_ci   * @interface PiPConfiguration
12061847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
12161847f8eSopenharmony_ci   * @atomicservice
12261847f8eSopenharmony_ci   * @since 12
12361847f8eSopenharmony_ci   */
12461847f8eSopenharmony_ci  interface PiPConfiguration {
12561847f8eSopenharmony_ci    /**
12661847f8eSopenharmony_ci     * Indicates window context.
12761847f8eSopenharmony_ci     *
12861847f8eSopenharmony_ci     * @type { BaseContext }
12961847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
13061847f8eSopenharmony_ci     * @since 11
13161847f8eSopenharmony_ci     */
13261847f8eSopenharmony_ci    /**
13361847f8eSopenharmony_ci     * Indicates window context.
13461847f8eSopenharmony_ci     *
13561847f8eSopenharmony_ci     * @type { BaseContext }
13661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
13761847f8eSopenharmony_ci     * @atomicservice
13861847f8eSopenharmony_ci     * @since 12
13961847f8eSopenharmony_ci     */
14061847f8eSopenharmony_ci    context: BaseContext;
14161847f8eSopenharmony_ci
14261847f8eSopenharmony_ci    /**
14361847f8eSopenharmony_ci     * Indicates the origin XComponentController.
14461847f8eSopenharmony_ci     *
14561847f8eSopenharmony_ci     * @type { XComponentController }
14661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
14761847f8eSopenharmony_ci     * @since 11
14861847f8eSopenharmony_ci     */
14961847f8eSopenharmony_ci    /**
15061847f8eSopenharmony_ci     * Indicates the origin XComponentController.
15161847f8eSopenharmony_ci     *
15261847f8eSopenharmony_ci     * @type { XComponentController }
15361847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
15461847f8eSopenharmony_ci     * @atomicservice
15561847f8eSopenharmony_ci     * @since 12
15661847f8eSopenharmony_ci     */
15761847f8eSopenharmony_ci    componentController: XComponentController;
15861847f8eSopenharmony_ci
15961847f8eSopenharmony_ci    /**
16061847f8eSopenharmony_ci     * Indicates navigation ID.
16161847f8eSopenharmony_ci     *
16261847f8eSopenharmony_ci     * @type { ?string }
16361847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
16461847f8eSopenharmony_ci     * @since 11
16561847f8eSopenharmony_ci     */
16661847f8eSopenharmony_ci    /**
16761847f8eSopenharmony_ci     * Indicates navigation ID.
16861847f8eSopenharmony_ci     *
16961847f8eSopenharmony_ci     * @type { ?string }
17061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
17161847f8eSopenharmony_ci     * @atomicservice
17261847f8eSopenharmony_ci     * @since 12
17361847f8eSopenharmony_ci     */
17461847f8eSopenharmony_ci    navigationId?: string;
17561847f8eSopenharmony_ci
17661847f8eSopenharmony_ci    /**
17761847f8eSopenharmony_ci     * Picture-in-picture template type.
17861847f8eSopenharmony_ci     *
17961847f8eSopenharmony_ci     * @type { ?PiPTemplateType }
18061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
18161847f8eSopenharmony_ci     * @since 11
18261847f8eSopenharmony_ci     */
18361847f8eSopenharmony_ci    /**
18461847f8eSopenharmony_ci     * Picture-in-picture template type.
18561847f8eSopenharmony_ci     *
18661847f8eSopenharmony_ci     * @type { ?PiPTemplateType }
18761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
18861847f8eSopenharmony_ci     * @atomicservice
18961847f8eSopenharmony_ci     * @since 12
19061847f8eSopenharmony_ci     */
19161847f8eSopenharmony_ci    templateType?: PiPTemplateType;
19261847f8eSopenharmony_ci
19361847f8eSopenharmony_ci    /**
19461847f8eSopenharmony_ci     * Describes the width of content to be displayed in PiP window. For adjusting PiP window aspect ratio.
19561847f8eSopenharmony_ci     *
19661847f8eSopenharmony_ci     * @type { ?number }
19761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
19861847f8eSopenharmony_ci     * @since 11
19961847f8eSopenharmony_ci     */
20061847f8eSopenharmony_ci    /**
20161847f8eSopenharmony_ci     * Describes the width of content to be displayed in PiP window. For adjusting PiP window aspect ratio.
20261847f8eSopenharmony_ci     *
20361847f8eSopenharmony_ci     * @type { ?number }
20461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
20561847f8eSopenharmony_ci     * @atomicservice
20661847f8eSopenharmony_ci     * @since 12
20761847f8eSopenharmony_ci     */
20861847f8eSopenharmony_ci    contentWidth?: number;
20961847f8eSopenharmony_ci
21061847f8eSopenharmony_ci    /**
21161847f8eSopenharmony_ci     * Describes the height of content to be displayed in PiP window. For adjusting PiP window aspect ratio.
21261847f8eSopenharmony_ci     *
21361847f8eSopenharmony_ci     * @type { ?number }
21461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
21561847f8eSopenharmony_ci     * @since 11
21661847f8eSopenharmony_ci     */
21761847f8eSopenharmony_ci    /**
21861847f8eSopenharmony_ci     * Describes the height of content to be displayed in PiP window. For adjusting PiP window aspect ratio.
21961847f8eSopenharmony_ci     *
22061847f8eSopenharmony_ci     * @type { ?number }
22161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
22261847f8eSopenharmony_ci     * @atomicservice
22361847f8eSopenharmony_ci     * @since 12
22461847f8eSopenharmony_ci     */
22561847f8eSopenharmony_ci    contentHeight?: number;
22661847f8eSopenharmony_ci
22761847f8eSopenharmony_ci    /**
22861847f8eSopenharmony_ci     * Describes the custom controls to be displayed in PiP window control panel. If the parameter is empty, only mandatory controls are displayed.
22961847f8eSopenharmony_ci     *
23061847f8eSopenharmony_ci     * @type { ?Array<PiPControlGroup> }
23161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
23261847f8eSopenharmony_ci     * @atomicservice
23361847f8eSopenharmony_ci     * @since 12
23461847f8eSopenharmony_ci     */
23561847f8eSopenharmony_ci    controlGroups?: Array<PiPControlGroup>;
23661847f8eSopenharmony_ci
23761847f8eSopenharmony_ci    /**
23861847f8eSopenharmony_ci     * Describes the customUIController by which we can display a custom layout above pip content.
23961847f8eSopenharmony_ci     *
24061847f8eSopenharmony_ci     * @type { ?NodeController }
24161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
24261847f8eSopenharmony_ci     * @atomicservice
24361847f8eSopenharmony_ci     * @since 12
24461847f8eSopenharmony_ci     */
24561847f8eSopenharmony_ci    customUIController?: NodeController;
24661847f8eSopenharmony_ci  }
24761847f8eSopenharmony_ci
24861847f8eSopenharmony_ci  /**
24961847f8eSopenharmony_ci   * Describe the type of picture-in-picture.
25061847f8eSopenharmony_ci   *
25161847f8eSopenharmony_ci   * @enum { number }.
25261847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
25361847f8eSopenharmony_ci   * @since 11
25461847f8eSopenharmony_ci   */
25561847f8eSopenharmony_ci  /**
25661847f8eSopenharmony_ci   * Describe the type of picture-in-picture.
25761847f8eSopenharmony_ci   *
25861847f8eSopenharmony_ci   * @enum { number }.
25961847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
26061847f8eSopenharmony_ci   * @atomicservice
26161847f8eSopenharmony_ci   * @since 12
26261847f8eSopenharmony_ci   */
26361847f8eSopenharmony_ci  enum PiPTemplateType {
26461847f8eSopenharmony_ci    /**
26561847f8eSopenharmony_ci     * Indicates the content to show in picture-in-picture window is video play
26661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
26761847f8eSopenharmony_ci     * @since 11
26861847f8eSopenharmony_ci     */
26961847f8eSopenharmony_ci    /**
27061847f8eSopenharmony_ci     * Indicates the content to show in picture-in-picture window is video play
27161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
27261847f8eSopenharmony_ci     * @atomicservice
27361847f8eSopenharmony_ci     * @since 12
27461847f8eSopenharmony_ci     */
27561847f8eSopenharmony_ci    VIDEO_PLAY,
27661847f8eSopenharmony_ci
27761847f8eSopenharmony_ci    /**
27861847f8eSopenharmony_ci     * Indicates the content to show in picture-in-picture window is video call
27961847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
28061847f8eSopenharmony_ci     * @since 11
28161847f8eSopenharmony_ci     */
28261847f8eSopenharmony_ci    /**
28361847f8eSopenharmony_ci     * Indicates the content to show in picture-in-picture window is video call
28461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
28561847f8eSopenharmony_ci     * @atomicservice
28661847f8eSopenharmony_ci     * @since 12
28761847f8eSopenharmony_ci     */
28861847f8eSopenharmony_ci    VIDEO_CALL,
28961847f8eSopenharmony_ci
29061847f8eSopenharmony_ci    /**
29161847f8eSopenharmony_ci     * Indicates the content to show in picture-in-picture window is video meeting
29261847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
29361847f8eSopenharmony_ci     * @since 11
29461847f8eSopenharmony_ci     */
29561847f8eSopenharmony_ci    /**
29661847f8eSopenharmony_ci     * Indicates the content to show in picture-in-picture window is video meeting
29761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
29861847f8eSopenharmony_ci     * @atomicservice
29961847f8eSopenharmony_ci     * @since 12
30061847f8eSopenharmony_ci     */
30161847f8eSopenharmony_ci    VIDEO_MEETING,
30261847f8eSopenharmony_ci
30361847f8eSopenharmony_ci    /**
30461847f8eSopenharmony_ci     * Indicates the content to show in picture-in-picture window is video live
30561847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
30661847f8eSopenharmony_ci     * @since 11
30761847f8eSopenharmony_ci     */
30861847f8eSopenharmony_ci    /**
30961847f8eSopenharmony_ci     * Indicates the content to show in picture-in-picture window is video live
31061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
31161847f8eSopenharmony_ci     * @atomicservice
31261847f8eSopenharmony_ci     * @since 12
31361847f8eSopenharmony_ci     */
31461847f8eSopenharmony_ci    VIDEO_LIVE,
31561847f8eSopenharmony_ci  }
31661847f8eSopenharmony_ci
31761847f8eSopenharmony_ci  /**
31861847f8eSopenharmony_ci   * Enum for PiP window callback event type.
31961847f8eSopenharmony_ci   *
32061847f8eSopenharmony_ci   * @enum { number }.
32161847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
32261847f8eSopenharmony_ci   * @since 11
32361847f8eSopenharmony_ci   */
32461847f8eSopenharmony_ci  /**
32561847f8eSopenharmony_ci   * Enum for PiP window callback event type.
32661847f8eSopenharmony_ci   *
32761847f8eSopenharmony_ci   * @enum { number }.
32861847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
32961847f8eSopenharmony_ci   * @atomicservice
33061847f8eSopenharmony_ci   * @since 12
33161847f8eSopenharmony_ci   */
33261847f8eSopenharmony_ci  enum PiPState {
33361847f8eSopenharmony_ci    /**
33461847f8eSopenharmony_ci     * PiP window is about to start.
33561847f8eSopenharmony_ci     *
33661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
33761847f8eSopenharmony_ci     * @since 11
33861847f8eSopenharmony_ci     */
33961847f8eSopenharmony_ci    /**
34061847f8eSopenharmony_ci     * PiP window is about to start.
34161847f8eSopenharmony_ci     *
34261847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
34361847f8eSopenharmony_ci     * @atomicservice
34461847f8eSopenharmony_ci     * @since 12
34561847f8eSopenharmony_ci     */
34661847f8eSopenharmony_ci    ABOUT_TO_START = 1,
34761847f8eSopenharmony_ci
34861847f8eSopenharmony_ci    /**
34961847f8eSopenharmony_ci     * PiP window started.
35061847f8eSopenharmony_ci     *
35161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
35261847f8eSopenharmony_ci     * @since 11
35361847f8eSopenharmony_ci     */
35461847f8eSopenharmony_ci    /**
35561847f8eSopenharmony_ci     * PiP window started.
35661847f8eSopenharmony_ci     *
35761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
35861847f8eSopenharmony_ci     * @atomicservice
35961847f8eSopenharmony_ci     * @since 12
36061847f8eSopenharmony_ci     */
36161847f8eSopenharmony_ci    STARTED = 2,
36261847f8eSopenharmony_ci
36361847f8eSopenharmony_ci    /**
36461847f8eSopenharmony_ci     * PiP window is about to stop.
36561847f8eSopenharmony_ci     *
36661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
36761847f8eSopenharmony_ci     * @since 11
36861847f8eSopenharmony_ci     */
36961847f8eSopenharmony_ci    /**
37061847f8eSopenharmony_ci     * PiP window is about to stop.
37161847f8eSopenharmony_ci     *
37261847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
37361847f8eSopenharmony_ci     * @atomicservice
37461847f8eSopenharmony_ci     * @since 12
37561847f8eSopenharmony_ci     */
37661847f8eSopenharmony_ci    ABOUT_TO_STOP = 3,
37761847f8eSopenharmony_ci
37861847f8eSopenharmony_ci    /**
37961847f8eSopenharmony_ci     * PiP window stopped.
38061847f8eSopenharmony_ci     *
38161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
38261847f8eSopenharmony_ci     * @since 11
38361847f8eSopenharmony_ci     */
38461847f8eSopenharmony_ci    /**
38561847f8eSopenharmony_ci     * PiP window stopped.
38661847f8eSopenharmony_ci     *
38761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
38861847f8eSopenharmony_ci     * @atomicservice
38961847f8eSopenharmony_ci     * @since 12
39061847f8eSopenharmony_ci     */
39161847f8eSopenharmony_ci    STOPPED = 4,
39261847f8eSopenharmony_ci
39361847f8eSopenharmony_ci    /**
39461847f8eSopenharmony_ci     * Restore the original page from PiP window
39561847f8eSopenharmony_ci     *
39661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
39761847f8eSopenharmony_ci     * @since 11
39861847f8eSopenharmony_ci     */
39961847f8eSopenharmony_ci    /**
40061847f8eSopenharmony_ci     * Restore the original page from PiP window
40161847f8eSopenharmony_ci     *
40261847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
40361847f8eSopenharmony_ci     * @atomicservice
40461847f8eSopenharmony_ci     * @since 12
40561847f8eSopenharmony_ci     */
40661847f8eSopenharmony_ci    ABOUT_TO_RESTORE = 5,
40761847f8eSopenharmony_ci
40861847f8eSopenharmony_ci    /**
40961847f8eSopenharmony_ci     * Error message during start/stop.
41061847f8eSopenharmony_ci     *
41161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
41261847f8eSopenharmony_ci     * @since 11
41361847f8eSopenharmony_ci     */
41461847f8eSopenharmony_ci    /**
41561847f8eSopenharmony_ci     * Error message during start/stop.
41661847f8eSopenharmony_ci     *
41761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
41861847f8eSopenharmony_ci     * @atomicservice
41961847f8eSopenharmony_ci     * @since 12
42061847f8eSopenharmony_ci     */
42161847f8eSopenharmony_ci    ERROR = 6,
42261847f8eSopenharmony_ci  }
42361847f8eSopenharmony_ci
42461847f8eSopenharmony_ci  /**
42561847f8eSopenharmony_ci   * Describe PiP window custom controls.
42661847f8eSopenharmony_ci   *
42761847f8eSopenharmony_ci   * @typedef { VideoPlayControlGroup | VideoCallControlGroup | VideoMeetingControlGroup | VideoLiveControlGroup }
42861847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
42961847f8eSopenharmony_ci   * @atomicservice
43061847f8eSopenharmony_ci   * @since 12
43161847f8eSopenharmony_ci   */
43261847f8eSopenharmony_ci  type PiPControlGroup = VideoPlayControlGroup | VideoCallControlGroup | VideoMeetingControlGroup | VideoLiveControlGroup;
43361847f8eSopenharmony_ci
43461847f8eSopenharmony_ci  /**
43561847f8eSopenharmony_ci   * Enum for video play PiP window custom controls.
43661847f8eSopenharmony_ci   *
43761847f8eSopenharmony_ci   * @enum { number }.
43861847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
43961847f8eSopenharmony_ci   * @atomicservice
44061847f8eSopenharmony_ci   * @since 12
44161847f8eSopenharmony_ci   */
44261847f8eSopenharmony_ci  enum VideoPlayControlGroup {
44361847f8eSopenharmony_ci    /**
44461847f8eSopenharmony_ci     * Previous/Next for video.
44561847f8eSopenharmony_ci     *
44661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
44761847f8eSopenharmony_ci     * @atomicservice
44861847f8eSopenharmony_ci     * @since 12
44961847f8eSopenharmony_ci     */
45061847f8eSopenharmony_ci    VIDEO_PREVIOUS_NEXT = 101,
45161847f8eSopenharmony_ci
45261847f8eSopenharmony_ci    /**
45361847f8eSopenharmony_ci     * Forward/Backward for video.
45461847f8eSopenharmony_ci     *
45561847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
45661847f8eSopenharmony_ci     * @atomicservice
45761847f8eSopenharmony_ci     * @since 12
45861847f8eSopenharmony_ci     */
45961847f8eSopenharmony_ci    FAST_FORWARD_BACKWARD = 102,
46061847f8eSopenharmony_ci  }
46161847f8eSopenharmony_ci
46261847f8eSopenharmony_ci  /**
46361847f8eSopenharmony_ci   * Enum for video call PiP window custom controls.
46461847f8eSopenharmony_ci   *
46561847f8eSopenharmony_ci   * @enum { number }.
46661847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
46761847f8eSopenharmony_ci   * @atomicservice
46861847f8eSopenharmony_ci   * @since 12
46961847f8eSopenharmony_ci   */
47061847f8eSopenharmony_ci  enum VideoCallControlGroup {
47161847f8eSopenharmony_ci    /**
47261847f8eSopenharmony_ci     * Turn on/off the microphone.
47361847f8eSopenharmony_ci     *
47461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
47561847f8eSopenharmony_ci     * @atomicservice
47661847f8eSopenharmony_ci     * @since 12
47761847f8eSopenharmony_ci     */
47861847f8eSopenharmony_ci    MICROPHONE_SWITCH = 201,
47961847f8eSopenharmony_ci
48061847f8eSopenharmony_ci    /**
48161847f8eSopenharmony_ci     * Hang up.
48261847f8eSopenharmony_ci     *
48361847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
48461847f8eSopenharmony_ci     * @atomicservice
48561847f8eSopenharmony_ci     * @since 12
48661847f8eSopenharmony_ci     */
48761847f8eSopenharmony_ci    HANG_UP_BUTTON = 202,
48861847f8eSopenharmony_ci
48961847f8eSopenharmony_ci    /**
49061847f8eSopenharmony_ci     * Turn on/off the camera
49161847f8eSopenharmony_ci     *
49261847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
49361847f8eSopenharmony_ci     * @atomicservice
49461847f8eSopenharmony_ci     * @since 12
49561847f8eSopenharmony_ci     */
49661847f8eSopenharmony_ci    CAMERA_SWITCH = 203,
49761847f8eSopenharmony_ci
49861847f8eSopenharmony_ci    /**
49961847f8eSopenharmony_ci     * Mute switch.
50061847f8eSopenharmony_ci     *
50161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
50261847f8eSopenharmony_ci     * @atomicservice
50361847f8eSopenharmony_ci     * @since 12
50461847f8eSopenharmony_ci     */
50561847f8eSopenharmony_ci    MUTE_SWITCH = 204,
50661847f8eSopenharmony_ci  }
50761847f8eSopenharmony_ci
50861847f8eSopenharmony_ci  /**
50961847f8eSopenharmony_ci   * Enum for video meeting PiP window custom controls.
51061847f8eSopenharmony_ci   *
51161847f8eSopenharmony_ci   * @enum { number }.
51261847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
51361847f8eSopenharmony_ci   * @atomicservice
51461847f8eSopenharmony_ci   * @since 12
51561847f8eSopenharmony_ci   */
51661847f8eSopenharmony_ci  enum VideoMeetingControlGroup {
51761847f8eSopenharmony_ci    /**
51861847f8eSopenharmony_ci     * Hang up.
51961847f8eSopenharmony_ci     *
52061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
52161847f8eSopenharmony_ci     * @atomicservice
52261847f8eSopenharmony_ci     * @since 12
52361847f8eSopenharmony_ci     */
52461847f8eSopenharmony_ci    HANG_UP_BUTTON = 301,
52561847f8eSopenharmony_ci
52661847f8eSopenharmony_ci    /**
52761847f8eSopenharmony_ci     * Turn on/off the camera
52861847f8eSopenharmony_ci     *
52961847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
53061847f8eSopenharmony_ci     * @atomicservice
53161847f8eSopenharmony_ci     * @since 12
53261847f8eSopenharmony_ci     */
53361847f8eSopenharmony_ci    CAMERA_SWITCH = 302,
53461847f8eSopenharmony_ci
53561847f8eSopenharmony_ci    /**
53661847f8eSopenharmony_ci     * Mute switch.
53761847f8eSopenharmony_ci     *
53861847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
53961847f8eSopenharmony_ci     * @atomicservice
54061847f8eSopenharmony_ci     * @since 12
54161847f8eSopenharmony_ci     */
54261847f8eSopenharmony_ci    MUTE_SWITCH = 303,
54361847f8eSopenharmony_ci
54461847f8eSopenharmony_ci    /**
54561847f8eSopenharmony_ci     * Turn on/off the microphone.
54661847f8eSopenharmony_ci     *
54761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
54861847f8eSopenharmony_ci     * @atomicservice
54961847f8eSopenharmony_ci     * @since 12
55061847f8eSopenharmony_ci     */
55161847f8eSopenharmony_ci    MICROPHONE_SWITCH = 304,
55261847f8eSopenharmony_ci  }
55361847f8eSopenharmony_ci
55461847f8eSopenharmony_ci  /**
55561847f8eSopenharmony_ci   * Enum for video Live PiP window custom controls.
55661847f8eSopenharmony_ci   *
55761847f8eSopenharmony_ci   * @enum { number }.
55861847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
55961847f8eSopenharmony_ci   * @atomicservice
56061847f8eSopenharmony_ci   * @since 12
56161847f8eSopenharmony_ci   */
56261847f8eSopenharmony_ci  enum VideoLiveControlGroup {
56361847f8eSopenharmony_ci    /**
56461847f8eSopenharmony_ci     * Video play/pause control.
56561847f8eSopenharmony_ci     *
56661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
56761847f8eSopenharmony_ci     * @atomicservice
56861847f8eSopenharmony_ci     * @since 12
56961847f8eSopenharmony_ci     */
57061847f8eSopenharmony_ci    VIDEO_PLAY_PAUSE = 401,
57161847f8eSopenharmony_ci
57261847f8eSopenharmony_ci    /**
57361847f8eSopenharmony_ci     * Mute switch.
57461847f8eSopenharmony_ci     *
57561847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
57661847f8eSopenharmony_ci     * @atomicservice
57761847f8eSopenharmony_ci     * @since 12
57861847f8eSopenharmony_ci     */
57961847f8eSopenharmony_ci    MUTE_SWITCH = 402,
58061847f8eSopenharmony_ci  }
58161847f8eSopenharmony_ci
58261847f8eSopenharmony_ci  /**
58361847f8eSopenharmony_ci   * Enum for control status.
58461847f8eSopenharmony_ci   *
58561847f8eSopenharmony_ci   * @enum { number }.
58661847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
58761847f8eSopenharmony_ci   * @atomicservice
58861847f8eSopenharmony_ci   * @since 12
58961847f8eSopenharmony_ci   */
59061847f8eSopenharmony_ci  enum PiPControlStatus {
59161847f8eSopenharmony_ci    /**
59261847f8eSopenharmony_ci     * The video is in play mode.
59361847f8eSopenharmony_ci     *
59461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
59561847f8eSopenharmony_ci     * @atomicservice
59661847f8eSopenharmony_ci     * @since 12
59761847f8eSopenharmony_ci     */
59861847f8eSopenharmony_ci    PLAY = 1,
59961847f8eSopenharmony_ci
60061847f8eSopenharmony_ci    /**
60161847f8eSopenharmony_ci     * The video is in pause mode.
60261847f8eSopenharmony_ci     *
60361847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
60461847f8eSopenharmony_ci     * @atomicservice
60561847f8eSopenharmony_ci     * @since 12
60661847f8eSopenharmony_ci     */
60761847f8eSopenharmony_ci    PAUSE = 0,
60861847f8eSopenharmony_ci
60961847f8eSopenharmony_ci    /**
61061847f8eSopenharmony_ci     * A control with both open and closed states is in an open state.
61161847f8eSopenharmony_ci     *
61261847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
61361847f8eSopenharmony_ci     * @atomicservice
61461847f8eSopenharmony_ci     * @since 12
61561847f8eSopenharmony_ci     */
61661847f8eSopenharmony_ci    OPEN = 1,
61761847f8eSopenharmony_ci
61861847f8eSopenharmony_ci    /**
61961847f8eSopenharmony_ci     * A control with both open and closed states is in a close state.
62061847f8eSopenharmony_ci     *
62161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
62261847f8eSopenharmony_ci     * @atomicservice
62361847f8eSopenharmony_ci     * @since 12
62461847f8eSopenharmony_ci     */
62561847f8eSopenharmony_ci    CLOSE = 0,
62661847f8eSopenharmony_ci  }
62761847f8eSopenharmony_ci
62861847f8eSopenharmony_ci  /**
62961847f8eSopenharmony_ci   * Enum for control type.
63061847f8eSopenharmony_ci   *
63161847f8eSopenharmony_ci   * @enum { number }.
63261847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
63361847f8eSopenharmony_ci   * @atomicservice
63461847f8eSopenharmony_ci   * @since 12
63561847f8eSopenharmony_ci   */
63661847f8eSopenharmony_ci  enum PiPControlType {
63761847f8eSopenharmony_ci    /**
63861847f8eSopenharmony_ci     * Video play/pause control.
63961847f8eSopenharmony_ci     *
64061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
64161847f8eSopenharmony_ci     * @atomicservice
64261847f8eSopenharmony_ci     * @since 12
64361847f8eSopenharmony_ci     */
64461847f8eSopenharmony_ci    VIDEO_PLAY_PAUSE = 0,
64561847f8eSopenharmony_ci
64661847f8eSopenharmony_ci    /**
64761847f8eSopenharmony_ci     * Previous video control.
64861847f8eSopenharmony_ci     *
64961847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
65061847f8eSopenharmony_ci     * @atomicservice
65161847f8eSopenharmony_ci     * @since 12
65261847f8eSopenharmony_ci     */
65361847f8eSopenharmony_ci    VIDEO_PREVIOUS = 1,
65461847f8eSopenharmony_ci
65561847f8eSopenharmony_ci    /**
65661847f8eSopenharmony_ci     * Next video control.
65761847f8eSopenharmony_ci     *
65861847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
65961847f8eSopenharmony_ci     * @atomicservice
66061847f8eSopenharmony_ci     * @since 12
66161847f8eSopenharmony_ci     */
66261847f8eSopenharmony_ci    VIDEO_NEXT = 2,
66361847f8eSopenharmony_ci
66461847f8eSopenharmony_ci    /**
66561847f8eSopenharmony_ci     * Fast-forward control.
66661847f8eSopenharmony_ci     *
66761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
66861847f8eSopenharmony_ci     * @atomicservice
66961847f8eSopenharmony_ci     * @since 12
67061847f8eSopenharmony_ci     */
67161847f8eSopenharmony_ci    FAST_FORWARD = 3,
67261847f8eSopenharmony_ci
67361847f8eSopenharmony_ci    /**
67461847f8eSopenharmony_ci     * Fast-backward control.
67561847f8eSopenharmony_ci     *
67661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
67761847f8eSopenharmony_ci     * @atomicservice
67861847f8eSopenharmony_ci     * @since 12
67961847f8eSopenharmony_ci     */
68061847f8eSopenharmony_ci    FAST_BACKWARD = 4,
68161847f8eSopenharmony_ci
68261847f8eSopenharmony_ci    /**
68361847f8eSopenharmony_ci     * Hang-up control.
68461847f8eSopenharmony_ci     *
68561847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
68661847f8eSopenharmony_ci     * @atomicservice
68761847f8eSopenharmony_ci     * @since 12
68861847f8eSopenharmony_ci     */
68961847f8eSopenharmony_ci    HANG_UP_BUTTON = 5,
69061847f8eSopenharmony_ci
69161847f8eSopenharmony_ci    /**
69261847f8eSopenharmony_ci     * Microphone state switching control.
69361847f8eSopenharmony_ci     *
69461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
69561847f8eSopenharmony_ci     * @atomicservice
69661847f8eSopenharmony_ci     * @since 12
69761847f8eSopenharmony_ci     */
69861847f8eSopenharmony_ci    MICROPHONE_SWITCH = 6,
69961847f8eSopenharmony_ci
70061847f8eSopenharmony_ci    /**
70161847f8eSopenharmony_ci     * Camera state switching control.
70261847f8eSopenharmony_ci     *
70361847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
70461847f8eSopenharmony_ci     * @atomicservice
70561847f8eSopenharmony_ci     * @since 12
70661847f8eSopenharmony_ci     */
70761847f8eSopenharmony_ci    CAMERA_SWITCH = 7,
70861847f8eSopenharmony_ci
70961847f8eSopenharmony_ci    /**
71061847f8eSopenharmony_ci     * Mute state switching control.
71161847f8eSopenharmony_ci     *
71261847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
71361847f8eSopenharmony_ci     * @atomicservice
71461847f8eSopenharmony_ci     * @since 12
71561847f8eSopenharmony_ci     */
71661847f8eSopenharmony_ci    MUTE_SWITCH = 8,
71761847f8eSopenharmony_ci  }
71861847f8eSopenharmony_ci
71961847f8eSopenharmony_ci
72061847f8eSopenharmony_ci  /**
72161847f8eSopenharmony_ci   * Describe picture-in-picture action event type.
72261847f8eSopenharmony_ci   *
72361847f8eSopenharmony_ci   * @typedef { PiPVideoActionEvent | PiPCallActionEvent | PiPMeetingActionEvent | PiPLiveActionEvent }
72461847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
72561847f8eSopenharmony_ci   * @since 11
72661847f8eSopenharmony_ci   */
72761847f8eSopenharmony_ci  /**
72861847f8eSopenharmony_ci   * Describe picture-in-picture action event type.
72961847f8eSopenharmony_ci   *
73061847f8eSopenharmony_ci   * @typedef { PiPVideoActionEvent | PiPCallActionEvent | PiPMeetingActionEvent | PiPLiveActionEvent }
73161847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
73261847f8eSopenharmony_ci   * @atomicservice
73361847f8eSopenharmony_ci   * @since 12
73461847f8eSopenharmony_ci   */
73561847f8eSopenharmony_ci  type PiPActionEventType = PiPVideoActionEvent | PiPCallActionEvent | PiPMeetingActionEvent | PiPLiveActionEvent;
73661847f8eSopenharmony_ci
73761847f8eSopenharmony_ci  /**
73861847f8eSopenharmony_ci   * Describe picture-in-picture video template action event type.
73961847f8eSopenharmony_ci   *
74061847f8eSopenharmony_ci   * @typedef { 'playbackStateChanged' | 'nextVideo' | 'previousVideo' }
74161847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
74261847f8eSopenharmony_ci   * @since 11
74361847f8eSopenharmony_ci   */
74461847f8eSopenharmony_ci  /**
74561847f8eSopenharmony_ci   * Describe picture-in-picture video template action event type.
74661847f8eSopenharmony_ci   *
74761847f8eSopenharmony_ci   * @typedef { 'playbackStateChanged' | 'nextVideo' | 'previousVideo' | 'fastForward' | 'fastBackward' }
74861847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
74961847f8eSopenharmony_ci   * @atomicservice
75061847f8eSopenharmony_ci   * @since 12
75161847f8eSopenharmony_ci   */
75261847f8eSopenharmony_ci  type PiPVideoActionEvent = 'playbackStateChanged' | 'nextVideo' | 'previousVideo' | 'fastForward' | 'fastBackward';
75361847f8eSopenharmony_ci
75461847f8eSopenharmony_ci  /**
75561847f8eSopenharmony_ci   * Describe picture-in-picture call template action event type.
75661847f8eSopenharmony_ci   *
75761847f8eSopenharmony_ci   * @typedef { 'hangUp' | 'micStateChanged' | 'videoStateChanged' }
75861847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
75961847f8eSopenharmony_ci   * @since 11
76061847f8eSopenharmony_ci   */
76161847f8eSopenharmony_ci  /**
76261847f8eSopenharmony_ci   * Describe picture-in-picture call template action event type.
76361847f8eSopenharmony_ci   *
76461847f8eSopenharmony_ci   * @typedef { 'hangUp' | 'micStateChanged' | 'videoStateChanged' | 'voiceStateChanged' }
76561847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
76661847f8eSopenharmony_ci   * @atomicservice
76761847f8eSopenharmony_ci   * @since 12
76861847f8eSopenharmony_ci   */
76961847f8eSopenharmony_ci  type PiPCallActionEvent = 'hangUp' | 'micStateChanged' | 'videoStateChanged' | 'voiceStateChanged';
77061847f8eSopenharmony_ci
77161847f8eSopenharmony_ci  /**
77261847f8eSopenharmony_ci   * Describe picture-in-picture meeting template action event type.
77361847f8eSopenharmony_ci   *
77461847f8eSopenharmony_ci   * @typedef { 'hangUp' | 'voiceStateChanged' | 'videoStateChanged' }
77561847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
77661847f8eSopenharmony_ci   * @since 11
77761847f8eSopenharmony_ci   */
77861847f8eSopenharmony_ci  /**
77961847f8eSopenharmony_ci   * Describe picture-in-picture meeting template action event type.
78061847f8eSopenharmony_ci   *
78161847f8eSopenharmony_ci   * @typedef { 'hangUp' | 'voiceStateChanged' | 'videoStateChanged' | 'micStateChanged' }
78261847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
78361847f8eSopenharmony_ci   * @atomicservice
78461847f8eSopenharmony_ci   * @since 12
78561847f8eSopenharmony_ci   */
78661847f8eSopenharmony_ci  type PiPMeetingActionEvent = 'hangUp' | 'voiceStateChanged' | 'videoStateChanged' | 'micStateChanged';
78761847f8eSopenharmony_ci
78861847f8eSopenharmony_ci  /**
78961847f8eSopenharmony_ci   * Describe picture-in-picture live template action event type.
79061847f8eSopenharmony_ci   *
79161847f8eSopenharmony_ci   * @typedef { 'playbackStateChanged' }
79261847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
79361847f8eSopenharmony_ci   * @since 11
79461847f8eSopenharmony_ci   */
79561847f8eSopenharmony_ci  /**
79661847f8eSopenharmony_ci   * Describe picture-in-picture live template action event type.
79761847f8eSopenharmony_ci   *
79861847f8eSopenharmony_ci   * @typedef { 'playbackStateChanged' | 'voiceStateChanged' }
79961847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
80061847f8eSopenharmony_ci   * @atomicservice
80161847f8eSopenharmony_ci   * @since 12
80261847f8eSopenharmony_ci   */
80361847f8eSopenharmony_ci  type PiPLiveActionEvent = 'playbackStateChanged' | 'voiceStateChanged';
80461847f8eSopenharmony_ci
80561847f8eSopenharmony_ci  /**
80661847f8eSopenharmony_ci   * Describe picture-in-picture control panel action event callback.
80761847f8eSopenharmony_ci   *
80861847f8eSopenharmony_ci   * @typedef { function } ControlPanelActionEventCallback
80961847f8eSopenharmony_ci   * @param { PiPActionEventType } event - the event from controlPanel
81061847f8eSopenharmony_ci   * @param { number } [status] - the status of control button
81161847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
81261847f8eSopenharmony_ci   * @atomicservice
81361847f8eSopenharmony_ci   * @since 12
81461847f8eSopenharmony_ci   */
81561847f8eSopenharmony_ci  type ControlPanelActionEventCallback = (event: PiPActionEventType, status?: number) => void;
81661847f8eSopenharmony_ci
81761847f8eSopenharmony_ci  /**
81861847f8eSopenharmony_ci   * Describe picture-in-picture control event callback.
81961847f8eSopenharmony_ci   *
82061847f8eSopenharmony_ci   * @interface ControlEventParam
82161847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
82261847f8eSopenharmony_ci   * @atomicservice
82361847f8eSopenharmony_ci   * @since 12
82461847f8eSopenharmony_ci   */
82561847f8eSopenharmony_ci  interface ControlEventParam {
82661847f8eSopenharmony_ci    /**
82761847f8eSopenharmony_ci     * The type of control.
82861847f8eSopenharmony_ci     *
82961847f8eSopenharmony_ci     * @type { PiPControlType }
83061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
83161847f8eSopenharmony_ci     * @atomicservice
83261847f8eSopenharmony_ci     * @since 12
83361847f8eSopenharmony_ci     */
83461847f8eSopenharmony_ci    controlType: PiPControlType;
83561847f8eSopenharmony_ci
83661847f8eSopenharmony_ci    /**
83761847f8eSopenharmony_ci     * The status of control.
83861847f8eSopenharmony_ci     *
83961847f8eSopenharmony_ci     * @type { ?PiPControlStatus }
84061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
84161847f8eSopenharmony_ci     * @atomicservice
84261847f8eSopenharmony_ci     * @since 12
84361847f8eSopenharmony_ci     */
84461847f8eSopenharmony_ci    status?: PiPControlStatus;
84561847f8eSopenharmony_ci  }
84661847f8eSopenharmony_ci
84761847f8eSopenharmony_ci  /**
84861847f8eSopenharmony_ci   * PiPController
84961847f8eSopenharmony_ci   *
85061847f8eSopenharmony_ci   * @interface PiPController
85161847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
85261847f8eSopenharmony_ci   * @since 11
85361847f8eSopenharmony_ci   */
85461847f8eSopenharmony_ci  /**
85561847f8eSopenharmony_ci   * PiPController
85661847f8eSopenharmony_ci   *
85761847f8eSopenharmony_ci   * @interface PiPController
85861847f8eSopenharmony_ci   * @syscap SystemCapability.Window.SessionManager
85961847f8eSopenharmony_ci   * @atomicservice
86061847f8eSopenharmony_ci   * @since 12
86161847f8eSopenharmony_ci   */
86261847f8eSopenharmony_ci  interface PiPController {
86361847f8eSopenharmony_ci
86461847f8eSopenharmony_ci    /**
86561847f8eSopenharmony_ci     * Start picture-in-picture
86661847f8eSopenharmony_ci     * @returns { Promise<void> } - The promise returned by the function
86761847f8eSopenharmony_ci     * @throws { BusinessError } 1300012 - The PiP window state is abnormal.
86861847f8eSopenharmony_ci     * @throws { BusinessError } 1300013 - Failed to create the PiP window.
86961847f8eSopenharmony_ci     * @throws { BusinessError } 1300014 - PiP internal error.
87061847f8eSopenharmony_ci     * @throws { BusinessError } 1300015 - Repeated PiP operation.
87161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
87261847f8eSopenharmony_ci     * @since 11
87361847f8eSopenharmony_ci     */
87461847f8eSopenharmony_ci    /**
87561847f8eSopenharmony_ci     * Start picture-in-picture
87661847f8eSopenharmony_ci     * @returns { Promise<void> } - The promise returned by the function
87761847f8eSopenharmony_ci     * @throws { BusinessError } 1300012 - The PiP window state is abnormal.
87861847f8eSopenharmony_ci     * @throws { BusinessError } 1300013 - Failed to create the PiP window.
87961847f8eSopenharmony_ci     * @throws { BusinessError } 1300014 - PiP internal error.
88061847f8eSopenharmony_ci     * @throws { BusinessError } 1300015 - Repeated PiP operation.
88161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
88261847f8eSopenharmony_ci     * @atomicservice
88361847f8eSopenharmony_ci     * @since 12
88461847f8eSopenharmony_ci     */
88561847f8eSopenharmony_ci    startPiP(): Promise<void>;
88661847f8eSopenharmony_ci
88761847f8eSopenharmony_ci    /**
88861847f8eSopenharmony_ci     * Stop picture-in-picture.
88961847f8eSopenharmony_ci     * @returns { Promise<void> } - The promise returned by the function.
89061847f8eSopenharmony_ci     * @throws { BusinessError } 1300011 - Failed to destroy the PiP window.
89161847f8eSopenharmony_ci     * @throws { BusinessError } 1300012 - The PiP window state is abnormal.
89261847f8eSopenharmony_ci     * @throws { BusinessError } 1300015 - Repeated PiP operation.
89361847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
89461847f8eSopenharmony_ci     * @since 11
89561847f8eSopenharmony_ci     */
89661847f8eSopenharmony_ci    /**
89761847f8eSopenharmony_ci     * Stop picture-in-picture.
89861847f8eSopenharmony_ci     * @returns { Promise<void> } - The promise returned by the function.
89961847f8eSopenharmony_ci     * @throws { BusinessError } 1300011 - Failed to destroy the PiP window.
90061847f8eSopenharmony_ci     * @throws { BusinessError } 1300012 - The PiP window state is abnormal.
90161847f8eSopenharmony_ci     * @throws { BusinessError } 1300015 - Repeated PiP operation.
90261847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
90361847f8eSopenharmony_ci     * @atomicservice
90461847f8eSopenharmony_ci     * @since 12
90561847f8eSopenharmony_ci     */
90661847f8eSopenharmony_ci    stopPiP(): Promise<void>;
90761847f8eSopenharmony_ci
90861847f8eSopenharmony_ci    /**
90961847f8eSopenharmony_ci     * Set if auto start picture-in-picture when back home
91061847f8eSopenharmony_ci     * @param { boolean } enable - Enable auto start picture-in-picture when back home
91161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
91261847f8eSopenharmony_ci     * @since 11
91361847f8eSopenharmony_ci     */
91461847f8eSopenharmony_ci    /**
91561847f8eSopenharmony_ci     * Set if auto start picture-in-picture when back home
91661847f8eSopenharmony_ci     * @param { boolean } enable - Enable auto start picture-in-picture when back home
91761847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
91861847f8eSopenharmony_ci     * @atomicservice
91961847f8eSopenharmony_ci     * @since 12
92061847f8eSopenharmony_ci     */
92161847f8eSopenharmony_ci    setAutoStartEnabled(enable: boolean): void;
92261847f8eSopenharmony_ci
92361847f8eSopenharmony_ci    /**
92461847f8eSopenharmony_ci     * Update source content size to adjust PiP window aspect ratio.
92561847f8eSopenharmony_ci     * @param { number } width - Indicate the width of the content. The width can consist of only digits and above 0.
92661847f8eSopenharmony_ci     * @param { number } height - Indicate the height of the content. The height can consist of only digits and above 0.
92761847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified.
92861847f8eSopenharmony_ci     *                                                                2. Incorrect parameter types.
92961847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
93061847f8eSopenharmony_ci     * @since 11
93161847f8eSopenharmony_ci     */
93261847f8eSopenharmony_ci    /**
93361847f8eSopenharmony_ci     * Update source content size to adjust PiP window aspect ratio.
93461847f8eSopenharmony_ci     * @param { number } width - Indicate the width of the content. The width can consist of only digits and above 0.
93561847f8eSopenharmony_ci     * @param { number } height - Indicate the height of the content. The height can consist of only digits and above 0.
93661847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified.
93761847f8eSopenharmony_ci     *                                                                2. Incorrect parameter types.
93861847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
93961847f8eSopenharmony_ci     * @atomicservice
94061847f8eSopenharmony_ci     * @since 12
94161847f8eSopenharmony_ci     */
94261847f8eSopenharmony_ci    updateContentSize(width: number, height: number): void;
94361847f8eSopenharmony_ci
94461847f8eSopenharmony_ci    /**
94561847f8eSopenharmony_ci     * Set dashboard control status.
94661847f8eSopenharmony_ci     * @param { PiPControlType } controlType - Describe picture-in-picture control type.
94761847f8eSopenharmony_ci     * @param { PiPControlStatus } status - Describe picture-in-picture control Status.
94861847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified.
94961847f8eSopenharmony_ci     *                                                                2. Incorrect parameter types.
95061847f8eSopenharmony_ci     *                                                                3. Parameter verification failed
95161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
95261847f8eSopenharmony_ci     * @atomicservice
95361847f8eSopenharmony_ci     * @since 12
95461847f8eSopenharmony_ci     */
95561847f8eSopenharmony_ci    updatePiPControlStatus(controlType: PiPControlType, status: PiPControlStatus): void;
95661847f8eSopenharmony_ci
95761847f8eSopenharmony_ci    /**
95861847f8eSopenharmony_ci     * Set Dashboard control enable status.
95961847f8eSopenharmony_ci     * @param { PiPControlType } controlType - Describe picture-in-picture control type.
96061847f8eSopenharmony_ci     * @param { boolean } enabled - Describe picture-in-picture control enable Status.
96161847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Params error. Possible causes: 1. Mandatory parameters are left unspecified.
96261847f8eSopenharmony_ci     *                                                                2. Incorrect parameter types.
96361847f8eSopenharmony_ci     *                                                                3. Parameter verification failed
96461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
96561847f8eSopenharmony_ci     * @atomicservice
96661847f8eSopenharmony_ci     * @since 12
96761847f8eSopenharmony_ci     */
96861847f8eSopenharmony_ci    setPiPControlEnabled(controlType: PiPControlType, enabled: boolean): void;
96961847f8eSopenharmony_ci
97061847f8eSopenharmony_ci    /**
97161847f8eSopenharmony_ci     * Register picture-in-picture control event listener.
97261847f8eSopenharmony_ci     * @param { 'stateChange' } type - Registration type, PiP lifecycle state change, 'stateChange'
97361847f8eSopenharmony_ci     * @param { function } callback - Used to handle {'stateChange'} command
97461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
97561847f8eSopenharmony_ci     * @since 11
97661847f8eSopenharmony_ci     */
97761847f8eSopenharmony_ci    /**
97861847f8eSopenharmony_ci     * Register picture-in-picture control event listener.
97961847f8eSopenharmony_ci     * @param { 'stateChange' } type - Registration type, PiP lifecycle state change, 'stateChange'
98061847f8eSopenharmony_ci     * @param { function } callback - Used to handle {'stateChange'} command
98161847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
98261847f8eSopenharmony_ci     * @atomicservice
98361847f8eSopenharmony_ci     * @since 12
98461847f8eSopenharmony_ci     */
98561847f8eSopenharmony_ci    on(type: 'stateChange', callback: (state: PiPState, reason: string) => void): void;
98661847f8eSopenharmony_ci
98761847f8eSopenharmony_ci    /**
98861847f8eSopenharmony_ci     * Unregister picture-in-picture lifecycle event listener.
98961847f8eSopenharmony_ci     * @param { 'stateChange' } type - Used to unregister listener for {'stateChange'} command
99061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
99161847f8eSopenharmony_ci     * @since 11
99261847f8eSopenharmony_ci     */
99361847f8eSopenharmony_ci    /**
99461847f8eSopenharmony_ci     * Unregister picture-in-picture lifecycle event listener.
99561847f8eSopenharmony_ci     * @param { 'stateChange' } type - Used to unregister listener for {'stateChange'} command
99661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
99761847f8eSopenharmony_ci     * @atomicservice
99861847f8eSopenharmony_ci     * @since 12
99961847f8eSopenharmony_ci     */
100061847f8eSopenharmony_ci    off(type: 'stateChange'): void;
100161847f8eSopenharmony_ci
100261847f8eSopenharmony_ci    /**
100361847f8eSopenharmony_ci     * Register picture-in-picture control event listener.
100461847f8eSopenharmony_ci     * @param { 'controlPanelActionEvent' } type - Registration type, user action event, 'controlPanelActionEvent'
100561847f8eSopenharmony_ci     * @param { function } callback - Used to handle {'controlPanelActionEvent'} command
100661847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
100761847f8eSopenharmony_ci     * @since 11
100861847f8eSopenharmony_ci     */
100961847f8eSopenharmony_ci    /**
101061847f8eSopenharmony_ci     * Register picture-in-picture control event listener.
101161847f8eSopenharmony_ci     *
101261847f8eSopenharmony_ci     * @param { 'controlPanelActionEvent' } type - Registration type, user action event, 'controlPanelActionEvent'
101361847f8eSopenharmony_ci     * @param { ControlPanelActionEventCallback } callback - Used to handle {'controlPanelActionEvent'} command.
101461847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
101561847f8eSopenharmony_ci     * @atomicservice
101661847f8eSopenharmony_ci     * @since 12
101761847f8eSopenharmony_ci     */
101861847f8eSopenharmony_ci    on(type: 'controlPanelActionEvent', callback: ControlPanelActionEventCallback): void;
101961847f8eSopenharmony_ci
102061847f8eSopenharmony_ci    /**
102161847f8eSopenharmony_ci     * Unregister picture-in-picture lifecycle event listener
102261847f8eSopenharmony_ci     * @param { 'controlPanelActionEvent' } type - Used to unregister listener for {'controlPanelActionEvent'} command
102361847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
102461847f8eSopenharmony_ci     * @since 11
102561847f8eSopenharmony_ci     */
102661847f8eSopenharmony_ci    /**
102761847f8eSopenharmony_ci     * Unregister picture-in-picture lifecycle event listener
102861847f8eSopenharmony_ci     * @param { 'controlPanelActionEvent' } type - Used to unregister listener for {'controlPanelActionEvent'} command
102961847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
103061847f8eSopenharmony_ci     * @atomicservice
103161847f8eSopenharmony_ci     * @since 12
103261847f8eSopenharmony_ci     */
103361847f8eSopenharmony_ci    off(type: 'controlPanelActionEvent'): void;
103461847f8eSopenharmony_ci
103561847f8eSopenharmony_ci    /**
103661847f8eSopenharmony_ci     * Register picture-in-picture control event listener.
103761847f8eSopenharmony_ci     *
103861847f8eSopenharmony_ci     * @param { 'controlEvent' } type - Registration type, user action event, 'controlEvent'
103961847f8eSopenharmony_ci     * @param { Callback<ControlEventParam> } callback - Used to handle {'controlEvent'} command.
104061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
104161847f8eSopenharmony_ci     * @atomicservice
104261847f8eSopenharmony_ci     * @since 12
104361847f8eSopenharmony_ci     */
104461847f8eSopenharmony_ci    on(type: 'controlEvent', callback: Callback<ControlEventParam>): void;
104561847f8eSopenharmony_ci
104661847f8eSopenharmony_ci    /**
104761847f8eSopenharmony_ci     * Unregister picture-in-picture control event listener
104861847f8eSopenharmony_ci     * @param { 'controlEvent' } type - Used to unregister listener for {'controlEvent'} command
104961847f8eSopenharmony_ci     * @param { Callback<ControlEventParam> } callback - Used to handle {'controlEvent'} command.
105061847f8eSopenharmony_ci     * @syscap SystemCapability.Window.SessionManager
105161847f8eSopenharmony_ci     * @atomicservice
105261847f8eSopenharmony_ci     * @since 12
105361847f8eSopenharmony_ci     */
105461847f8eSopenharmony_ci    off(type: 'controlEvent', callback?: Callback<ControlEventParam>): void;
105561847f8eSopenharmony_ci  }
105661847f8eSopenharmony_ci}
105761847f8eSopenharmony_ci
105861847f8eSopenharmony_ciexport default PiPWindow;
1059