161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (C) 2022 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 CameraKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport { ErrorCallback, AsyncCallback } from './@ohos.base';
2261847f8eSopenharmony_ciimport type Context from './application/BaseContext';
2361847f8eSopenharmony_ciimport image from './@ohos.multimedia.image';
2461847f8eSopenharmony_ciimport type colorSpaceManager from './@ohos.graphics.colorSpaceManager';
2561847f8eSopenharmony_ciimport photoAccessHelper from './@ohos.file.photoAccessHelper';
2661847f8eSopenharmony_ci
2761847f8eSopenharmony_ci/**
2861847f8eSopenharmony_ci * @namespace camera
2961847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core
3061847f8eSopenharmony_ci * @since 10
3161847f8eSopenharmony_ci */
3261847f8eSopenharmony_ci/**
3361847f8eSopenharmony_ci * @namespace camera
3461847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core
3561847f8eSopenharmony_ci * @atomicservice
3661847f8eSopenharmony_ci * @since 12
3761847f8eSopenharmony_ci */
3861847f8eSopenharmony_cideclare namespace camera {
3961847f8eSopenharmony_ci  /**
4061847f8eSopenharmony_ci   * Creates a CameraManager instance.
4161847f8eSopenharmony_ci   *
4261847f8eSopenharmony_ci   * @param { Context } context - Current application context.
4361847f8eSopenharmony_ci   * @returns { CameraManager } CameraManager instance.
4461847f8eSopenharmony_ci   * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
4561847f8eSopenharmony_ci   * @throws { BusinessError } 7400201 - Camera service fatal error.
4661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
4761847f8eSopenharmony_ci   * @since 10
4861847f8eSopenharmony_ci   */
4961847f8eSopenharmony_ci  function getCameraManager(context: Context): CameraManager;
5061847f8eSopenharmony_ci
5161847f8eSopenharmony_ci  /**
5261847f8eSopenharmony_ci   * Enum for camera status.
5361847f8eSopenharmony_ci   *
5461847f8eSopenharmony_ci   * @enum { number }
5561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
5661847f8eSopenharmony_ci   * @since 10
5761847f8eSopenharmony_ci   */
5861847f8eSopenharmony_ci  enum CameraStatus {
5961847f8eSopenharmony_ci    /**
6061847f8eSopenharmony_ci     * Appear status.
6161847f8eSopenharmony_ci     *
6261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
6361847f8eSopenharmony_ci     * @since 10
6461847f8eSopenharmony_ci     */
6561847f8eSopenharmony_ci    CAMERA_STATUS_APPEAR = 0,
6661847f8eSopenharmony_ci
6761847f8eSopenharmony_ci    /**
6861847f8eSopenharmony_ci     * Disappear status.
6961847f8eSopenharmony_ci     *
7061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
7161847f8eSopenharmony_ci     * @since 10
7261847f8eSopenharmony_ci     */
7361847f8eSopenharmony_ci    CAMERA_STATUS_DISAPPEAR = 1,
7461847f8eSopenharmony_ci
7561847f8eSopenharmony_ci    /**
7661847f8eSopenharmony_ci     * Available status.
7761847f8eSopenharmony_ci     *
7861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
7961847f8eSopenharmony_ci     * @since 10
8061847f8eSopenharmony_ci     */
8161847f8eSopenharmony_ci    CAMERA_STATUS_AVAILABLE = 2,
8261847f8eSopenharmony_ci
8361847f8eSopenharmony_ci    /**
8461847f8eSopenharmony_ci     * Unavailable status.
8561847f8eSopenharmony_ci     *
8661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
8761847f8eSopenharmony_ci     * @since 10
8861847f8eSopenharmony_ci     */
8961847f8eSopenharmony_ci    CAMERA_STATUS_UNAVAILABLE = 3
9061847f8eSopenharmony_ci  }
9161847f8eSopenharmony_ci
9261847f8eSopenharmony_ci  /**
9361847f8eSopenharmony_ci   * Enum for fold status.
9461847f8eSopenharmony_ci   *
9561847f8eSopenharmony_ci   * @enum { number }
9661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
9761847f8eSopenharmony_ci   * @since 12
9861847f8eSopenharmony_ci   */
9961847f8eSopenharmony_ci  enum FoldStatus {
10061847f8eSopenharmony_ci    /**
10161847f8eSopenharmony_ci     * Non-foldable status.
10261847f8eSopenharmony_ci     *
10361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
10461847f8eSopenharmony_ci     * @since 12
10561847f8eSopenharmony_ci     */
10661847f8eSopenharmony_ci    NON_FOLDABLE = 0,
10761847f8eSopenharmony_ci
10861847f8eSopenharmony_ci    /**
10961847f8eSopenharmony_ci     * Expanded status.
11061847f8eSopenharmony_ci     *
11161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
11261847f8eSopenharmony_ci     * @since 12
11361847f8eSopenharmony_ci     */
11461847f8eSopenharmony_ci    EXPANDED = 1,
11561847f8eSopenharmony_ci
11661847f8eSopenharmony_ci    /**
11761847f8eSopenharmony_ci     * Folded status.
11861847f8eSopenharmony_ci     *
11961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
12061847f8eSopenharmony_ci     * @since 12
12161847f8eSopenharmony_ci     */
12261847f8eSopenharmony_ci    FOLDED = 2
12361847f8eSopenharmony_ci  }
12461847f8eSopenharmony_ci
12561847f8eSopenharmony_ci  /**
12661847f8eSopenharmony_ci   * Profile for camera streams.
12761847f8eSopenharmony_ci   *
12861847f8eSopenharmony_ci   * @typedef Profile
12961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
13061847f8eSopenharmony_ci   * @since 10
13161847f8eSopenharmony_ci   */
13261847f8eSopenharmony_ci  interface Profile {
13361847f8eSopenharmony_ci    /**
13461847f8eSopenharmony_ci     * Camera format.
13561847f8eSopenharmony_ci     *
13661847f8eSopenharmony_ci     * @type { CameraFormat }
13761847f8eSopenharmony_ci     * @readonly
13861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
13961847f8eSopenharmony_ci     * @since 10
14061847f8eSopenharmony_ci     */
14161847f8eSopenharmony_ci    readonly format: CameraFormat;
14261847f8eSopenharmony_ci
14361847f8eSopenharmony_ci    /**
14461847f8eSopenharmony_ci     * Picture size.
14561847f8eSopenharmony_ci     *
14661847f8eSopenharmony_ci     * @type { Size }
14761847f8eSopenharmony_ci     * @readonly
14861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
14961847f8eSopenharmony_ci     * @since 10
15061847f8eSopenharmony_ci     */
15161847f8eSopenharmony_ci    readonly size: Size;
15261847f8eSopenharmony_ci  }
15361847f8eSopenharmony_ci
15461847f8eSopenharmony_ci  /**
15561847f8eSopenharmony_ci   * Frame rate range.
15661847f8eSopenharmony_ci   *
15761847f8eSopenharmony_ci   * @typedef FrameRateRange
15861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
15961847f8eSopenharmony_ci   * @since 10
16061847f8eSopenharmony_ci   */
16161847f8eSopenharmony_ci  interface FrameRateRange {
16261847f8eSopenharmony_ci    /**
16361847f8eSopenharmony_ci     * Min frame rate.
16461847f8eSopenharmony_ci     *
16561847f8eSopenharmony_ci     * @type { number }
16661847f8eSopenharmony_ci     * @readonly
16761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
16861847f8eSopenharmony_ci     * @since 10
16961847f8eSopenharmony_ci     */
17061847f8eSopenharmony_ci    readonly min: number;
17161847f8eSopenharmony_ci
17261847f8eSopenharmony_ci    /**
17361847f8eSopenharmony_ci     * Max frame rate.
17461847f8eSopenharmony_ci     *
17561847f8eSopenharmony_ci     * @type { number }
17661847f8eSopenharmony_ci     * @readonly
17761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
17861847f8eSopenharmony_ci     * @since 10
17961847f8eSopenharmony_ci     */
18061847f8eSopenharmony_ci    readonly max: number;
18161847f8eSopenharmony_ci  }
18261847f8eSopenharmony_ci
18361847f8eSopenharmony_ci  /**
18461847f8eSopenharmony_ci   * Video profile.
18561847f8eSopenharmony_ci   *
18661847f8eSopenharmony_ci   * @typedef VideoProfile
18761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
18861847f8eSopenharmony_ci   * @since 10
18961847f8eSopenharmony_ci   */
19061847f8eSopenharmony_ci  interface VideoProfile extends Profile {
19161847f8eSopenharmony_ci    /**
19261847f8eSopenharmony_ci     * Frame rate in unit fps (frames per second).
19361847f8eSopenharmony_ci     *
19461847f8eSopenharmony_ci     * @type { FrameRateRange }
19561847f8eSopenharmony_ci     * @readonly
19661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
19761847f8eSopenharmony_ci     * @since 10
19861847f8eSopenharmony_ci     */
19961847f8eSopenharmony_ci    readonly frameRateRange: FrameRateRange;
20061847f8eSopenharmony_ci  }
20161847f8eSopenharmony_ci
20261847f8eSopenharmony_ci  /**
20361847f8eSopenharmony_ci   * Camera output capability.
20461847f8eSopenharmony_ci   *
20561847f8eSopenharmony_ci   * @typedef CameraOutputCapability
20661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
20761847f8eSopenharmony_ci   * @since 10
20861847f8eSopenharmony_ci   */
20961847f8eSopenharmony_ci  interface CameraOutputCapability {
21061847f8eSopenharmony_ci    /**
21161847f8eSopenharmony_ci     * Preview profiles.
21261847f8eSopenharmony_ci     *
21361847f8eSopenharmony_ci     * @type { Array<Profile> }
21461847f8eSopenharmony_ci     * @readonly
21561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
21661847f8eSopenharmony_ci     * @since 10
21761847f8eSopenharmony_ci     */
21861847f8eSopenharmony_ci    readonly previewProfiles: Array<Profile>;
21961847f8eSopenharmony_ci
22061847f8eSopenharmony_ci    /**
22161847f8eSopenharmony_ci     * Photo profiles.
22261847f8eSopenharmony_ci     *
22361847f8eSopenharmony_ci     * @type { Array<Profile> }
22461847f8eSopenharmony_ci     * @readonly
22561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
22661847f8eSopenharmony_ci     * @since 10
22761847f8eSopenharmony_ci     */
22861847f8eSopenharmony_ci    readonly photoProfiles: Array<Profile>;
22961847f8eSopenharmony_ci
23061847f8eSopenharmony_ci    /**
23161847f8eSopenharmony_ci     * Video profiles.
23261847f8eSopenharmony_ci     *
23361847f8eSopenharmony_ci     * @type { Array<VideoProfile> }
23461847f8eSopenharmony_ci     * @readonly
23561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
23661847f8eSopenharmony_ci     * @since 10
23761847f8eSopenharmony_ci     */
23861847f8eSopenharmony_ci    readonly videoProfiles: Array<VideoProfile>;
23961847f8eSopenharmony_ci
24061847f8eSopenharmony_ci    /**
24161847f8eSopenharmony_ci     * Depth profiles.
24261847f8eSopenharmony_ci     *
24361847f8eSopenharmony_ci     * @type { Array<DepthProfile> }
24461847f8eSopenharmony_ci     * @readonly
24561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
24661847f8eSopenharmony_ci     * @systemapi
24761847f8eSopenharmony_ci     * @since 13
24861847f8eSopenharmony_ci     */
24961847f8eSopenharmony_ci    readonly depthProfiles: Array<DepthProfile>;
25061847f8eSopenharmony_ci
25161847f8eSopenharmony_ci    /**
25261847f8eSopenharmony_ci     * All the supported metadata Object Types.
25361847f8eSopenharmony_ci     *
25461847f8eSopenharmony_ci     * @type { Array<MetadataObjectType> }
25561847f8eSopenharmony_ci     * @readonly
25661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
25761847f8eSopenharmony_ci     * @since 10
25861847f8eSopenharmony_ci     */
25961847f8eSopenharmony_ci    readonly supportedMetadataObjectTypes: Array<MetadataObjectType>;
26061847f8eSopenharmony_ci  }
26161847f8eSopenharmony_ci
26261847f8eSopenharmony_ci  /**
26361847f8eSopenharmony_ci   * Enum for camera error code.
26461847f8eSopenharmony_ci   *
26561847f8eSopenharmony_ci   * @enum { number }
26661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
26761847f8eSopenharmony_ci   * @since 10
26861847f8eSopenharmony_ci   */
26961847f8eSopenharmony_ci  enum CameraErrorCode {
27061847f8eSopenharmony_ci    /**
27161847f8eSopenharmony_ci     * Parameter missing or parameter type incorrect.
27261847f8eSopenharmony_ci     *
27361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
27461847f8eSopenharmony_ci     * @since 10
27561847f8eSopenharmony_ci     */
27661847f8eSopenharmony_ci    INVALID_ARGUMENT = 7400101,
27761847f8eSopenharmony_ci
27861847f8eSopenharmony_ci    /**
27961847f8eSopenharmony_ci     * Operation not allowed.
28061847f8eSopenharmony_ci     *
28161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
28261847f8eSopenharmony_ci     * @since 10
28361847f8eSopenharmony_ci     */
28461847f8eSopenharmony_ci    OPERATION_NOT_ALLOWED = 7400102,
28561847f8eSopenharmony_ci
28661847f8eSopenharmony_ci    /**
28761847f8eSopenharmony_ci     * Session not config.
28861847f8eSopenharmony_ci     *
28961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
29061847f8eSopenharmony_ci     * @since 10
29161847f8eSopenharmony_ci     */
29261847f8eSopenharmony_ci    SESSION_NOT_CONFIG = 7400103,
29361847f8eSopenharmony_ci
29461847f8eSopenharmony_ci    /**
29561847f8eSopenharmony_ci     * Session not running.
29661847f8eSopenharmony_ci     *
29761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
29861847f8eSopenharmony_ci     * @since 10
29961847f8eSopenharmony_ci     */
30061847f8eSopenharmony_ci    SESSION_NOT_RUNNING = 7400104,
30161847f8eSopenharmony_ci
30261847f8eSopenharmony_ci    /**
30361847f8eSopenharmony_ci     * Session config locked.
30461847f8eSopenharmony_ci     *
30561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
30661847f8eSopenharmony_ci     * @since 10
30761847f8eSopenharmony_ci     */
30861847f8eSopenharmony_ci    SESSION_CONFIG_LOCKED = 7400105,
30961847f8eSopenharmony_ci
31061847f8eSopenharmony_ci    /**
31161847f8eSopenharmony_ci     * Device setting locked.
31261847f8eSopenharmony_ci     *
31361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
31461847f8eSopenharmony_ci     * @since 10
31561847f8eSopenharmony_ci     */
31661847f8eSopenharmony_ci    DEVICE_SETTING_LOCKED = 7400106,
31761847f8eSopenharmony_ci
31861847f8eSopenharmony_ci    /**
31961847f8eSopenharmony_ci     * Can not use camera cause of conflict.
32061847f8eSopenharmony_ci     *
32161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
32261847f8eSopenharmony_ci     * @since 10
32361847f8eSopenharmony_ci     */
32461847f8eSopenharmony_ci    CONFLICT_CAMERA = 7400107,
32561847f8eSopenharmony_ci
32661847f8eSopenharmony_ci    /**
32761847f8eSopenharmony_ci     * Camera disabled cause of security reason.
32861847f8eSopenharmony_ci     *
32961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
33061847f8eSopenharmony_ci     * @since 10
33161847f8eSopenharmony_ci     */
33261847f8eSopenharmony_ci    DEVICE_DISABLED = 7400108,
33361847f8eSopenharmony_ci
33461847f8eSopenharmony_ci    /**
33561847f8eSopenharmony_ci     * Can not use camera cause of preempted.
33661847f8eSopenharmony_ci     *
33761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
33861847f8eSopenharmony_ci     * @since 10
33961847f8eSopenharmony_ci     */
34061847f8eSopenharmony_ci    DEVICE_PREEMPTED = 7400109,
34161847f8eSopenharmony_ci
34261847f8eSopenharmony_ci    /**
34361847f8eSopenharmony_ci     * Unresolved conflicts with current configurations.
34461847f8eSopenharmony_ci     *
34561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
34661847f8eSopenharmony_ci     * @since 12
34761847f8eSopenharmony_ci     */
34861847f8eSopenharmony_ci    UNRESOLVED_CONFLICTS_WITH_CURRENT_CONFIGURATIONS = 7400110,
34961847f8eSopenharmony_ci
35061847f8eSopenharmony_ci    /**
35161847f8eSopenharmony_ci     * Camera service fatal error.
35261847f8eSopenharmony_ci     *
35361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
35461847f8eSopenharmony_ci     * @since 10
35561847f8eSopenharmony_ci     */
35661847f8eSopenharmony_ci    SERVICE_FATAL_ERROR = 7400201
35761847f8eSopenharmony_ci  }
35861847f8eSopenharmony_ci
35961847f8eSopenharmony_ci  /**
36061847f8eSopenharmony_ci   * Enum for restore parameter.
36161847f8eSopenharmony_ci   *
36261847f8eSopenharmony_ci   * @enum { number }
36361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
36461847f8eSopenharmony_ci   * @systemapi
36561847f8eSopenharmony_ci   * @since 11
36661847f8eSopenharmony_ci   */
36761847f8eSopenharmony_ci  enum RestoreParamType {
36861847f8eSopenharmony_ci    /**
36961847f8eSopenharmony_ci     * No need set restore Stream Parameter, only prelaunch camera device.
37061847f8eSopenharmony_ci     *
37161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
37261847f8eSopenharmony_ci     * @systemapi
37361847f8eSopenharmony_ci     * @since 11
37461847f8eSopenharmony_ci     */
37561847f8eSopenharmony_ci    NO_NEED_RESTORE_PARAM = 0,
37661847f8eSopenharmony_ci
37761847f8eSopenharmony_ci    /**
37861847f8eSopenharmony_ci     * Presistent default parameter, long-lasting effect after T minutes.
37961847f8eSopenharmony_ci     *
38061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
38161847f8eSopenharmony_ci     * @systemapi
38261847f8eSopenharmony_ci     * @since 11
38361847f8eSopenharmony_ci     */
38461847f8eSopenharmony_ci    PRESISTENT_DEFAULT_PARAM = 1,
38561847f8eSopenharmony_ci
38661847f8eSopenharmony_ci    /**
38761847f8eSopenharmony_ci     * Transient active parameter, which has a higher priority than PRESISTENT_DEFAULT_PARAM when both exist.
38861847f8eSopenharmony_ci     *
38961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
39061847f8eSopenharmony_ci     * @systemapi
39161847f8eSopenharmony_ci     * @since 11
39261847f8eSopenharmony_ci     */
39361847f8eSopenharmony_ci    TRANSIENT_ACTIVE_PARAM = 2
39461847f8eSopenharmony_ci  }
39561847f8eSopenharmony_ci
39661847f8eSopenharmony_ci  /**
39761847f8eSopenharmony_ci   * Setting parameter for stream.
39861847f8eSopenharmony_ci   *
39961847f8eSopenharmony_ci   * @typedef SettingParam
40061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
40161847f8eSopenharmony_ci   * @systemapi
40261847f8eSopenharmony_ci   * @since 11
40361847f8eSopenharmony_ci   */
40461847f8eSopenharmony_ci  interface SettingParam {
40561847f8eSopenharmony_ci    /**
40661847f8eSopenharmony_ci     * Skin smooth level value for restore.
40761847f8eSopenharmony_ci     *
40861847f8eSopenharmony_ci     * @type { number }
40961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
41061847f8eSopenharmony_ci     * @systemapi
41161847f8eSopenharmony_ci     * @since 11
41261847f8eSopenharmony_ci     */
41361847f8eSopenharmony_ci    skinSmoothLevel: number;
41461847f8eSopenharmony_ci
41561847f8eSopenharmony_ci    /**
41661847f8eSopenharmony_ci     * Face slender value for restore.
41761847f8eSopenharmony_ci     *
41861847f8eSopenharmony_ci     * @type { number }
41961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
42061847f8eSopenharmony_ci     * @systemapi
42161847f8eSopenharmony_ci     * @since 11
42261847f8eSopenharmony_ci     */
42361847f8eSopenharmony_ci    faceSlender: number;
42461847f8eSopenharmony_ci
42561847f8eSopenharmony_ci    /**
42661847f8eSopenharmony_ci     * Skin tone value for restore.
42761847f8eSopenharmony_ci     *
42861847f8eSopenharmony_ci     * @type { number }
42961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
43061847f8eSopenharmony_ci     * @systemapi
43161847f8eSopenharmony_ci     * @since 11
43261847f8eSopenharmony_ci     */
43361847f8eSopenharmony_ci    skinTone: number;
43461847f8eSopenharmony_ci  }
43561847f8eSopenharmony_ci
43661847f8eSopenharmony_ci  /**
43761847f8eSopenharmony_ci   * Prelaunch config object.
43861847f8eSopenharmony_ci   *
43961847f8eSopenharmony_ci   * @typedef PrelaunchConfig
44061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
44161847f8eSopenharmony_ci   * @systemapi
44261847f8eSopenharmony_ci   * @since 10
44361847f8eSopenharmony_ci   */
44461847f8eSopenharmony_ci  interface PrelaunchConfig {
44561847f8eSopenharmony_ci    /**
44661847f8eSopenharmony_ci     * Camera instance.
44761847f8eSopenharmony_ci     *
44861847f8eSopenharmony_ci     * @type { CameraDevice }
44961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
45061847f8eSopenharmony_ci     * @systemapi
45161847f8eSopenharmony_ci     * @since 10
45261847f8eSopenharmony_ci     */
45361847f8eSopenharmony_ci    cameraDevice: CameraDevice;
45461847f8eSopenharmony_ci
45561847f8eSopenharmony_ci    /**
45661847f8eSopenharmony_ci     * Restore parameter type.
45761847f8eSopenharmony_ci     *
45861847f8eSopenharmony_ci     * @type { ?RestoreParamType }
45961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
46061847f8eSopenharmony_ci     * @systemapi
46161847f8eSopenharmony_ci     * @since 11
46261847f8eSopenharmony_ci     */
46361847f8eSopenharmony_ci    restoreParamType?: RestoreParamType;
46461847f8eSopenharmony_ci
46561847f8eSopenharmony_ci    /**
46661847f8eSopenharmony_ci     * Begin active time.
46761847f8eSopenharmony_ci     *
46861847f8eSopenharmony_ci     * @type { ?number }
46961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
47061847f8eSopenharmony_ci     * @systemapi
47161847f8eSopenharmony_ci     * @since 11
47261847f8eSopenharmony_ci     */
47361847f8eSopenharmony_ci    activeTime?: number;
47461847f8eSopenharmony_ci
47561847f8eSopenharmony_ci    /**
47661847f8eSopenharmony_ci     * Setting parameter.
47761847f8eSopenharmony_ci     *
47861847f8eSopenharmony_ci     * @type { ?SettingParam }
47961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
48061847f8eSopenharmony_ci     * @systemapi
48161847f8eSopenharmony_ci     * @since 11
48261847f8eSopenharmony_ci     */
48361847f8eSopenharmony_ci    settingParam?: SettingParam;
48461847f8eSopenharmony_ci  }
48561847f8eSopenharmony_ci
48661847f8eSopenharmony_ci  /**
48761847f8eSopenharmony_ci   * Camera manager object.
48861847f8eSopenharmony_ci   *
48961847f8eSopenharmony_ci   * @interface CameraManager
49061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
49161847f8eSopenharmony_ci   * @since 10
49261847f8eSopenharmony_ci   */
49361847f8eSopenharmony_ci  interface CameraManager {
49461847f8eSopenharmony_ci    /**
49561847f8eSopenharmony_ci     * Gets supported camera descriptions.
49661847f8eSopenharmony_ci     *
49761847f8eSopenharmony_ci     * @returns { Array<CameraDevice> } An array of supported cameras.
49861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
49961847f8eSopenharmony_ci     * @since 10
50061847f8eSopenharmony_ci     */
50161847f8eSopenharmony_ci    getSupportedCameras(): Array<CameraDevice>;
50261847f8eSopenharmony_ci
50361847f8eSopenharmony_ci    /**
50461847f8eSopenharmony_ci     * Gets supported output capability for specific camera.
50561847f8eSopenharmony_ci     *
50661847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device.
50761847f8eSopenharmony_ci     * @returns { CameraOutputCapability } The camera output capability.
50861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
50961847f8eSopenharmony_ci     * @since 10
51061847f8eSopenharmony_ci     * @deprecated since 11
51161847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.CameraManager#getSupportedOutputCapability
51261847f8eSopenharmony_ci     */
51361847f8eSopenharmony_ci    getSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability;
51461847f8eSopenharmony_ci
51561847f8eSopenharmony_ci    /**
51661847f8eSopenharmony_ci     * Gets supported scene mode for specific camera.
51761847f8eSopenharmony_ci     *
51861847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device.
51961847f8eSopenharmony_ci     * @returns { Array<SceneMode> } An array of supported scene mode of camera.
52061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
52161847f8eSopenharmony_ci     * @since 11
52261847f8eSopenharmony_ci     */
52361847f8eSopenharmony_ci    getSupportedSceneModes(camera: CameraDevice): Array<SceneMode>;
52461847f8eSopenharmony_ci
52561847f8eSopenharmony_ci    /**
52661847f8eSopenharmony_ci     * Gets supported output capability for specific camera.
52761847f8eSopenharmony_ci     *
52861847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device.
52961847f8eSopenharmony_ci     * @param { SceneMode } mode - Scene mode.
53061847f8eSopenharmony_ci     * @returns { CameraOutputCapability } The camera output capability.
53161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
53261847f8eSopenharmony_ci     * @since 11
53361847f8eSopenharmony_ci     */
53461847f8eSopenharmony_ci    getSupportedOutputCapability(camera: CameraDevice, mode: SceneMode): CameraOutputCapability;
53561847f8eSopenharmony_ci
53661847f8eSopenharmony_ci    /**
53761847f8eSopenharmony_ci     * Determine whether camera is muted.
53861847f8eSopenharmony_ci     *
53961847f8eSopenharmony_ci     * @returns { boolean } Is camera muted.
54061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
54161847f8eSopenharmony_ci     * @since 10
54261847f8eSopenharmony_ci     */
54361847f8eSopenharmony_ci    isCameraMuted(): boolean;
54461847f8eSopenharmony_ci
54561847f8eSopenharmony_ci    /**
54661847f8eSopenharmony_ci     * Determine whether camera mute is supported.
54761847f8eSopenharmony_ci     *
54861847f8eSopenharmony_ci     * @returns { boolean } Is camera mute supported.
54961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
55061847f8eSopenharmony_ci     * @systemapi
55161847f8eSopenharmony_ci     * @since 10
55261847f8eSopenharmony_ci     */
55361847f8eSopenharmony_ci    /**
55461847f8eSopenharmony_ci     * Determine whether camera mute is supported.
55561847f8eSopenharmony_ci     *
55661847f8eSopenharmony_ci     * @returns { boolean } Is camera mute supported.
55761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
55861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
55961847f8eSopenharmony_ci     * @systemapi
56061847f8eSopenharmony_ci     * @since 12
56161847f8eSopenharmony_ci     */
56261847f8eSopenharmony_ci    isCameraMuteSupported(): boolean;
56361847f8eSopenharmony_ci
56461847f8eSopenharmony_ci    /**
56561847f8eSopenharmony_ci     * Mute camera.
56661847f8eSopenharmony_ci     *
56761847f8eSopenharmony_ci     * @param { boolean } mute - Mute camera if TRUE, otherwise unmute camera.
56861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
56961847f8eSopenharmony_ci     * @systemapi
57061847f8eSopenharmony_ci     * @since 10
57161847f8eSopenharmony_ci     * @deprecated since 12
57261847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.CameraManager#muteCameraPersistent
57361847f8eSopenharmony_ci     */
57461847f8eSopenharmony_ci    muteCamera(mute: boolean): void;
57561847f8eSopenharmony_ci
57661847f8eSopenharmony_ci    /**
57761847f8eSopenharmony_ci     * Mutes or unmutes camera for persistence purpose.
57861847f8eSopenharmony_ci     *
57961847f8eSopenharmony_ci     * @permission ohos.camera.CAMERA_CONTROL
58061847f8eSopenharmony_ci     * @param { boolean } mute - Mute camera if TRUE, otherwise unmute camera.
58161847f8eSopenharmony_ci     * @param { PolicyType } type - Type for indicating the calling role.
58261847f8eSopenharmony_ci     * @throws { BusinessError } 201 - Permission denied. 
58361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
58461847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect. 
58561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
58661847f8eSopenharmony_ci     * @systemapi
58761847f8eSopenharmony_ci     * @since 12
58861847f8eSopenharmony_ci     */
58961847f8eSopenharmony_ci    muteCameraPersistent(mute: boolean, type: PolicyType): void;
59061847f8eSopenharmony_ci
59161847f8eSopenharmony_ci    /**
59261847f8eSopenharmony_ci     * Creates a CameraInput instance by camera.
59361847f8eSopenharmony_ci     *
59461847f8eSopenharmony_ci     * @permission ohos.permission.CAMERA
59561847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device used to create the instance.
59661847f8eSopenharmony_ci     * @returns { CameraInput } The CameraInput instance.
59761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
59861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
59961847f8eSopenharmony_ci     * @since 10
60061847f8eSopenharmony_ci     */
60161847f8eSopenharmony_ci    /**
60261847f8eSopenharmony_ci     * Creates a CameraInput instance by camera.
60361847f8eSopenharmony_ci     *
60461847f8eSopenharmony_ci     * @permission ohos.permission.CAMERA
60561847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device used to create the instance.
60661847f8eSopenharmony_ci     * @returns { CameraInput } The CameraInput instance.
60761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
60861847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
60961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
61061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
61161847f8eSopenharmony_ci     * @since 12
61261847f8eSopenharmony_ci     */
61361847f8eSopenharmony_ci    createCameraInput(camera: CameraDevice): CameraInput;
61461847f8eSopenharmony_ci
61561847f8eSopenharmony_ci    /**
61661847f8eSopenharmony_ci     * Creates a CameraInput instance by camera position and type.
61761847f8eSopenharmony_ci     *
61861847f8eSopenharmony_ci     * @permission ohos.permission.CAMERA
61961847f8eSopenharmony_ci     * @param { CameraPosition } position - Target camera position.
62061847f8eSopenharmony_ci     * @param { CameraType } type - Target camera type.
62161847f8eSopenharmony_ci     * @returns { CameraInput } The CameraInput instance.
62261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
62361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
62461847f8eSopenharmony_ci     * @since 10
62561847f8eSopenharmony_ci     */
62661847f8eSopenharmony_ci    /**
62761847f8eSopenharmony_ci     * Creates a CameraInput instance by camera position and type.
62861847f8eSopenharmony_ci     *
62961847f8eSopenharmony_ci     * @permission ohos.permission.CAMERA
63061847f8eSopenharmony_ci     * @param { CameraPosition } position - Target camera position.
63161847f8eSopenharmony_ci     * @param { CameraType } type - Target camera type.
63261847f8eSopenharmony_ci     * @returns { CameraInput } The CameraInput instance.
63361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
63461847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
63561847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
63661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
63761847f8eSopenharmony_ci     * @since 12
63861847f8eSopenharmony_ci     */
63961847f8eSopenharmony_ci    createCameraInput(position: CameraPosition, type: CameraType): CameraInput;
64061847f8eSopenharmony_ci
64161847f8eSopenharmony_ci    /**
64261847f8eSopenharmony_ci     * Creates a PreviewOutput instance.
64361847f8eSopenharmony_ci     *
64461847f8eSopenharmony_ci     * @param { Profile } profile - Preview output profile.
64561847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera photo output.
64661847f8eSopenharmony_ci     * @returns { PreviewOutput } The PreviewOutput instance.
64761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
64861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
64961847f8eSopenharmony_ci     * @since 10
65061847f8eSopenharmony_ci     */
65161847f8eSopenharmony_ci    /**
65261847f8eSopenharmony_ci     * Creates a PreviewOutput instance.
65361847f8eSopenharmony_ci     *
65461847f8eSopenharmony_ci     * @param { Profile } profile - Preview output profile.
65561847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera photo output.
65661847f8eSopenharmony_ci     * @returns { PreviewOutput } The PreviewOutput instance.
65761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
65861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
65961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
66061847f8eSopenharmony_ci     * @since 12
66161847f8eSopenharmony_ci     */
66261847f8eSopenharmony_ci    createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput;
66361847f8eSopenharmony_ci
66461847f8eSopenharmony_ci    /**
66561847f8eSopenharmony_ci     * Creates a PreviewOutput instance without profile.
66661847f8eSopenharmony_ci     * You can use this method to create a preview output instance without a profile, This instance can
66761847f8eSopenharmony_ci     * only be used in a preconfiged session.
66861847f8eSopenharmony_ci     *
66961847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera preview output.
67061847f8eSopenharmony_ci     * @returns { PreviewOutput } The PreviewOutput instance.
67161847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
67261847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
67361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
67461847f8eSopenharmony_ci     * @since 12
67561847f8eSopenharmony_ci     */
67661847f8eSopenharmony_ci    createPreviewOutput(surfaceId: string): PreviewOutput;
67761847f8eSopenharmony_ci
67861847f8eSopenharmony_ci    /**
67961847f8eSopenharmony_ci     * Creates a PhotoOutput instance.
68061847f8eSopenharmony_ci     *
68161847f8eSopenharmony_ci     * @param { Profile } profile - Photo output profile.
68261847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera photo output.
68361847f8eSopenharmony_ci     * @returns { PhotoOutput } The PhotoOutput instance.
68461847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
68561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
68661847f8eSopenharmony_ci     * @since 10
68761847f8eSopenharmony_ci     * @deprecated since 11
68861847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.CameraManager#createPhotoOutput
68961847f8eSopenharmony_ci     */
69061847f8eSopenharmony_ci    createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput;
69161847f8eSopenharmony_ci
69261847f8eSopenharmony_ci    /**
69361847f8eSopenharmony_ci     * Creates a PhotoOutput instance without surfaceId.
69461847f8eSopenharmony_ci     * Call PhotoOutput capture interface will give a callback,
69561847f8eSopenharmony_ci     * {@link on(type: 'photoAvailable', callback: AsyncCallback<Photo>)}
69661847f8eSopenharmony_ci     *
69761847f8eSopenharmony_ci     * @param { Profile } profile - Photo output profile.
69861847f8eSopenharmony_ci     * @returns { PhotoOutput } The PhotoOutput instance.
69961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
70061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
70161847f8eSopenharmony_ci     * @since 11
70261847f8eSopenharmony_ci     */
70361847f8eSopenharmony_ci    /**
70461847f8eSopenharmony_ci     * Creates a PhotoOutput instance without surfaceId.
70561847f8eSopenharmony_ci     * Call PhotoOutput capture interface will give a callback,
70661847f8eSopenharmony_ci     * {@link on(type: 'photoAvailable', callback: AsyncCallback<Photo>)}
70761847f8eSopenharmony_ci     * You can use this method to create a photo output instance without a profile, This instance can
70861847f8eSopenharmony_ci     * only be used in a preconfiged session.
70961847f8eSopenharmony_ci     *
71061847f8eSopenharmony_ci     * @param { Profile } profile - Photo output profile.
71161847f8eSopenharmony_ci     * @returns { PhotoOutput } The PhotoOutput instance.
71261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
71361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
71461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
71561847f8eSopenharmony_ci     * @since 12
71661847f8eSopenharmony_ci     */
71761847f8eSopenharmony_ci    createPhotoOutput(profile?: Profile): PhotoOutput;
71861847f8eSopenharmony_ci
71961847f8eSopenharmony_ci    /**
72061847f8eSopenharmony_ci     * Creates a VideoOutput instance.
72161847f8eSopenharmony_ci     *
72261847f8eSopenharmony_ci     * @param { VideoProfile } profile - Video profile.
72361847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera video output.
72461847f8eSopenharmony_ci     * @returns { VideoOutput } The VideoOutput instance.
72561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
72661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
72761847f8eSopenharmony_ci     * @since 10
72861847f8eSopenharmony_ci     */
72961847f8eSopenharmony_ci    /**
73061847f8eSopenharmony_ci     * Creates a VideoOutput instance.
73161847f8eSopenharmony_ci     *
73261847f8eSopenharmony_ci     * @param { VideoProfile } profile - Video profile.
73361847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera video output.
73461847f8eSopenharmony_ci     * @returns { VideoOutput } The VideoOutput instance.
73561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
73661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
73761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
73861847f8eSopenharmony_ci     * @since 12
73961847f8eSopenharmony_ci     */
74061847f8eSopenharmony_ci    createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput;
74161847f8eSopenharmony_ci
74261847f8eSopenharmony_ci    /**
74361847f8eSopenharmony_ci     * Creates a VideoOutput instance without profile.
74461847f8eSopenharmony_ci     * You can use this method to create a video output instance without a profile, This instance can
74561847f8eSopenharmony_ci     * only be used in a preconfiged session.
74661847f8eSopenharmony_ci     *
74761847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera video output.
74861847f8eSopenharmony_ci     * @returns { VideoOutput } The VideoOutput instance.
74961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
75061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
75161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
75261847f8eSopenharmony_ci     * @since 12
75361847f8eSopenharmony_ci     */
75461847f8eSopenharmony_ci    createVideoOutput(surfaceId: string): VideoOutput;
75561847f8eSopenharmony_ci
75661847f8eSopenharmony_ci    /**
75761847f8eSopenharmony_ci     * Creates a MetadataOutput instance.
75861847f8eSopenharmony_ci     *
75961847f8eSopenharmony_ci     * @param { Array<MetadataObjectType> } metadataObjectTypes - Array of MetadataObjectType.
76061847f8eSopenharmony_ci     * @returns { MetadataOutput } The MetadataOutput instance.
76161847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
76261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
76361847f8eSopenharmony_ci     * @since 10
76461847f8eSopenharmony_ci     */
76561847f8eSopenharmony_ci    /**
76661847f8eSopenharmony_ci     * Creates a MetadataOutput instance.
76761847f8eSopenharmony_ci     *
76861847f8eSopenharmony_ci     * @param { Array<MetadataObjectType> } metadataObjectTypes - Array of MetadataObjectType.
76961847f8eSopenharmony_ci     * @returns { MetadataOutput } The MetadataOutput instance.
77061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
77161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
77261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
77361847f8eSopenharmony_ci     * @since 12
77461847f8eSopenharmony_ci     */
77561847f8eSopenharmony_ci    createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>): MetadataOutput;
77661847f8eSopenharmony_ci
77761847f8eSopenharmony_ci    /**
77861847f8eSopenharmony_ci     * Creates a DepthDataOutput instance.
77961847f8eSopenharmony_ci     *
78061847f8eSopenharmony_ci     * @param { DepthProfile } profile - Depth data profile.
78161847f8eSopenharmony_ci     * @returns { DepthDataOutput } The DepthDataOutput instance.
78261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
78361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
78461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
78561847f8eSopenharmony_ci     * @systemapi
78661847f8eSopenharmony_ci     * @since 13
78761847f8eSopenharmony_ci     */
78861847f8eSopenharmony_ci    createDepthDataOutput(profile: DepthProfile): DepthDataOutput;
78961847f8eSopenharmony_ci
79061847f8eSopenharmony_ci    /**
79161847f8eSopenharmony_ci     * Gets a CaptureSession instance.
79261847f8eSopenharmony_ci     *
79361847f8eSopenharmony_ci     * @returns { CaptureSession } The CaptureSession instance.
79461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
79561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
79661847f8eSopenharmony_ci     * @since 10
79761847f8eSopenharmony_ci     * @deprecated since 11
79861847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.CameraManager#createSession
79961847f8eSopenharmony_ci     */
80061847f8eSopenharmony_ci    createCaptureSession(): CaptureSession;
80161847f8eSopenharmony_ci
80261847f8eSopenharmony_ci    /**
80361847f8eSopenharmony_ci     * Gets a Session instance by specific scene mode.
80461847f8eSopenharmony_ci     *
80561847f8eSopenharmony_ci     * @param { SceneMode } mode - Scene mode.
80661847f8eSopenharmony_ci     * @returns { T } The specific Session instance by specific scene mode.
80761847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes:
80861847f8eSopenharmony_ci     * 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types;
80961847f8eSopenharmony_ci     * 3. Parameter verification failed.
81061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
81161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
81261847f8eSopenharmony_ci     * @since 11
81361847f8eSopenharmony_ci     */
81461847f8eSopenharmony_ci    createSession<T extends Session>(mode: SceneMode): T;
81561847f8eSopenharmony_ci
81661847f8eSopenharmony_ci    /**
81761847f8eSopenharmony_ci     * Subscribes camera status change event callback.
81861847f8eSopenharmony_ci     *
81961847f8eSopenharmony_ci     * @param { 'cameraStatus' } type - Event type.
82061847f8eSopenharmony_ci     * @param { AsyncCallback<CameraStatusInfo> } callback - Callback used to get the camera status change.
82161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
82261847f8eSopenharmony_ci     * @since 10
82361847f8eSopenharmony_ci     */
82461847f8eSopenharmony_ci    on(type: 'cameraStatus', callback: AsyncCallback<CameraStatusInfo>): void;
82561847f8eSopenharmony_ci
82661847f8eSopenharmony_ci    /**
82761847f8eSopenharmony_ci     * Unsubscribes from camera status change event callback.
82861847f8eSopenharmony_ci     *
82961847f8eSopenharmony_ci     * @param { 'cameraStatus' } type - Event type.
83061847f8eSopenharmony_ci     * @param { AsyncCallback<CameraStatusInfo> } callback - Callback used to get the camera status change.
83161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
83261847f8eSopenharmony_ci     * @since 10
83361847f8eSopenharmony_ci     */
83461847f8eSopenharmony_ci    off(type: 'cameraStatus', callback?: AsyncCallback<CameraStatusInfo>): void;
83561847f8eSopenharmony_ci
83661847f8eSopenharmony_ci    /**
83761847f8eSopenharmony_ci     * Subscribes fold status change event callback.
83861847f8eSopenharmony_ci     *
83961847f8eSopenharmony_ci     * @param { 'foldStatusChanged' } type - Event type.
84061847f8eSopenharmony_ci     * @param { AsyncCallback<FoldStatusInfo> } callback - Callback used to get the fold status change.
84161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
84261847f8eSopenharmony_ci     * @since 12
84361847f8eSopenharmony_ci     */
84461847f8eSopenharmony_ci    on(type: 'foldStatusChange', callback: AsyncCallback<FoldStatusInfo>): void;
84561847f8eSopenharmony_ci
84661847f8eSopenharmony_ci    /**
84761847f8eSopenharmony_ci     * Unsubscribes from fold status change event callback.
84861847f8eSopenharmony_ci     *
84961847f8eSopenharmony_ci     * @param { 'foldStatusChanged' } type - Event type.
85061847f8eSopenharmony_ci     * @param { AsyncCallback<FoldStatusInfo> } callback - Callback used to get the fold status change.
85161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
85261847f8eSopenharmony_ci     * @since 12
85361847f8eSopenharmony_ci     */
85461847f8eSopenharmony_ci    off(type: 'foldStatusChange', callback?: AsyncCallback<FoldStatusInfo>): void;
85561847f8eSopenharmony_ci
85661847f8eSopenharmony_ci    /**
85761847f8eSopenharmony_ci     * Subscribes camera mute change event callback.
85861847f8eSopenharmony_ci     *
85961847f8eSopenharmony_ci     * @param { 'cameraMute' } type - Event type.
86061847f8eSopenharmony_ci     * @param { AsyncCallback<boolean> } callback - Callback used to get the camera mute change.
86161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
86261847f8eSopenharmony_ci     * @systemapi
86361847f8eSopenharmony_ci     * @since 10
86461847f8eSopenharmony_ci     */
86561847f8eSopenharmony_ci    /**
86661847f8eSopenharmony_ci     * Subscribes camera mute change event callback.
86761847f8eSopenharmony_ci     *
86861847f8eSopenharmony_ci     * @param { 'cameraMute' } type - Event type.
86961847f8eSopenharmony_ci     * @param { AsyncCallback<boolean> } callback - Callback used to get the camera mute change.
87061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
87161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
87261847f8eSopenharmony_ci     * @systemapi
87361847f8eSopenharmony_ci     * @since 12
87461847f8eSopenharmony_ci     */
87561847f8eSopenharmony_ci    on(type: 'cameraMute', callback: AsyncCallback<boolean>): void;
87661847f8eSopenharmony_ci
87761847f8eSopenharmony_ci    /**
87861847f8eSopenharmony_ci     * Unsubscribes from camera mute change event callback.
87961847f8eSopenharmony_ci     *
88061847f8eSopenharmony_ci     * @param { 'cameraMute' } type - Event type.
88161847f8eSopenharmony_ci     * @param { AsyncCallback<boolean> } callback - Callback used to get the camera mute change.
88261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
88361847f8eSopenharmony_ci     * @systemapi
88461847f8eSopenharmony_ci     * @since 10
88561847f8eSopenharmony_ci     */
88661847f8eSopenharmony_ci    /**
88761847f8eSopenharmony_ci     * Unsubscribes from camera mute change event callback.
88861847f8eSopenharmony_ci     *
88961847f8eSopenharmony_ci     * @param { 'cameraMute' } type - Event type.
89061847f8eSopenharmony_ci     * @param { AsyncCallback<boolean> } callback - Callback used to get the camera mute change.
89161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
89261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
89361847f8eSopenharmony_ci     * @systemapi
89461847f8eSopenharmony_ci     * @since 12
89561847f8eSopenharmony_ci     */
89661847f8eSopenharmony_ci    off(type: 'cameraMute', callback?: AsyncCallback<boolean>): void;
89761847f8eSopenharmony_ci
89861847f8eSopenharmony_ci    /**
89961847f8eSopenharmony_ci     * Determines whether the camera device supports prelaunch.
90061847f8eSopenharmony_ci     * This function must be called in prior to the setPrelaunchConfig and prelaunch functions.
90161847f8eSopenharmony_ci     *
90261847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device.
90361847f8eSopenharmony_ci     * @returns { boolean } Whether prelaunch is supported.
90461847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
90561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
90661847f8eSopenharmony_ci     * @systemapi
90761847f8eSopenharmony_ci     * @since 10
90861847f8eSopenharmony_ci     */
90961847f8eSopenharmony_ci    /**
91061847f8eSopenharmony_ci     * Determines whether the camera device supports prelaunch.
91161847f8eSopenharmony_ci     * This function must be called in prior to the setPrelaunchConfig and prelaunch functions.
91261847f8eSopenharmony_ci     *
91361847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device.
91461847f8eSopenharmony_ci     * @returns { boolean } Whether prelaunch is supported.
91561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
91661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
91761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
91861847f8eSopenharmony_ci     * @systemapi
91961847f8eSopenharmony_ci     * @since 12
92061847f8eSopenharmony_ci     */
92161847f8eSopenharmony_ci    isPrelaunchSupported(camera: CameraDevice): boolean;
92261847f8eSopenharmony_ci
92361847f8eSopenharmony_ci    /**
92461847f8eSopenharmony_ci     * Sets the camera prelaunch configuration.
92561847f8eSopenharmony_ci     * The configuration is sent to the camera service when you exit the camera or change the configuration next time.
92661847f8eSopenharmony_ci     *
92761847f8eSopenharmony_ci     * @permission ohos.permission.CAMERA
92861847f8eSopenharmony_ci     * @param { PrelaunchConfig } prelaunchConfig - Prelaunch configuration info.
92961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
93061847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
93161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
93261847f8eSopenharmony_ci     * @systemapi
93361847f8eSopenharmony_ci     * @since 10
93461847f8eSopenharmony_ci     */
93561847f8eSopenharmony_ci    /**
93661847f8eSopenharmony_ci     * Sets the camera prelaunch configuration.
93761847f8eSopenharmony_ci     * The configuration is sent to the camera service when you exit the camera or change the configuration next time.
93861847f8eSopenharmony_ci     *
93961847f8eSopenharmony_ci     * @permission ohos.permission.CAMERA
94061847f8eSopenharmony_ci     * @param { PrelaunchConfig } prelaunchConfig - Prelaunch configuration info.
94161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
94261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
94361847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
94461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
94561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
94661847f8eSopenharmony_ci     * @systemapi
94761847f8eSopenharmony_ci     * @since 12
94861847f8eSopenharmony_ci     */
94961847f8eSopenharmony_ci    setPrelaunchConfig(prelaunchConfig: PrelaunchConfig): void;
95061847f8eSopenharmony_ci
95161847f8eSopenharmony_ci    /**
95261847f8eSopenharmony_ci     * Enable the camera to prelaunch and start.
95361847f8eSopenharmony_ci     * This function is called when the user clicks the system camera icon to start the camera application.
95461847f8eSopenharmony_ci     *
95561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
95661847f8eSopenharmony_ci     * @systemapi
95761847f8eSopenharmony_ci     * @since 10
95861847f8eSopenharmony_ci     */
95961847f8eSopenharmony_ci    /**
96061847f8eSopenharmony_ci     * Enable the camera to prelaunch and start.
96161847f8eSopenharmony_ci     * This function is called when the user clicks the system camera icon to start the camera application.
96261847f8eSopenharmony_ci     *
96361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
96461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
96561847f8eSopenharmony_ci     * @systemapi
96661847f8eSopenharmony_ci     * @since 12
96761847f8eSopenharmony_ci     */
96861847f8eSopenharmony_ci    prelaunch(): void;
96961847f8eSopenharmony_ci
97061847f8eSopenharmony_ci    /**
97161847f8eSopenharmony_ci     * Prepare the camera resources.
97261847f8eSopenharmony_ci     * This function is called when the user touch down the camera switch icon in camera application.
97361847f8eSopenharmony_ci     *
97461847f8eSopenharmony_ci     * @param { string } cameraId - The camera to prepare.
97561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
97661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
97761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
97861847f8eSopenharmony_ci     * @systemapi
97961847f8eSopenharmony_ci     * @since 11
98061847f8eSopenharmony_ci     */
98161847f8eSopenharmony_ci    /**
98261847f8eSopenharmony_ci     * Prepare the camera resources.
98361847f8eSopenharmony_ci     * This function is called when the user touch down the camera switch icon in camera application.
98461847f8eSopenharmony_ci     *
98561847f8eSopenharmony_ci     * @param { string } cameraId - The camera to prepare.
98661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
98761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
98861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
98961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
99061847f8eSopenharmony_ci     * @systemapi
99161847f8eSopenharmony_ci     * @since 12
99261847f8eSopenharmony_ci     */
99361847f8eSopenharmony_ci    preSwitchCamera(cameraId: string): void;
99461847f8eSopenharmony_ci
99561847f8eSopenharmony_ci    /**
99661847f8eSopenharmony_ci     * Creates a deferred PreviewOutput instance.
99761847f8eSopenharmony_ci     *
99861847f8eSopenharmony_ci     * @param { Profile } profile - Preview output profile.
99961847f8eSopenharmony_ci     * @returns { PreviewOutput } the PreviewOutput instance.
100061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
100161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
100261847f8eSopenharmony_ci     * @systemapi
100361847f8eSopenharmony_ci     * @since 10
100461847f8eSopenharmony_ci     */
100561847f8eSopenharmony_ci    /**
100661847f8eSopenharmony_ci     * Creates a deferred PreviewOutput instance.
100761847f8eSopenharmony_ci     * You can use the method to create deferred preview output without profile, then you must add this output
100861847f8eSopenharmony_ci     * to a session which already preconfiged.
100961847f8eSopenharmony_ci     *
101061847f8eSopenharmony_ci     * @param { Profile } profile - Preview output profile.
101161847f8eSopenharmony_ci     * @returns { PreviewOutput } the PreviewOutput instance.
101261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
101361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
101461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
101561847f8eSopenharmony_ci     * @systemapi
101661847f8eSopenharmony_ci     * @since 12
101761847f8eSopenharmony_ci     */
101861847f8eSopenharmony_ci    createDeferredPreviewOutput(profile?: Profile): PreviewOutput;
101961847f8eSopenharmony_ci
102061847f8eSopenharmony_ci    /**
102161847f8eSopenharmony_ci     * Check if the device has a torch.
102261847f8eSopenharmony_ci     *
102361847f8eSopenharmony_ci     * @returns { boolean } this value that specifies whether the device has a torch.
102461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
102561847f8eSopenharmony_ci     * @since 11
102661847f8eSopenharmony_ci     */
102761847f8eSopenharmony_ci    isTorchSupported(): boolean;
102861847f8eSopenharmony_ci
102961847f8eSopenharmony_ci    /**
103061847f8eSopenharmony_ci     * Check if a specifies torch mode is supported.
103161847f8eSopenharmony_ci     * @param { TorchMode } mode - torch mode.
103261847f8eSopenharmony_ci     * @returns { boolean } is torch mode supported.
103361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
103461847f8eSopenharmony_ci     * @since 11
103561847f8eSopenharmony_ci     */
103661847f8eSopenharmony_ci    isTorchModeSupported(mode: TorchMode): boolean;
103761847f8eSopenharmony_ci
103861847f8eSopenharmony_ci    /**
103961847f8eSopenharmony_ci     * Get current torch mode.
104061847f8eSopenharmony_ci     *
104161847f8eSopenharmony_ci     * @returns { TorchMode } torch mode.
104261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
104361847f8eSopenharmony_ci     * @since 11
104461847f8eSopenharmony_ci     */
104561847f8eSopenharmony_ci    getTorchMode(): TorchMode;
104661847f8eSopenharmony_ci
104761847f8eSopenharmony_ci    /**
104861847f8eSopenharmony_ci     * Set torch mode to the device.
104961847f8eSopenharmony_ci     *
105061847f8eSopenharmony_ci     * @param { TorchMode } mode - torch mode.
105161847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
105261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
105361847f8eSopenharmony_ci     * @since 11
105461847f8eSopenharmony_ci     */
105561847f8eSopenharmony_ci    /**
105661847f8eSopenharmony_ci     * Set torch mode to the device.
105761847f8eSopenharmony_ci     *
105861847f8eSopenharmony_ci     * @param { TorchMode } mode - torch mode.
105961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
106061847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
106161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
106261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
106361847f8eSopenharmony_ci     * @since 12
106461847f8eSopenharmony_ci     */
106561847f8eSopenharmony_ci    setTorchMode(mode: TorchMode): void;
106661847f8eSopenharmony_ci
106761847f8eSopenharmony_ci    /**
106861847f8eSopenharmony_ci     * Subscribes torch status change event callback.
106961847f8eSopenharmony_ci     *
107061847f8eSopenharmony_ci     * @param { 'torchStatusChange' } type - Event type
107161847f8eSopenharmony_ci     * @param { AsyncCallback<TorchStatusInfo> } callback - Callback used to return the torch status change
107261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
107361847f8eSopenharmony_ci     * @since 11
107461847f8eSopenharmony_ci     */
107561847f8eSopenharmony_ci    on(type: 'torchStatusChange', callback: AsyncCallback<TorchStatusInfo>): void;
107661847f8eSopenharmony_ci
107761847f8eSopenharmony_ci    /**
107861847f8eSopenharmony_ci     * Unsubscribes torch status change event callback.
107961847f8eSopenharmony_ci     *
108061847f8eSopenharmony_ci     * @param { 'torchStatusChange' } type - Event type
108161847f8eSopenharmony_ci     * @param { AsyncCallback<TorchStatusInfo> } callback - Callback used to return the torch status change
108261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
108361847f8eSopenharmony_ci     * @since 11
108461847f8eSopenharmony_ci     */
108561847f8eSopenharmony_ci    off(type: 'torchStatusChange', callback?: AsyncCallback<TorchStatusInfo>): void;
108661847f8eSopenharmony_ci  }
108761847f8eSopenharmony_ci
108861847f8eSopenharmony_ci  /**
108961847f8eSopenharmony_ci   * Torch status info.
109061847f8eSopenharmony_ci   *
109161847f8eSopenharmony_ci   * @typedef TorchStatusInfo
109261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
109361847f8eSopenharmony_ci   * @since 11
109461847f8eSopenharmony_ci   */
109561847f8eSopenharmony_ci  interface TorchStatusInfo {
109661847f8eSopenharmony_ci    /**
109761847f8eSopenharmony_ci     * is torch available
109861847f8eSopenharmony_ci     *
109961847f8eSopenharmony_ci     * @type { boolean }
110061847f8eSopenharmony_ci     * @readonly
110161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
110261847f8eSopenharmony_ci     * @since 11
110361847f8eSopenharmony_ci     */
110461847f8eSopenharmony_ci    readonly isTorchAvailable: boolean;
110561847f8eSopenharmony_ci
110661847f8eSopenharmony_ci    /**
110761847f8eSopenharmony_ci     * is torch active
110861847f8eSopenharmony_ci     *
110961847f8eSopenharmony_ci     * @type { boolean }
111061847f8eSopenharmony_ci     * @readonly
111161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
111261847f8eSopenharmony_ci     * @since 11
111361847f8eSopenharmony_ci     */
111461847f8eSopenharmony_ci    readonly isTorchActive: boolean;
111561847f8eSopenharmony_ci
111661847f8eSopenharmony_ci    /**
111761847f8eSopenharmony_ci     * the current torch brightness level.
111861847f8eSopenharmony_ci     *
111961847f8eSopenharmony_ci     * @type { number }
112061847f8eSopenharmony_ci     * @readonly
112161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
112261847f8eSopenharmony_ci     * @since 11
112361847f8eSopenharmony_ci     */
112461847f8eSopenharmony_ci    readonly torchLevel: number;
112561847f8eSopenharmony_ci  }
112661847f8eSopenharmony_ci
112761847f8eSopenharmony_ci  /**
112861847f8eSopenharmony_ci   * Enum for torch mode.
112961847f8eSopenharmony_ci   *
113061847f8eSopenharmony_ci   * @enum { number }
113161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
113261847f8eSopenharmony_ci   * @since 11
113361847f8eSopenharmony_ci   */
113461847f8eSopenharmony_ci  enum TorchMode {
113561847f8eSopenharmony_ci    /**
113661847f8eSopenharmony_ci     * The device torch is always off.
113761847f8eSopenharmony_ci     *
113861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
113961847f8eSopenharmony_ci     * @since 11
114061847f8eSopenharmony_ci     */
114161847f8eSopenharmony_ci    OFF = 0,
114261847f8eSopenharmony_ci
114361847f8eSopenharmony_ci    /**
114461847f8eSopenharmony_ci     * The device torch is always on.
114561847f8eSopenharmony_ci     *
114661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
114761847f8eSopenharmony_ci     * @since 11
114861847f8eSopenharmony_ci     */
114961847f8eSopenharmony_ci    ON = 1,
115061847f8eSopenharmony_ci
115161847f8eSopenharmony_ci    /**
115261847f8eSopenharmony_ci     * The device continuously monitors light levels and uses the torch when necessary.
115361847f8eSopenharmony_ci     *
115461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
115561847f8eSopenharmony_ci     * @since 11
115661847f8eSopenharmony_ci     */
115761847f8eSopenharmony_ci    AUTO = 2
115861847f8eSopenharmony_ci  }
115961847f8eSopenharmony_ci
116061847f8eSopenharmony_ci  /**
116161847f8eSopenharmony_ci   * Camera status info.
116261847f8eSopenharmony_ci   *
116361847f8eSopenharmony_ci   * @typedef CameraStatusInfo
116461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
116561847f8eSopenharmony_ci   * @since 10
116661847f8eSopenharmony_ci   */
116761847f8eSopenharmony_ci  interface CameraStatusInfo {
116861847f8eSopenharmony_ci    /**
116961847f8eSopenharmony_ci     * Camera instance.
117061847f8eSopenharmony_ci     *
117161847f8eSopenharmony_ci     * @type { CameraDevice }
117261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
117361847f8eSopenharmony_ci     * @since 10
117461847f8eSopenharmony_ci     */
117561847f8eSopenharmony_ci    camera: CameraDevice;
117661847f8eSopenharmony_ci
117761847f8eSopenharmony_ci    /**
117861847f8eSopenharmony_ci     * Current camera status.
117961847f8eSopenharmony_ci     *
118061847f8eSopenharmony_ci     * @type { CameraStatus }
118161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
118261847f8eSopenharmony_ci     * @since 10
118361847f8eSopenharmony_ci     */
118461847f8eSopenharmony_ci    status: CameraStatus;
118561847f8eSopenharmony_ci  }
118661847f8eSopenharmony_ci
118761847f8eSopenharmony_ci  /**
118861847f8eSopenharmony_ci   * Fold status info.
118961847f8eSopenharmony_ci   *
119061847f8eSopenharmony_ci   * @typedef FoldStatusInfo
119161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
119261847f8eSopenharmony_ci   * @since 12
119361847f8eSopenharmony_ci   */
119461847f8eSopenharmony_ci  interface FoldStatusInfo {
119561847f8eSopenharmony_ci    /**
119661847f8eSopenharmony_ci     * Gets supported camera devices under the current fold status.
119761847f8eSopenharmony_ci     *
119861847f8eSopenharmony_ci     * @type { Array<CameraDevice> }
119961847f8eSopenharmony_ci     * @readonly
120061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
120161847f8eSopenharmony_ci     * @since 12
120261847f8eSopenharmony_ci     */
120361847f8eSopenharmony_ci    readonly supportedCameras: Array<CameraDevice>;
120461847f8eSopenharmony_ci
120561847f8eSopenharmony_ci    /**
120661847f8eSopenharmony_ci     * Current fold status.
120761847f8eSopenharmony_ci     *
120861847f8eSopenharmony_ci     * @type { FoldStatus }
120961847f8eSopenharmony_ci     * @readonly
121061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
121161847f8eSopenharmony_ci     * @since 12
121261847f8eSopenharmony_ci     */
121361847f8eSopenharmony_ci    readonly foldStatus: FoldStatus;
121461847f8eSopenharmony_ci  }
121561847f8eSopenharmony_ci
121661847f8eSopenharmony_ci  /**
121761847f8eSopenharmony_ci   * Enum for camera position.
121861847f8eSopenharmony_ci   *
121961847f8eSopenharmony_ci   * @enum { number }
122061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
122161847f8eSopenharmony_ci   * @since 10
122261847f8eSopenharmony_ci   */
122361847f8eSopenharmony_ci  /**
122461847f8eSopenharmony_ci   * Enum for camera position.
122561847f8eSopenharmony_ci   *
122661847f8eSopenharmony_ci   * @enum { number }
122761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
122861847f8eSopenharmony_ci   * @atomicservice
122961847f8eSopenharmony_ci   * @since 12
123061847f8eSopenharmony_ci   */
123161847f8eSopenharmony_ci  enum CameraPosition {
123261847f8eSopenharmony_ci    /**
123361847f8eSopenharmony_ci     * Unspecified position.
123461847f8eSopenharmony_ci     *
123561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
123661847f8eSopenharmony_ci     * @since 10
123761847f8eSopenharmony_ci     */
123861847f8eSopenharmony_ci    /**
123961847f8eSopenharmony_ci     * Unspecified position.
124061847f8eSopenharmony_ci     *
124161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
124261847f8eSopenharmony_ci     * @atomicservice
124361847f8eSopenharmony_ci     * @since 12
124461847f8eSopenharmony_ci     */
124561847f8eSopenharmony_ci    CAMERA_POSITION_UNSPECIFIED = 0,
124661847f8eSopenharmony_ci
124761847f8eSopenharmony_ci    /**
124861847f8eSopenharmony_ci     * Back position.
124961847f8eSopenharmony_ci     *
125061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
125161847f8eSopenharmony_ci     * @since 10
125261847f8eSopenharmony_ci     */
125361847f8eSopenharmony_ci    /**
125461847f8eSopenharmony_ci     * Back position.
125561847f8eSopenharmony_ci     *
125661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
125761847f8eSopenharmony_ci     * @atomicservice
125861847f8eSopenharmony_ci     * @since 12
125961847f8eSopenharmony_ci     */
126061847f8eSopenharmony_ci    CAMERA_POSITION_BACK = 1,
126161847f8eSopenharmony_ci
126261847f8eSopenharmony_ci    /**
126361847f8eSopenharmony_ci     * Front position.
126461847f8eSopenharmony_ci     *
126561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
126661847f8eSopenharmony_ci     * @since 10
126761847f8eSopenharmony_ci     */
126861847f8eSopenharmony_ci    /**
126961847f8eSopenharmony_ci     * Front position.
127061847f8eSopenharmony_ci     *
127161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
127261847f8eSopenharmony_ci     * @atomicservice
127361847f8eSopenharmony_ci     * @since 12
127461847f8eSopenharmony_ci     */
127561847f8eSopenharmony_ci    CAMERA_POSITION_FRONT = 2,
127661847f8eSopenharmony_ci
127761847f8eSopenharmony_ci    /**
127861847f8eSopenharmony_ci     * Camera that is inner position when the device is folded.
127961847f8eSopenharmony_ci     *
128061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
128161847f8eSopenharmony_ci     * @since 11
128261847f8eSopenharmony_ci     */
128361847f8eSopenharmony_ci    /**
128461847f8eSopenharmony_ci     * Camera that is inner position when the device is folded.
128561847f8eSopenharmony_ci     *
128661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
128761847f8eSopenharmony_ci     * @atomicservice
128861847f8eSopenharmony_ci     * @since 12
128961847f8eSopenharmony_ci     * @deprecated since 12
129061847f8eSopenharmony_ci     */
129161847f8eSopenharmony_ci    CAMERA_POSITION_FOLD_INNER = 3
129261847f8eSopenharmony_ci  }
129361847f8eSopenharmony_ci
129461847f8eSopenharmony_ci  /**
129561847f8eSopenharmony_ci   * Enum for camera type.
129661847f8eSopenharmony_ci   *
129761847f8eSopenharmony_ci   * @enum { number }
129861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
129961847f8eSopenharmony_ci   * @since 10
130061847f8eSopenharmony_ci   */
130161847f8eSopenharmony_ci  enum CameraType {
130261847f8eSopenharmony_ci    /**
130361847f8eSopenharmony_ci     * Default camera type
130461847f8eSopenharmony_ci     *
130561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
130661847f8eSopenharmony_ci     * @since 10
130761847f8eSopenharmony_ci     */
130861847f8eSopenharmony_ci    CAMERA_TYPE_DEFAULT = 0,
130961847f8eSopenharmony_ci
131061847f8eSopenharmony_ci    /**
131161847f8eSopenharmony_ci     * Wide camera
131261847f8eSopenharmony_ci     *
131361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
131461847f8eSopenharmony_ci     * @since 10
131561847f8eSopenharmony_ci     */
131661847f8eSopenharmony_ci    CAMERA_TYPE_WIDE_ANGLE = 1,
131761847f8eSopenharmony_ci
131861847f8eSopenharmony_ci    /**
131961847f8eSopenharmony_ci     * Ultra wide camera
132061847f8eSopenharmony_ci     *
132161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
132261847f8eSopenharmony_ci     * @since 10
132361847f8eSopenharmony_ci     */
132461847f8eSopenharmony_ci    CAMERA_TYPE_ULTRA_WIDE = 2,
132561847f8eSopenharmony_ci
132661847f8eSopenharmony_ci    /**
132761847f8eSopenharmony_ci     * Telephoto camera
132861847f8eSopenharmony_ci     *
132961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
133061847f8eSopenharmony_ci     * @since 10
133161847f8eSopenharmony_ci     */
133261847f8eSopenharmony_ci    CAMERA_TYPE_TELEPHOTO = 3,
133361847f8eSopenharmony_ci
133461847f8eSopenharmony_ci    /**
133561847f8eSopenharmony_ci     * True depth camera
133661847f8eSopenharmony_ci     *
133761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
133861847f8eSopenharmony_ci     * @since 10
133961847f8eSopenharmony_ci     */
134061847f8eSopenharmony_ci    CAMERA_TYPE_TRUE_DEPTH = 4
134161847f8eSopenharmony_ci  }
134261847f8eSopenharmony_ci
134361847f8eSopenharmony_ci  /**
134461847f8eSopenharmony_ci   * Enum for camera connection type.
134561847f8eSopenharmony_ci   *
134661847f8eSopenharmony_ci   * @enum { number }
134761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
134861847f8eSopenharmony_ci   * @since 10
134961847f8eSopenharmony_ci   */
135061847f8eSopenharmony_ci  enum ConnectionType {
135161847f8eSopenharmony_ci    /**
135261847f8eSopenharmony_ci     * Built-in camera.
135361847f8eSopenharmony_ci     *
135461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
135561847f8eSopenharmony_ci     * @since 10
135661847f8eSopenharmony_ci     */
135761847f8eSopenharmony_ci    CAMERA_CONNECTION_BUILT_IN = 0,
135861847f8eSopenharmony_ci
135961847f8eSopenharmony_ci    /**
136061847f8eSopenharmony_ci     * Camera connected using USB
136161847f8eSopenharmony_ci     *
136261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
136361847f8eSopenharmony_ci     * @since 10
136461847f8eSopenharmony_ci     */
136561847f8eSopenharmony_ci    CAMERA_CONNECTION_USB_PLUGIN = 1,
136661847f8eSopenharmony_ci
136761847f8eSopenharmony_ci    /**
136861847f8eSopenharmony_ci     * Remote camera
136961847f8eSopenharmony_ci     *
137061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
137161847f8eSopenharmony_ci     * @since 10
137261847f8eSopenharmony_ci     */
137361847f8eSopenharmony_ci    CAMERA_CONNECTION_REMOTE = 2
137461847f8eSopenharmony_ci  }
137561847f8eSopenharmony_ci
137661847f8eSopenharmony_ci  /**
137761847f8eSopenharmony_ci   * Enum for remote camera device type.
137861847f8eSopenharmony_ci   *
137961847f8eSopenharmony_ci   * @enum { number }
138061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
138161847f8eSopenharmony_ci   * @systemapi
138261847f8eSopenharmony_ci   * @since 10
138361847f8eSopenharmony_ci   */
138461847f8eSopenharmony_ci  enum HostDeviceType {
138561847f8eSopenharmony_ci    /**
138661847f8eSopenharmony_ci     * Indicates an unknown device camera.
138761847f8eSopenharmony_ci     *
138861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
138961847f8eSopenharmony_ci     * @systemapi
139061847f8eSopenharmony_ci     * @since 10
139161847f8eSopenharmony_ci     */
139261847f8eSopenharmony_ci    UNKNOWN_TYPE = 0,
139361847f8eSopenharmony_ci
139461847f8eSopenharmony_ci    /**
139561847f8eSopenharmony_ci     * Indicates a smartphone camera.
139661847f8eSopenharmony_ci     *
139761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
139861847f8eSopenharmony_ci     * @systemapi
139961847f8eSopenharmony_ci     * @since 10
140061847f8eSopenharmony_ci     */
140161847f8eSopenharmony_ci    PHONE = 0x0E,
140261847f8eSopenharmony_ci
140361847f8eSopenharmony_ci    /**
140461847f8eSopenharmony_ci     * Indicates a tablet camera.
140561847f8eSopenharmony_ci     *
140661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
140761847f8eSopenharmony_ci     * @systemapi
140861847f8eSopenharmony_ci     * @since 10
140961847f8eSopenharmony_ci     */
141061847f8eSopenharmony_ci    TABLET = 0x11
141161847f8eSopenharmony_ci  }
141261847f8eSopenharmony_ci
141361847f8eSopenharmony_ci  /**
141461847f8eSopenharmony_ci   * Camera device object.
141561847f8eSopenharmony_ci   *
141661847f8eSopenharmony_ci   * @typedef CameraDevice
141761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
141861847f8eSopenharmony_ci   * @since 10
141961847f8eSopenharmony_ci   */
142061847f8eSopenharmony_ci  interface CameraDevice {
142161847f8eSopenharmony_ci    /**
142261847f8eSopenharmony_ci     * Camera id attribute.
142361847f8eSopenharmony_ci     *
142461847f8eSopenharmony_ci     * @type { string }
142561847f8eSopenharmony_ci     * @readonly
142661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
142761847f8eSopenharmony_ci     * @since 10
142861847f8eSopenharmony_ci     */
142961847f8eSopenharmony_ci    readonly cameraId: string;
143061847f8eSopenharmony_ci
143161847f8eSopenharmony_ci    /**
143261847f8eSopenharmony_ci     * Camera position attribute.
143361847f8eSopenharmony_ci     *
143461847f8eSopenharmony_ci     * @type { CameraPosition }
143561847f8eSopenharmony_ci     * @readonly
143661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
143761847f8eSopenharmony_ci     * @since 10
143861847f8eSopenharmony_ci     */
143961847f8eSopenharmony_ci    readonly cameraPosition: CameraPosition;
144061847f8eSopenharmony_ci
144161847f8eSopenharmony_ci    /**
144261847f8eSopenharmony_ci     * Camera type attribute.
144361847f8eSopenharmony_ci     *
144461847f8eSopenharmony_ci     * @type { CameraType }
144561847f8eSopenharmony_ci     * @readonly
144661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
144761847f8eSopenharmony_ci     * @since 10
144861847f8eSopenharmony_ci     */
144961847f8eSopenharmony_ci    readonly cameraType: CameraType;
145061847f8eSopenharmony_ci
145161847f8eSopenharmony_ci    /**
145261847f8eSopenharmony_ci     * Camera connection type attribute.
145361847f8eSopenharmony_ci     *
145461847f8eSopenharmony_ci     * @type { ConnectionType }
145561847f8eSopenharmony_ci     * @readonly
145661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
145761847f8eSopenharmony_ci     * @since 10
145861847f8eSopenharmony_ci     */
145961847f8eSopenharmony_ci    readonly connectionType: ConnectionType;
146061847f8eSopenharmony_ci
146161847f8eSopenharmony_ci    /**
146261847f8eSopenharmony_ci     * Camera remote camera device name attribute.
146361847f8eSopenharmony_ci     *
146461847f8eSopenharmony_ci     * @type { string }
146561847f8eSopenharmony_ci     * @readonly
146661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
146761847f8eSopenharmony_ci     * @systemapi
146861847f8eSopenharmony_ci     * @since 10
146961847f8eSopenharmony_ci     */
147061847f8eSopenharmony_ci    readonly hostDeviceName: string;
147161847f8eSopenharmony_ci
147261847f8eSopenharmony_ci    /**
147361847f8eSopenharmony_ci     * Camera remote camera device type attribute.
147461847f8eSopenharmony_ci     *
147561847f8eSopenharmony_ci     * @type { HostDeviceType }
147661847f8eSopenharmony_ci     * @readonly
147761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
147861847f8eSopenharmony_ci     * @systemapi
147961847f8eSopenharmony_ci     * @since 10
148061847f8eSopenharmony_ci     */
148161847f8eSopenharmony_ci    readonly hostDeviceType: HostDeviceType;
148261847f8eSopenharmony_ci
148361847f8eSopenharmony_ci    /**
148461847f8eSopenharmony_ci     * Camera sensor orientation attribute.
148561847f8eSopenharmony_ci     *
148661847f8eSopenharmony_ci     * @type { number }
148761847f8eSopenharmony_ci     * @readonly
148861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
148961847f8eSopenharmony_ci     * @since 12
149061847f8eSopenharmony_ci     */
149161847f8eSopenharmony_ci    readonly cameraOrientation: number;
149261847f8eSopenharmony_ci  }
149361847f8eSopenharmony_ci
149461847f8eSopenharmony_ci  /**
149561847f8eSopenharmony_ci   * Size parameter.
149661847f8eSopenharmony_ci   *
149761847f8eSopenharmony_ci   * @typedef Size
149861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
149961847f8eSopenharmony_ci   * @since 10
150061847f8eSopenharmony_ci   */
150161847f8eSopenharmony_ci  interface Size {
150261847f8eSopenharmony_ci    /**
150361847f8eSopenharmony_ci     * Height.
150461847f8eSopenharmony_ci     *
150561847f8eSopenharmony_ci     * @type { number }
150661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
150761847f8eSopenharmony_ci     * @since 10
150861847f8eSopenharmony_ci     */
150961847f8eSopenharmony_ci    height: number;
151061847f8eSopenharmony_ci
151161847f8eSopenharmony_ci    /**
151261847f8eSopenharmony_ci     * Width.
151361847f8eSopenharmony_ci     *
151461847f8eSopenharmony_ci     * @type { number }
151561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
151661847f8eSopenharmony_ci     * @since 10
151761847f8eSopenharmony_ci     */
151861847f8eSopenharmony_ci    width: number;
151961847f8eSopenharmony_ci  }
152061847f8eSopenharmony_ci
152161847f8eSopenharmony_ci  /**
152261847f8eSopenharmony_ci   * Point parameter.
152361847f8eSopenharmony_ci   *
152461847f8eSopenharmony_ci   * @typedef Point
152561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
152661847f8eSopenharmony_ci   * @since 10
152761847f8eSopenharmony_ci   */
152861847f8eSopenharmony_ci  interface Point {
152961847f8eSopenharmony_ci    /**
153061847f8eSopenharmony_ci     * x co-ordinate
153161847f8eSopenharmony_ci     *
153261847f8eSopenharmony_ci     * @type { number }
153361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
153461847f8eSopenharmony_ci     * @since 10
153561847f8eSopenharmony_ci     */
153661847f8eSopenharmony_ci    x: number;
153761847f8eSopenharmony_ci
153861847f8eSopenharmony_ci    /**
153961847f8eSopenharmony_ci     * y co-ordinate
154061847f8eSopenharmony_ci     *
154161847f8eSopenharmony_ci     * @type { number }
154261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
154361847f8eSopenharmony_ci     * @since 10
154461847f8eSopenharmony_ci     */
154561847f8eSopenharmony_ci    y: number;
154661847f8eSopenharmony_ci  }
154761847f8eSopenharmony_ci
154861847f8eSopenharmony_ci  /**
154961847f8eSopenharmony_ci   * Camera input object.
155061847f8eSopenharmony_ci   *
155161847f8eSopenharmony_ci   * @interface CameraInput
155261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
155361847f8eSopenharmony_ci   * @since 10
155461847f8eSopenharmony_ci   */
155561847f8eSopenharmony_ci  interface CameraInput {
155661847f8eSopenharmony_ci    /**
155761847f8eSopenharmony_ci     * Open camera.
155861847f8eSopenharmony_ci     *
155961847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
156061847f8eSopenharmony_ci     * @throws { BusinessError } 7400107 - Can not use camera cause of conflict.
156161847f8eSopenharmony_ci     * @throws { BusinessError } 7400108 - Camera disabled cause of security reason.
156261847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
156361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
156461847f8eSopenharmony_ci     * @since 10
156561847f8eSopenharmony_ci     */
156661847f8eSopenharmony_ci    open(callback: AsyncCallback<void>): void;
156761847f8eSopenharmony_ci
156861847f8eSopenharmony_ci    /**
156961847f8eSopenharmony_ci     * Open camera.
157061847f8eSopenharmony_ci     *
157161847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
157261847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
157361847f8eSopenharmony_ci     * @throws { BusinessError } 7400107 - Can not use camera cause of conflict.
157461847f8eSopenharmony_ci     * @throws { BusinessError } 7400108 - Camera disabled cause of security reason.
157561847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
157661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
157761847f8eSopenharmony_ci     * @since 10
157861847f8eSopenharmony_ci     */
157961847f8eSopenharmony_ci    open(): Promise<void>;
158061847f8eSopenharmony_ci
158161847f8eSopenharmony_ci    /**
158261847f8eSopenharmony_ci     * Open camera.
158361847f8eSopenharmony_ci     *
158461847f8eSopenharmony_ci     * @param { boolean } isSecureEnabled - Enable secure camera.
158561847f8eSopenharmony_ci     * @returns { Promise<bigint> } Promise used to return the result.
158661847f8eSopenharmony_ci     * @throws { BusinessError } 7400107 - Can not use camera cause of conflict.
158761847f8eSopenharmony_ci     * @throws { BusinessError } 7400108 - Camera disabled cause of security reason.
158861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
158961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
159061847f8eSopenharmony_ci     * @since 12
159161847f8eSopenharmony_ci     */
159261847f8eSopenharmony_ci    open(isSecureEnabled: boolean): Promise<bigint>;
159361847f8eSopenharmony_ci
159461847f8eSopenharmony_ci    /**
159561847f8eSopenharmony_ci     * Close camera.
159661847f8eSopenharmony_ci     *
159761847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
159861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
159961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
160061847f8eSopenharmony_ci     * @since 10
160161847f8eSopenharmony_ci     */
160261847f8eSopenharmony_ci    close(callback: AsyncCallback<void>): void;
160361847f8eSopenharmony_ci
160461847f8eSopenharmony_ci    /**
160561847f8eSopenharmony_ci     * Close camera.
160661847f8eSopenharmony_ci     *
160761847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
160861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
160961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
161061847f8eSopenharmony_ci     * @since 10
161161847f8eSopenharmony_ci     */
161261847f8eSopenharmony_ci    close(): Promise<void>;
161361847f8eSopenharmony_ci
161461847f8eSopenharmony_ci    /**
161561847f8eSopenharmony_ci     * Subscribes to error events.
161661847f8eSopenharmony_ci     *
161761847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
161861847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device.
161961847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the camera input errors.
162061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
162161847f8eSopenharmony_ci     * @since 10
162261847f8eSopenharmony_ci     */
162361847f8eSopenharmony_ci    on(type: 'error', camera: CameraDevice, callback: ErrorCallback): void;
162461847f8eSopenharmony_ci
162561847f8eSopenharmony_ci    /**
162661847f8eSopenharmony_ci     * Unsubscribes from error events.
162761847f8eSopenharmony_ci     *
162861847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
162961847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device.
163061847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the camera input errors.
163161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
163261847f8eSopenharmony_ci     * @since 10
163361847f8eSopenharmony_ci     */
163461847f8eSopenharmony_ci    off(type: 'error', camera: CameraDevice, callback?: ErrorCallback): void;
163561847f8eSopenharmony_ci
163661847f8eSopenharmony_ci    /**
163761847f8eSopenharmony_ci     * Subscribes to camera occlusion detection results.
163861847f8eSopenharmony_ci     *
163961847f8eSopenharmony_ci     * @param { 'cameraOcclusionDetection' } type - Event type.
164061847f8eSopenharmony_ci     * @param { AsyncCallback<CameraOcclusionDetectionResult> } callback - Callback used to get detection results.
164161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
164261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
164361847f8eSopenharmony_ci     * @systemapi
164461847f8eSopenharmony_ci     * @since 12
164561847f8eSopenharmony_ci     */
164661847f8eSopenharmony_ci    on(type: 'cameraOcclusionDetection', callback: AsyncCallback<CameraOcclusionDetectionResult>): void;
164761847f8eSopenharmony_ci    
164861847f8eSopenharmony_ci    /**
164961847f8eSopenharmony_ci     * Unsubscribes from camera occlusion detection results.
165061847f8eSopenharmony_ci     *
165161847f8eSopenharmony_ci     * @param { 'cameraOcclusionDetection' } type - Event type.
165261847f8eSopenharmony_ci     * @param { AsyncCallback<CameraOcclusionDetectionResult> } callback - Callback used to get detection results.
165361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
165461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
165561847f8eSopenharmony_ci     * @systemapi
165661847f8eSopenharmony_ci     * @since 12
165761847f8eSopenharmony_ci     */
165861847f8eSopenharmony_ci    off(type: 'cameraOcclusionDetection', callback?: AsyncCallback<CameraOcclusionDetectionResult>): void;
165961847f8eSopenharmony_ci  }
166061847f8eSopenharmony_ci
166161847f8eSopenharmony_ci  /**
166261847f8eSopenharmony_ci   * Enumerates the camera scene modes.
166361847f8eSopenharmony_ci   *
166461847f8eSopenharmony_ci   * @enum { number }
166561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
166661847f8eSopenharmony_ci   * @since 11
166761847f8eSopenharmony_ci   */
166861847f8eSopenharmony_ci  enum SceneMode {
166961847f8eSopenharmony_ci    /**
167061847f8eSopenharmony_ci     * Normal photo mode.
167161847f8eSopenharmony_ci     *
167261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
167361847f8eSopenharmony_ci     * @since 11
167461847f8eSopenharmony_ci     */
167561847f8eSopenharmony_ci    NORMAL_PHOTO = 1,
167661847f8eSopenharmony_ci
167761847f8eSopenharmony_ci    /**
167861847f8eSopenharmony_ci     * Normal video mode.
167961847f8eSopenharmony_ci     *
168061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
168161847f8eSopenharmony_ci     * @since 11
168261847f8eSopenharmony_ci     */
168361847f8eSopenharmony_ci    NORMAL_VIDEO = 2,
168461847f8eSopenharmony_ci
168561847f8eSopenharmony_ci    /**
168661847f8eSopenharmony_ci     * Portrait photo mode.
168761847f8eSopenharmony_ci     *
168861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
168961847f8eSopenharmony_ci     * @systemapi
169061847f8eSopenharmony_ci     * @since 11
169161847f8eSopenharmony_ci     */
169261847f8eSopenharmony_ci    PORTRAIT_PHOTO = 3,
169361847f8eSopenharmony_ci
169461847f8eSopenharmony_ci    /**
169561847f8eSopenharmony_ci     * Night photo mode.
169661847f8eSopenharmony_ci     *
169761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
169861847f8eSopenharmony_ci     * @systemapi
169961847f8eSopenharmony_ci     * @since 11
170061847f8eSopenharmony_ci     */
170161847f8eSopenharmony_ci    NIGHT_PHOTO = 4,
170261847f8eSopenharmony_ci
170361847f8eSopenharmony_ci    /**
170461847f8eSopenharmony_ci     * Professional photo mode.
170561847f8eSopenharmony_ci     *
170661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
170761847f8eSopenharmony_ci     * @systemapi
170861847f8eSopenharmony_ci     * @since 12
170961847f8eSopenharmony_ci     */
171061847f8eSopenharmony_ci    PROFESSIONAL_PHOTO = 5,
171161847f8eSopenharmony_ci
171261847f8eSopenharmony_ci    /**
171361847f8eSopenharmony_ci     * Professional video mode.
171461847f8eSopenharmony_ci     *
171561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
171661847f8eSopenharmony_ci     * @systemapi
171761847f8eSopenharmony_ci     * @since 12
171861847f8eSopenharmony_ci     */
171961847f8eSopenharmony_ci    PROFESSIONAL_VIDEO = 6,
172061847f8eSopenharmony_ci
172161847f8eSopenharmony_ci    /**
172261847f8eSopenharmony_ci     * Slow motion video mode.
172361847f8eSopenharmony_ci     *
172461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
172561847f8eSopenharmony_ci     * @systemapi
172661847f8eSopenharmony_ci     * @since 12
172761847f8eSopenharmony_ci     */
172861847f8eSopenharmony_ci    SLOW_MOTION_VIDEO = 7,
172961847f8eSopenharmony_ci
173061847f8eSopenharmony_ci    /**
173161847f8eSopenharmony_ci     * Macro photo mode.
173261847f8eSopenharmony_ci     *
173361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
173461847f8eSopenharmony_ci     * @systemapi
173561847f8eSopenharmony_ci     * @since 12
173661847f8eSopenharmony_ci     */
173761847f8eSopenharmony_ci    MACRO_PHOTO = 8,
173861847f8eSopenharmony_ci
173961847f8eSopenharmony_ci    /**
174061847f8eSopenharmony_ci     * Macro video mode.
174161847f8eSopenharmony_ci     *
174261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
174361847f8eSopenharmony_ci     * @systemapi
174461847f8eSopenharmony_ci     * @since 12
174561847f8eSopenharmony_ci     */
174661847f8eSopenharmony_ci    MACRO_VIDEO = 9,
174761847f8eSopenharmony_ci
174861847f8eSopenharmony_ci    /**
174961847f8eSopenharmony_ci     * Light painting photo mode.
175061847f8eSopenharmony_ci     *
175161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
175261847f8eSopenharmony_ci     * @systemapi
175361847f8eSopenharmony_ci     * @since 12
175461847f8eSopenharmony_ci     */
175561847f8eSopenharmony_ci    LIGHT_PAINTING_PHOTO = 10,
175661847f8eSopenharmony_ci
175761847f8eSopenharmony_ci    /**
175861847f8eSopenharmony_ci     * High resolution mode.
175961847f8eSopenharmony_ci     *
176061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
176161847f8eSopenharmony_ci     * @systemapi
176261847f8eSopenharmony_ci     * @since 12
176361847f8eSopenharmony_ci     */
176461847f8eSopenharmony_ci    HIGH_RESOLUTION_PHOTO = 11,
176561847f8eSopenharmony_ci
176661847f8eSopenharmony_ci    /**
176761847f8eSopenharmony_ci     * Secure camera mode.
176861847f8eSopenharmony_ci     *
176961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
177061847f8eSopenharmony_ci     * @since 12
177161847f8eSopenharmony_ci     */
177261847f8eSopenharmony_ci    SECURE_PHOTO = 12,
177361847f8eSopenharmony_ci
177461847f8eSopenharmony_ci    /**
177561847f8eSopenharmony_ci     * Quick shot mode.
177661847f8eSopenharmony_ci     *
177761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
177861847f8eSopenharmony_ci     * @systemapi
177961847f8eSopenharmony_ci     * @since 12
178061847f8eSopenharmony_ci     */
178161847f8eSopenharmony_ci    QUICK_SHOT_PHOTO = 13,
178261847f8eSopenharmony_ci
178361847f8eSopenharmony_ci    /**
178461847f8eSopenharmony_ci     * Aperture video mode.
178561847f8eSopenharmony_ci     *
178661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
178761847f8eSopenharmony_ci     * @systemapi
178861847f8eSopenharmony_ci     * @since 12
178961847f8eSopenharmony_ci     */
179061847f8eSopenharmony_ci    APERTURE_VIDEO = 14,
179161847f8eSopenharmony_ci
179261847f8eSopenharmony_ci    /**
179361847f8eSopenharmony_ci     * Panorama photo camera mode.
179461847f8eSopenharmony_ci     *
179561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
179661847f8eSopenharmony_ci     * @systemapi
179761847f8eSopenharmony_ci     * @since 12
179861847f8eSopenharmony_ci     */
179961847f8eSopenharmony_ci    PANORAMA_PHOTO = 15,
180061847f8eSopenharmony_ci
180161847f8eSopenharmony_ci    /**
180261847f8eSopenharmony_ci     * Timelapse photo camera mode.
180361847f8eSopenharmony_ci     *
180461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
180561847f8eSopenharmony_ci     * @systemapi
180661847f8eSopenharmony_ci     * @since 12
180761847f8eSopenharmony_ci     */
180861847f8eSopenharmony_ci    TIME_LAPSE_PHOTO = 16,
180961847f8eSopenharmony_ci
181061847f8eSopenharmony_ci    /**
181161847f8eSopenharmony_ci     * Fluorescence photo mode.
181261847f8eSopenharmony_ci     *
181361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
181461847f8eSopenharmony_ci     * @systemapi
181561847f8eSopenharmony_ci     * @since 12
181661847f8eSopenharmony_ci     */
181761847f8eSopenharmony_ci    FLUORESCENCE_PHOTO = 17
181861847f8eSopenharmony_ci  }
181961847f8eSopenharmony_ci
182061847f8eSopenharmony_ci  /**
182161847f8eSopenharmony_ci   * Enum for camera format type.
182261847f8eSopenharmony_ci   *
182361847f8eSopenharmony_ci   * @enum { number }
182461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
182561847f8eSopenharmony_ci   * @since 10
182661847f8eSopenharmony_ci   */
182761847f8eSopenharmony_ci  enum CameraFormat {
182861847f8eSopenharmony_ci    /**
182961847f8eSopenharmony_ci     * RGBA 8888 Format.
183061847f8eSopenharmony_ci     *
183161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
183261847f8eSopenharmony_ci     * @since 10
183361847f8eSopenharmony_ci     */
183461847f8eSopenharmony_ci    CAMERA_FORMAT_RGBA_8888 = 3,
183561847f8eSopenharmony_ci
183661847f8eSopenharmony_ci    /**
183761847f8eSopenharmony_ci     * Digital negative Format.
183861847f8eSopenharmony_ci     *
183961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
184061847f8eSopenharmony_ci     * @systemapi
184161847f8eSopenharmony_ci     * @since 12
184261847f8eSopenharmony_ci     */
184361847f8eSopenharmony_ci    CAMERA_FORMAT_DNG = 4,
184461847f8eSopenharmony_ci
184561847f8eSopenharmony_ci    /**
184661847f8eSopenharmony_ci     * YUV 420 Format.
184761847f8eSopenharmony_ci     *
184861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
184961847f8eSopenharmony_ci     * @since 10
185061847f8eSopenharmony_ci     */
185161847f8eSopenharmony_ci    CAMERA_FORMAT_YUV_420_SP = 1003,
185261847f8eSopenharmony_ci
185361847f8eSopenharmony_ci    /**
185461847f8eSopenharmony_ci     * JPEG Format.
185561847f8eSopenharmony_ci     *
185661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
185761847f8eSopenharmony_ci     * @since 10
185861847f8eSopenharmony_ci     */
185961847f8eSopenharmony_ci    CAMERA_FORMAT_JPEG = 2000,
186061847f8eSopenharmony_ci
186161847f8eSopenharmony_ci    /**
186261847f8eSopenharmony_ci     * YCBCR P010 Format.
186361847f8eSopenharmony_ci     *
186461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
186561847f8eSopenharmony_ci     * @since 11
186661847f8eSopenharmony_ci     */
186761847f8eSopenharmony_ci    CAMERA_FORMAT_YCBCR_P010,
186861847f8eSopenharmony_ci
186961847f8eSopenharmony_ci    /**
187061847f8eSopenharmony_ci     * YCRCB P010 Format.
187161847f8eSopenharmony_ci     *
187261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
187361847f8eSopenharmony_ci     * @since 11
187461847f8eSopenharmony_ci     */
187561847f8eSopenharmony_ci    CAMERA_FORMAT_YCRCB_P010,
187661847f8eSopenharmony_ci
187761847f8eSopenharmony_ci    /**
187861847f8eSopenharmony_ci     * HEIC Format.
187961847f8eSopenharmony_ci     *
188061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
188161847f8eSopenharmony_ci     * @since 13
188261847f8eSopenharmony_ci     */
188361847f8eSopenharmony_ci    CAMERA_FORMAT_HEIC = 2003,
188461847f8eSopenharmony_ci
188561847f8eSopenharmony_ci    /**
188661847f8eSopenharmony_ci     * Depth Data Format: float 16.
188761847f8eSopenharmony_ci     *
188861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
188961847f8eSopenharmony_ci     * @systemapi
189061847f8eSopenharmony_ci     * @since 13
189161847f8eSopenharmony_ci     */
189261847f8eSopenharmony_ci    CAMERA_FORMAT_DEPTH_16 = 3000,
189361847f8eSopenharmony_ci
189461847f8eSopenharmony_ci    /**
189561847f8eSopenharmony_ci     * Depth Data Format: float 32.
189661847f8eSopenharmony_ci     *
189761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
189861847f8eSopenharmony_ci     * @systemapi
189961847f8eSopenharmony_ci     * @since 13
190061847f8eSopenharmony_ci     */
190161847f8eSopenharmony_ci    CAMERA_FORMAT_DEPTH_32 = 3001
190261847f8eSopenharmony_ci  }
190361847f8eSopenharmony_ci
190461847f8eSopenharmony_ci  /**
190561847f8eSopenharmony_ci   * Enum for flash mode.
190661847f8eSopenharmony_ci   *
190761847f8eSopenharmony_ci   * @enum { number }
190861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
190961847f8eSopenharmony_ci   * @since 10
191061847f8eSopenharmony_ci   */
191161847f8eSopenharmony_ci  enum FlashMode {
191261847f8eSopenharmony_ci    /**
191361847f8eSopenharmony_ci     * Close mode.
191461847f8eSopenharmony_ci     *
191561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
191661847f8eSopenharmony_ci     * @since 10
191761847f8eSopenharmony_ci     */
191861847f8eSopenharmony_ci    FLASH_MODE_CLOSE = 0,
191961847f8eSopenharmony_ci
192061847f8eSopenharmony_ci    /**
192161847f8eSopenharmony_ci     * Open mode.
192261847f8eSopenharmony_ci     *
192361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
192461847f8eSopenharmony_ci     * @since 10
192561847f8eSopenharmony_ci     */
192661847f8eSopenharmony_ci    FLASH_MODE_OPEN = 1,
192761847f8eSopenharmony_ci
192861847f8eSopenharmony_ci    /**
192961847f8eSopenharmony_ci     * Auto mode.
193061847f8eSopenharmony_ci     *
193161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
193261847f8eSopenharmony_ci     * @since 10
193361847f8eSopenharmony_ci     */
193461847f8eSopenharmony_ci    FLASH_MODE_AUTO = 2,
193561847f8eSopenharmony_ci
193661847f8eSopenharmony_ci    /**
193761847f8eSopenharmony_ci     * Always open mode.
193861847f8eSopenharmony_ci     *
193961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
194061847f8eSopenharmony_ci     * @since 10
194161847f8eSopenharmony_ci     */
194261847f8eSopenharmony_ci    FLASH_MODE_ALWAYS_OPEN = 3
194361847f8eSopenharmony_ci  }
194461847f8eSopenharmony_ci
194561847f8eSopenharmony_ci  /**
194661847f8eSopenharmony_ci   * LCD Flash Status.
194761847f8eSopenharmony_ci   *
194861847f8eSopenharmony_ci   * @typedef LcdFlashStatus
194961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
195061847f8eSopenharmony_ci   * @systemapi
195161847f8eSopenharmony_ci   * @since 12
195261847f8eSopenharmony_ci   */
195361847f8eSopenharmony_ci  interface LcdFlashStatus {
195461847f8eSopenharmony_ci    /**
195561847f8eSopenharmony_ci     * Check whether lcd flash is needed.
195661847f8eSopenharmony_ci     *
195761847f8eSopenharmony_ci     * @type { boolean }
195861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
195961847f8eSopenharmony_ci     * @systemapi
196061847f8eSopenharmony_ci     * @since 12
196161847f8eSopenharmony_ci     */
196261847f8eSopenharmony_ci    readonly isLcdFlashNeeded: boolean;
196361847f8eSopenharmony_ci
196461847f8eSopenharmony_ci    /**
196561847f8eSopenharmony_ci     * Compensate value for lcd flash.
196661847f8eSopenharmony_ci     *
196761847f8eSopenharmony_ci     * @type { number }
196861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
196961847f8eSopenharmony_ci     * @systemapi
197061847f8eSopenharmony_ci     * @since 12
197161847f8eSopenharmony_ci     */
197261847f8eSopenharmony_ci    readonly lcdCompensation: number;
197361847f8eSopenharmony_ci  }
197461847f8eSopenharmony_ci
197561847f8eSopenharmony_ci  /**
197661847f8eSopenharmony_ci   * Flash Query object.
197761847f8eSopenharmony_ci   *
197861847f8eSopenharmony_ci   * @interface FlashQuery
197961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
198061847f8eSopenharmony_ci   * @since 12
198161847f8eSopenharmony_ci   */
198261847f8eSopenharmony_ci  interface FlashQuery {
198361847f8eSopenharmony_ci    /**
198461847f8eSopenharmony_ci     * Check if device has flash light.
198561847f8eSopenharmony_ci     *
198661847f8eSopenharmony_ci     * @returns { boolean } The flash light support status.
198761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
198861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
198961847f8eSopenharmony_ci     * @since 11
199061847f8eSopenharmony_ci     */
199161847f8eSopenharmony_ci    /**
199261847f8eSopenharmony_ci     * Check if device has flash light.
199361847f8eSopenharmony_ci     * Move to FlashQuery interface from Flash since 12.
199461847f8eSopenharmony_ci     *
199561847f8eSopenharmony_ci     * @returns { boolean } The flash light support status.
199661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
199761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
199861847f8eSopenharmony_ci     * @since 12
199961847f8eSopenharmony_ci     */
200061847f8eSopenharmony_ci    hasFlash(): boolean;
200161847f8eSopenharmony_ci
200261847f8eSopenharmony_ci    /**
200361847f8eSopenharmony_ci     * Checks whether a specified flash mode is supported.
200461847f8eSopenharmony_ci     *
200561847f8eSopenharmony_ci     * @param { FlashMode } flashMode - Flash mode
200661847f8eSopenharmony_ci     * @returns { boolean } Is the flash mode supported.
200761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
200861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
200961847f8eSopenharmony_ci     * @since 11
201061847f8eSopenharmony_ci     */
201161847f8eSopenharmony_ci    /**
201261847f8eSopenharmony_ci     * Checks whether a specified flash mode is supported.
201361847f8eSopenharmony_ci     * Move to FlashQuery interface from Flash since 12.
201461847f8eSopenharmony_ci     *
201561847f8eSopenharmony_ci     * @param { FlashMode } flashMode - Flash mode
201661847f8eSopenharmony_ci     * @returns { boolean } Is the flash mode supported.
201761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
201861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
201961847f8eSopenharmony_ci     * @since 12
202061847f8eSopenharmony_ci     */
202161847f8eSopenharmony_ci    isFlashModeSupported(flashMode: FlashMode): boolean;
202261847f8eSopenharmony_ci
202361847f8eSopenharmony_ci    /**
202461847f8eSopenharmony_ci     * Checks whether lcd flash is supported.
202561847f8eSopenharmony_ci     *
202661847f8eSopenharmony_ci     * @returns { boolean } Is lcd flash supported.
202761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
202861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
202961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
203061847f8eSopenharmony_ci     * @systemapi
203161847f8eSopenharmony_ci     * @since 12
203261847f8eSopenharmony_ci     */
203361847f8eSopenharmony_ci    isLcdFlashSupported(): boolean;
203461847f8eSopenharmony_ci  }
203561847f8eSopenharmony_ci
203661847f8eSopenharmony_ci  /**
203761847f8eSopenharmony_ci   * Flash object.
203861847f8eSopenharmony_ci   *
203961847f8eSopenharmony_ci   * @interface Flash
204061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
204161847f8eSopenharmony_ci   * @since 11
204261847f8eSopenharmony_ci   */
204361847f8eSopenharmony_ci  interface Flash extends FlashQuery {
204461847f8eSopenharmony_ci    /**
204561847f8eSopenharmony_ci     * Gets current flash mode.
204661847f8eSopenharmony_ci     *
204761847f8eSopenharmony_ci     * @returns { FlashMode } The current flash mode.
204861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
204961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
205061847f8eSopenharmony_ci     * @since 11
205161847f8eSopenharmony_ci     */
205261847f8eSopenharmony_ci    getFlashMode(): FlashMode;
205361847f8eSopenharmony_ci
205461847f8eSopenharmony_ci    /**
205561847f8eSopenharmony_ci     * Sets flash mode.
205661847f8eSopenharmony_ci     *
205761847f8eSopenharmony_ci     * @param { FlashMode } flashMode - Target flash mode.
205861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
205961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
206061847f8eSopenharmony_ci     * @since 11
206161847f8eSopenharmony_ci     */
206261847f8eSopenharmony_ci    setFlashMode(flashMode: FlashMode): void;
206361847f8eSopenharmony_ci
206461847f8eSopenharmony_ci    /**
206561847f8eSopenharmony_ci     * Enable lcd flash.
206661847f8eSopenharmony_ci     *
206761847f8eSopenharmony_ci     * @param { boolean } enabled - Target lcd flash status.
206861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
206961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
207061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
207161847f8eSopenharmony_ci     * @systemapi
207261847f8eSopenharmony_ci     * @since 13
207361847f8eSopenharmony_ci     */
207461847f8eSopenharmony_ci    enableLcdFlash(enabled: boolean): void;
207561847f8eSopenharmony_ci  }
207661847f8eSopenharmony_ci
207761847f8eSopenharmony_ci  /**
207861847f8eSopenharmony_ci   * Enum for exposure mode.
207961847f8eSopenharmony_ci   *
208061847f8eSopenharmony_ci   * @enum { number }
208161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
208261847f8eSopenharmony_ci   * @since 10
208361847f8eSopenharmony_ci   */
208461847f8eSopenharmony_ci  enum ExposureMode {
208561847f8eSopenharmony_ci    /**
208661847f8eSopenharmony_ci     * Lock exposure mode.
208761847f8eSopenharmony_ci     *
208861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
208961847f8eSopenharmony_ci     * @since 10
209061847f8eSopenharmony_ci     */
209161847f8eSopenharmony_ci    EXPOSURE_MODE_LOCKED = 0,
209261847f8eSopenharmony_ci
209361847f8eSopenharmony_ci    /**
209461847f8eSopenharmony_ci     * Auto exposure mode.
209561847f8eSopenharmony_ci     *
209661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
209761847f8eSopenharmony_ci     * @since 10
209861847f8eSopenharmony_ci     */
209961847f8eSopenharmony_ci    EXPOSURE_MODE_AUTO = 1,
210061847f8eSopenharmony_ci
210161847f8eSopenharmony_ci    /**
210261847f8eSopenharmony_ci     * Continuous automatic exposure.
210361847f8eSopenharmony_ci     *
210461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
210561847f8eSopenharmony_ci     * @since 10
210661847f8eSopenharmony_ci     */
210761847f8eSopenharmony_ci    EXPOSURE_MODE_CONTINUOUS_AUTO = 2,
210861847f8eSopenharmony_ci
210961847f8eSopenharmony_ci    /**
211061847f8eSopenharmony_ci     * Manual exposure mode.
211161847f8eSopenharmony_ci     *
211261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
211361847f8eSopenharmony_ci     * @systemapi
211461847f8eSopenharmony_ci     * @since 12
211561847f8eSopenharmony_ci     */
211661847f8eSopenharmony_ci    EXPOSURE_MODE_MANUAL = 3
211761847f8eSopenharmony_ci  }
211861847f8eSopenharmony_ci
211961847f8eSopenharmony_ci  /**
212061847f8eSopenharmony_ci   * Enum for exposure metering mode.
212161847f8eSopenharmony_ci   *
212261847f8eSopenharmony_ci   * @enum { number }
212361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
212461847f8eSopenharmony_ci   * @systemapi
212561847f8eSopenharmony_ci   * @since 12
212661847f8eSopenharmony_ci   */
212761847f8eSopenharmony_ci  enum ExposureMeteringMode {
212861847f8eSopenharmony_ci    /**
212961847f8eSopenharmony_ci     * Matrix metering.
213061847f8eSopenharmony_ci     *
213161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
213261847f8eSopenharmony_ci     * @systemapi
213361847f8eSopenharmony_ci     * @since 12
213461847f8eSopenharmony_ci     */
213561847f8eSopenharmony_ci    MATRIX = 0,
213661847f8eSopenharmony_ci
213761847f8eSopenharmony_ci    /**
213861847f8eSopenharmony_ci     * Center metering.
213961847f8eSopenharmony_ci     *
214061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
214161847f8eSopenharmony_ci     * @systemapi
214261847f8eSopenharmony_ci     * @since 12
214361847f8eSopenharmony_ci     */
214461847f8eSopenharmony_ci    CENTER = 1,
214561847f8eSopenharmony_ci
214661847f8eSopenharmony_ci    /**
214761847f8eSopenharmony_ci     * Spot metering.
214861847f8eSopenharmony_ci     *
214961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
215061847f8eSopenharmony_ci     * @systemapi
215161847f8eSopenharmony_ci     * @since 12
215261847f8eSopenharmony_ci     */
215361847f8eSopenharmony_ci    SPOT = 2
215461847f8eSopenharmony_ci  }
215561847f8eSopenharmony_ci
215661847f8eSopenharmony_ci  /**
215761847f8eSopenharmony_ci   * AutoExposureQuery object.
215861847f8eSopenharmony_ci   *
215961847f8eSopenharmony_ci   * @interface AutoExposureQuery
216061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
216161847f8eSopenharmony_ci   * @since 12
216261847f8eSopenharmony_ci   */
216361847f8eSopenharmony_ci  interface AutoExposureQuery {
216461847f8eSopenharmony_ci    /**
216561847f8eSopenharmony_ci     * Checks whether a specified exposure mode is supported.
216661847f8eSopenharmony_ci     *
216761847f8eSopenharmony_ci     * @param { ExposureMode } aeMode - Exposure mode
216861847f8eSopenharmony_ci     * @returns { boolean } Is the exposure mode supported.
216961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
217061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
217161847f8eSopenharmony_ci     * @since 11
217261847f8eSopenharmony_ci     */
217361847f8eSopenharmony_ci    /**
217461847f8eSopenharmony_ci     * Checks whether a specified exposure mode is supported.
217561847f8eSopenharmony_ci     * Move to AutoExposureQuery interface from AutoExposure interface since 12.
217661847f8eSopenharmony_ci     *
217761847f8eSopenharmony_ci     * @param { ExposureMode } aeMode - Exposure mode
217861847f8eSopenharmony_ci     * @returns { boolean } Is the exposure mode supported.
217961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
218061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
218161847f8eSopenharmony_ci     * @since 12
218261847f8eSopenharmony_ci     */
218361847f8eSopenharmony_ci    isExposureModeSupported(aeMode: ExposureMode): boolean;
218461847f8eSopenharmony_ci
218561847f8eSopenharmony_ci    /**
218661847f8eSopenharmony_ci     * Query the exposure compensation range.
218761847f8eSopenharmony_ci     *
218861847f8eSopenharmony_ci     * @returns { Array<number> } The array of compensation range.
218961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
219061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
219161847f8eSopenharmony_ci     * @since 11
219261847f8eSopenharmony_ci     */
219361847f8eSopenharmony_ci    /**
219461847f8eSopenharmony_ci     * Query the exposure compensation range.
219561847f8eSopenharmony_ci     * Move to AutoExposureQuery interface from AutoExposure interface since 12.
219661847f8eSopenharmony_ci     *
219761847f8eSopenharmony_ci     * @returns { Array<number> } The array of compensation range.
219861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
219961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
220061847f8eSopenharmony_ci     * @since 12
220161847f8eSopenharmony_ci     */
220261847f8eSopenharmony_ci    getExposureBiasRange(): Array<number>;
220361847f8eSopenharmony_ci
220461847f8eSopenharmony_ci    /**
220561847f8eSopenharmony_ci     * Checks whether a specified exposure metering mode is supported.
220661847f8eSopenharmony_ci     *
220761847f8eSopenharmony_ci     * @param { ExposureMeteringMode } aeMeteringMode - Exposure metering mode
220861847f8eSopenharmony_ci     * @returns { boolean } Is the exposure metering mode supported.
220961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
221061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
221161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
221261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
221361847f8eSopenharmony_ci     * @systemapi
221461847f8eSopenharmony_ci     * @since 12
221561847f8eSopenharmony_ci     */
221661847f8eSopenharmony_ci    isExposureMeteringModeSupported(aeMeteringMode: ExposureMeteringMode): boolean;
221761847f8eSopenharmony_ci  }
221861847f8eSopenharmony_ci
221961847f8eSopenharmony_ci  /**
222061847f8eSopenharmony_ci   * AutoExposure object.
222161847f8eSopenharmony_ci   *
222261847f8eSopenharmony_ci   * @interface AutoExposure
222361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
222461847f8eSopenharmony_ci   * @since 11
222561847f8eSopenharmony_ci   */
222661847f8eSopenharmony_ci  interface AutoExposure extends AutoExposureQuery {
222761847f8eSopenharmony_ci    /**
222861847f8eSopenharmony_ci     * Gets current exposure mode.
222961847f8eSopenharmony_ci     *
223061847f8eSopenharmony_ci     * @returns { ExposureMode } The current exposure mode.
223161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
223261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
223361847f8eSopenharmony_ci     * @since 11
223461847f8eSopenharmony_ci     */
223561847f8eSopenharmony_ci    getExposureMode(): ExposureMode;
223661847f8eSopenharmony_ci
223761847f8eSopenharmony_ci    /**
223861847f8eSopenharmony_ci     * Sets Exposure mode.
223961847f8eSopenharmony_ci     *
224061847f8eSopenharmony_ci     * @param { ExposureMode } aeMode - Exposure mode
224161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
224261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
224361847f8eSopenharmony_ci     * @since 11
224461847f8eSopenharmony_ci     */
224561847f8eSopenharmony_ci    setExposureMode(aeMode: ExposureMode): void;
224661847f8eSopenharmony_ci
224761847f8eSopenharmony_ci    /**
224861847f8eSopenharmony_ci     * Gets current metering point.
224961847f8eSopenharmony_ci     *
225061847f8eSopenharmony_ci     * @returns { Point } The current metering point.
225161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
225261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
225361847f8eSopenharmony_ci     * @since 11
225461847f8eSopenharmony_ci     */
225561847f8eSopenharmony_ci    getMeteringPoint(): Point;
225661847f8eSopenharmony_ci
225761847f8eSopenharmony_ci    /**
225861847f8eSopenharmony_ci     * Set the center point of the metering area.
225961847f8eSopenharmony_ci     *
226061847f8eSopenharmony_ci     * @param { Point } point - metering point
226161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
226261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
226361847f8eSopenharmony_ci     * @since 11
226461847f8eSopenharmony_ci     */
226561847f8eSopenharmony_ci    setMeteringPoint(point: Point): void;
226661847f8eSopenharmony_ci
226761847f8eSopenharmony_ci    /**
226861847f8eSopenharmony_ci     * Query the exposure compensation range.
226961847f8eSopenharmony_ci     *
227061847f8eSopenharmony_ci     * @returns { Array<number> } The array of compensation range.
227161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
227261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
227361847f8eSopenharmony_ci     * @since 11
227461847f8eSopenharmony_ci     */
227561847f8eSopenharmony_ci    getExposureBiasRange(): Array<number>;
227661847f8eSopenharmony_ci
227761847f8eSopenharmony_ci    /**
227861847f8eSopenharmony_ci     * Set exposure compensation.
227961847f8eSopenharmony_ci     *
228061847f8eSopenharmony_ci     * @param { number } exposureBias - Exposure compensation
228161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
228261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
228361847f8eSopenharmony_ci     * @since 11
228461847f8eSopenharmony_ci     */
228561847f8eSopenharmony_ci    /**
228661847f8eSopenharmony_ci     * Set exposure compensation.
228761847f8eSopenharmony_ci     *
228861847f8eSopenharmony_ci     * @param { number } exposureBias - Exposure compensation
228961847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
229061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
229161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
229261847f8eSopenharmony_ci     * @since 12
229361847f8eSopenharmony_ci     */
229461847f8eSopenharmony_ci    setExposureBias(exposureBias: number): void;
229561847f8eSopenharmony_ci
229661847f8eSopenharmony_ci    /**
229761847f8eSopenharmony_ci     * Query the exposure value.
229861847f8eSopenharmony_ci     *
229961847f8eSopenharmony_ci     * @returns { number } The exposure value.
230061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
230161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
230261847f8eSopenharmony_ci     * @since 11
230361847f8eSopenharmony_ci     */
230461847f8eSopenharmony_ci    getExposureValue(): number;
230561847f8eSopenharmony_ci
230661847f8eSopenharmony_ci    /**
230761847f8eSopenharmony_ci     * Gets current exposure metering mode.
230861847f8eSopenharmony_ci     *
230961847f8eSopenharmony_ci     * @returns { ExposureMeteringMode } The current exposure metering mode.
231061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
231161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
231261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
231361847f8eSopenharmony_ci     * @systemapi
231461847f8eSopenharmony_ci     * @since 12
231561847f8eSopenharmony_ci     */
231661847f8eSopenharmony_ci    getExposureMeteringMode(): ExposureMeteringMode;
231761847f8eSopenharmony_ci
231861847f8eSopenharmony_ci    /**
231961847f8eSopenharmony_ci     * Sets exposure metering mode.
232061847f8eSopenharmony_ci     *
232161847f8eSopenharmony_ci     * @param { ExposureMeteringMode } aeMeteringMode - Exposure metering mode
232261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
232361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
232461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
232561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
232661847f8eSopenharmony_ci     * @systemapi
232761847f8eSopenharmony_ci     * @since 12
232861847f8eSopenharmony_ci     */
232961847f8eSopenharmony_ci    setExposureMeteringMode(aeMeteringMode: ExposureMeteringMode): void;
233061847f8eSopenharmony_ci  }
233161847f8eSopenharmony_ci
233261847f8eSopenharmony_ci  /**
233361847f8eSopenharmony_ci   * Enum for focus mode.
233461847f8eSopenharmony_ci   *
233561847f8eSopenharmony_ci   * @enum { number }
233661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
233761847f8eSopenharmony_ci   * @since 10
233861847f8eSopenharmony_ci   */
233961847f8eSopenharmony_ci  enum FocusMode {
234061847f8eSopenharmony_ci    /**
234161847f8eSopenharmony_ci     * Manual mode.
234261847f8eSopenharmony_ci     *
234361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
234461847f8eSopenharmony_ci     * @since 10
234561847f8eSopenharmony_ci     */
234661847f8eSopenharmony_ci    FOCUS_MODE_MANUAL = 0,
234761847f8eSopenharmony_ci
234861847f8eSopenharmony_ci    /**
234961847f8eSopenharmony_ci     * Continuous auto mode.
235061847f8eSopenharmony_ci     *
235161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
235261847f8eSopenharmony_ci     * @since 10
235361847f8eSopenharmony_ci     */
235461847f8eSopenharmony_ci    FOCUS_MODE_CONTINUOUS_AUTO = 1,
235561847f8eSopenharmony_ci
235661847f8eSopenharmony_ci    /**
235761847f8eSopenharmony_ci     * Auto mode.
235861847f8eSopenharmony_ci     *
235961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
236061847f8eSopenharmony_ci     * @since 10
236161847f8eSopenharmony_ci     */
236261847f8eSopenharmony_ci    FOCUS_MODE_AUTO = 2,
236361847f8eSopenharmony_ci
236461847f8eSopenharmony_ci    /**
236561847f8eSopenharmony_ci     * Locked mode.
236661847f8eSopenharmony_ci     *
236761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
236861847f8eSopenharmony_ci     * @since 10
236961847f8eSopenharmony_ci     */
237061847f8eSopenharmony_ci    FOCUS_MODE_LOCKED = 3
237161847f8eSopenharmony_ci  }
237261847f8eSopenharmony_ci
237361847f8eSopenharmony_ci  /**
237461847f8eSopenharmony_ci   * Enum for focus state.
237561847f8eSopenharmony_ci   *
237661847f8eSopenharmony_ci   * @enum { number }
237761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
237861847f8eSopenharmony_ci   * @since 10
237961847f8eSopenharmony_ci   */
238061847f8eSopenharmony_ci  enum FocusState {
238161847f8eSopenharmony_ci    /**
238261847f8eSopenharmony_ci     * Scan state.
238361847f8eSopenharmony_ci     *
238461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
238561847f8eSopenharmony_ci     * @since 10
238661847f8eSopenharmony_ci     */
238761847f8eSopenharmony_ci    FOCUS_STATE_SCAN = 0,
238861847f8eSopenharmony_ci
238961847f8eSopenharmony_ci    /**
239061847f8eSopenharmony_ci     * Focused state.
239161847f8eSopenharmony_ci     *
239261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
239361847f8eSopenharmony_ci     * @since 10
239461847f8eSopenharmony_ci     */
239561847f8eSopenharmony_ci    FOCUS_STATE_FOCUSED = 1,
239661847f8eSopenharmony_ci
239761847f8eSopenharmony_ci    /**
239861847f8eSopenharmony_ci     * Unfocused state.
239961847f8eSopenharmony_ci     *
240061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
240161847f8eSopenharmony_ci     * @since 10
240261847f8eSopenharmony_ci     */
240361847f8eSopenharmony_ci    FOCUS_STATE_UNFOCUSED = 2
240461847f8eSopenharmony_ci  }
240561847f8eSopenharmony_ci
240661847f8eSopenharmony_ci  /**
240761847f8eSopenharmony_ci   * Focus Query object.
240861847f8eSopenharmony_ci   *
240961847f8eSopenharmony_ci   * @interface FocusQuery
241061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
241161847f8eSopenharmony_ci   * @since 12
241261847f8eSopenharmony_ci   */
241361847f8eSopenharmony_ci  interface FocusQuery {
241461847f8eSopenharmony_ci    /**
241561847f8eSopenharmony_ci     * Checks whether a specified focus mode is supported.
241661847f8eSopenharmony_ci     *
241761847f8eSopenharmony_ci     * @param { FocusMode } afMode - Focus mode.
241861847f8eSopenharmony_ci     * @returns { boolean } Is the focus mode supported.
241961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
242061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
242161847f8eSopenharmony_ci     * @since 11
242261847f8eSopenharmony_ci     */
242361847f8eSopenharmony_ci    /**
242461847f8eSopenharmony_ci     * Checks whether a specified focus mode is supported.
242561847f8eSopenharmony_ci     * Move to FocusQuery interface from Focus interface since 12.
242661847f8eSopenharmony_ci     *
242761847f8eSopenharmony_ci     * @param { FocusMode } afMode - Focus mode.
242861847f8eSopenharmony_ci     * @returns { boolean } Is the focus mode supported.
242961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
243061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
243161847f8eSopenharmony_ci     * @since 12
243261847f8eSopenharmony_ci     */
243361847f8eSopenharmony_ci    isFocusModeSupported(afMode: FocusMode): boolean;
243461847f8eSopenharmony_ci
243561847f8eSopenharmony_ci    /**
243661847f8eSopenharmony_ci     * Checks whether a focus assist is supported.
243761847f8eSopenharmony_ci     *
243861847f8eSopenharmony_ci     * @returns { boolean } Is the focus assist supported.
243961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
244061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
244161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
244261847f8eSopenharmony_ci     * @systemapi
244361847f8eSopenharmony_ci     * @since 12
244461847f8eSopenharmony_ci     */
244561847f8eSopenharmony_ci    isFocusAssistSupported(): boolean;
244661847f8eSopenharmony_ci  }
244761847f8eSopenharmony_ci
244861847f8eSopenharmony_ci  /**
244961847f8eSopenharmony_ci   * Focus object.
245061847f8eSopenharmony_ci   *
245161847f8eSopenharmony_ci   * @interface Focus
245261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
245361847f8eSopenharmony_ci   * @since 11
245461847f8eSopenharmony_ci   */
245561847f8eSopenharmony_ci  interface Focus extends FocusQuery {
245661847f8eSopenharmony_ci    /**
245761847f8eSopenharmony_ci     * Gets current focus mode.
245861847f8eSopenharmony_ci     *
245961847f8eSopenharmony_ci     * @returns { FocusMode } The current focus mode.
246061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
246161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
246261847f8eSopenharmony_ci     * @since 11
246361847f8eSopenharmony_ci     */
246461847f8eSopenharmony_ci    getFocusMode(): FocusMode;
246561847f8eSopenharmony_ci
246661847f8eSopenharmony_ci    /**
246761847f8eSopenharmony_ci     * Sets focus mode.
246861847f8eSopenharmony_ci     *
246961847f8eSopenharmony_ci     * @param { FocusMode } afMode - Target focus mode.
247061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
247161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
247261847f8eSopenharmony_ci     * @since 11
247361847f8eSopenharmony_ci     */
247461847f8eSopenharmony_ci    setFocusMode(afMode: FocusMode): void;
247561847f8eSopenharmony_ci
247661847f8eSopenharmony_ci    /**
247761847f8eSopenharmony_ci     * Sets focus point.
247861847f8eSopenharmony_ci     *
247961847f8eSopenharmony_ci     * @param { Point } point - Target focus point.
248061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
248161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
248261847f8eSopenharmony_ci     * @since 11
248361847f8eSopenharmony_ci     */
248461847f8eSopenharmony_ci    setFocusPoint(point: Point): void;
248561847f8eSopenharmony_ci
248661847f8eSopenharmony_ci    /**
248761847f8eSopenharmony_ci     * Gets current focus point.
248861847f8eSopenharmony_ci     *
248961847f8eSopenharmony_ci     * @returns { Point } The current focus point.
249061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
249161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
249261847f8eSopenharmony_ci     * @since 11
249361847f8eSopenharmony_ci     */
249461847f8eSopenharmony_ci    getFocusPoint(): Point;
249561847f8eSopenharmony_ci
249661847f8eSopenharmony_ci    /**
249761847f8eSopenharmony_ci     * Gets current focal length.
249861847f8eSopenharmony_ci     *
249961847f8eSopenharmony_ci     * @returns { number } The current focal point.
250061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
250161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
250261847f8eSopenharmony_ci     * @since 11
250361847f8eSopenharmony_ci     */
250461847f8eSopenharmony_ci    getFocalLength(): number;
250561847f8eSopenharmony_ci
250661847f8eSopenharmony_ci    /**
250761847f8eSopenharmony_ci     * Gets current focus assist.
250861847f8eSopenharmony_ci     *
250961847f8eSopenharmony_ci     * @returns { boolean } The current focus assist.
251061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
251161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
251261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
251361847f8eSopenharmony_ci     * @systemapi
251461847f8eSopenharmony_ci     * @since 12
251561847f8eSopenharmony_ci     */
251661847f8eSopenharmony_ci    getFocusAssist(): boolean;
251761847f8eSopenharmony_ci
251861847f8eSopenharmony_ci    /**
251961847f8eSopenharmony_ci     * Sets focus assist.
252061847f8eSopenharmony_ci     *
252161847f8eSopenharmony_ci     * @param { boolean } enabled - Enable focus assist if TRUE.
252261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
252361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
252461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
252561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
252661847f8eSopenharmony_ci     * @systemapi
252761847f8eSopenharmony_ci     * @since 12
252861847f8eSopenharmony_ci     */
252961847f8eSopenharmony_ci    setFocusAssist(enabled: boolean): void;
253061847f8eSopenharmony_ci  }
253161847f8eSopenharmony_ci
253261847f8eSopenharmony_ci  /**
253361847f8eSopenharmony_ci   * ManualFocus object.
253461847f8eSopenharmony_ci   *
253561847f8eSopenharmony_ci   * @interface ManualFocus
253661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
253761847f8eSopenharmony_ci   * @systemapi
253861847f8eSopenharmony_ci   * @since 12
253961847f8eSopenharmony_ci   */
254061847f8eSopenharmony_ci  interface ManualFocus {
254161847f8eSopenharmony_ci    /**
254261847f8eSopenharmony_ci     * Gets current focus distance.
254361847f8eSopenharmony_ci     *
254461847f8eSopenharmony_ci     * @returns { number } The current focus distance.
254561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
254661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
254761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
254861847f8eSopenharmony_ci     * @systemapi
254961847f8eSopenharmony_ci     * @since 12
255061847f8eSopenharmony_ci     */
255161847f8eSopenharmony_ci    getFocusDistance(): number;
255261847f8eSopenharmony_ci
255361847f8eSopenharmony_ci    /**
255461847f8eSopenharmony_ci     * Sets focus distance.
255561847f8eSopenharmony_ci     *
255661847f8eSopenharmony_ci     * @param { number } distance - Focus distance
255761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
255861847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
255961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
256061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
256161847f8eSopenharmony_ci     * @systemapi
256261847f8eSopenharmony_ci     * @since 12
256361847f8eSopenharmony_ci     */
256461847f8eSopenharmony_ci    setFocusDistance(distance: number): void;
256561847f8eSopenharmony_ci  }
256661847f8eSopenharmony_ci
256761847f8eSopenharmony_ci  /**
256861847f8eSopenharmony_ci   * Enumerates the camera white balance modes.
256961847f8eSopenharmony_ci   *
257061847f8eSopenharmony_ci   * @enum { number }
257161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
257261847f8eSopenharmony_ci   * @systemapi
257361847f8eSopenharmony_ci   * @since 12
257461847f8eSopenharmony_ci   */
257561847f8eSopenharmony_ci  enum WhiteBalanceMode {
257661847f8eSopenharmony_ci    /**
257761847f8eSopenharmony_ci     * Auto white balance mode.
257861847f8eSopenharmony_ci     *
257961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
258061847f8eSopenharmony_ci     * @systemapi
258161847f8eSopenharmony_ci     * @since 12
258261847f8eSopenharmony_ci     */
258361847f8eSopenharmony_ci    AUTO = 0,
258461847f8eSopenharmony_ci
258561847f8eSopenharmony_ci    /**
258661847f8eSopenharmony_ci     * Cloudy white balance mode.
258761847f8eSopenharmony_ci     *
258861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
258961847f8eSopenharmony_ci     * @systemapi
259061847f8eSopenharmony_ci     * @since 12
259161847f8eSopenharmony_ci     */
259261847f8eSopenharmony_ci    CLOUDY = 1,
259361847f8eSopenharmony_ci
259461847f8eSopenharmony_ci    /**
259561847f8eSopenharmony_ci     * Incandescent white balance mode.
259661847f8eSopenharmony_ci     *
259761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
259861847f8eSopenharmony_ci     * @systemapi
259961847f8eSopenharmony_ci     * @since 12
260061847f8eSopenharmony_ci     */
260161847f8eSopenharmony_ci    INCANDESCENT = 2,
260261847f8eSopenharmony_ci
260361847f8eSopenharmony_ci    /**
260461847f8eSopenharmony_ci     * Fluorescent white balance mode.
260561847f8eSopenharmony_ci     *
260661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
260761847f8eSopenharmony_ci     * @systemapi
260861847f8eSopenharmony_ci     * @since 12
260961847f8eSopenharmony_ci     */
261061847f8eSopenharmony_ci    FLUORESCENT = 3,
261161847f8eSopenharmony_ci
261261847f8eSopenharmony_ci    /**
261361847f8eSopenharmony_ci     * Daylight white balance mode.
261461847f8eSopenharmony_ci     *
261561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
261661847f8eSopenharmony_ci     * @systemapi
261761847f8eSopenharmony_ci     * @since 12
261861847f8eSopenharmony_ci     */
261961847f8eSopenharmony_ci    DAYLIGHT = 4,
262061847f8eSopenharmony_ci
262161847f8eSopenharmony_ci    /**
262261847f8eSopenharmony_ci     * Manual white balance mode.
262361847f8eSopenharmony_ci     *
262461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
262561847f8eSopenharmony_ci     * @systemapi
262661847f8eSopenharmony_ci     * @since 12
262761847f8eSopenharmony_ci     */
262861847f8eSopenharmony_ci    MANUAL = 5,
262961847f8eSopenharmony_ci
263061847f8eSopenharmony_ci    /**
263161847f8eSopenharmony_ci     * Lock white balance mode.
263261847f8eSopenharmony_ci     *
263361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
263461847f8eSopenharmony_ci     * @systemapi
263561847f8eSopenharmony_ci     * @since 12
263661847f8eSopenharmony_ci     */
263761847f8eSopenharmony_ci    LOCKED = 6
263861847f8eSopenharmony_ci  }
263961847f8eSopenharmony_ci
264061847f8eSopenharmony_ci  /**
264161847f8eSopenharmony_ci   * White Balance Query object.
264261847f8eSopenharmony_ci   *
264361847f8eSopenharmony_ci   * @interface WhiteBalanceQuery
264461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
264561847f8eSopenharmony_ci   * @systemapi
264661847f8eSopenharmony_ci   * @since 12
264761847f8eSopenharmony_ci   */
264861847f8eSopenharmony_ci  interface WhiteBalanceQuery {
264961847f8eSopenharmony_ci    /**
265061847f8eSopenharmony_ci     * Checks whether a specified white balance mode is supported.
265161847f8eSopenharmony_ci     *
265261847f8eSopenharmony_ci     * @param { WhiteBalanceMode } mode - White balance mode.
265361847f8eSopenharmony_ci     * @returns { boolean } Is the white balance mode supported.
265461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
265561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
265661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
265761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
265861847f8eSopenharmony_ci     * @systemapi
265961847f8eSopenharmony_ci     * @since 12
266061847f8eSopenharmony_ci     */
266161847f8eSopenharmony_ci    isWhiteBalanceModeSupported(mode: WhiteBalanceMode): boolean;
266261847f8eSopenharmony_ci
266361847f8eSopenharmony_ci    /**
266461847f8eSopenharmony_ci     * Query the white balance mode range.
266561847f8eSopenharmony_ci     *
266661847f8eSopenharmony_ci     * @returns { Array<number> } The array of white balance mode range.
266761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
266861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
266961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
267061847f8eSopenharmony_ci     * @systemapi
267161847f8eSopenharmony_ci     * @since 12
267261847f8eSopenharmony_ci     */
267361847f8eSopenharmony_ci    getWhiteBalanceRange(): Array<number>;
267461847f8eSopenharmony_ci  }
267561847f8eSopenharmony_ci
267661847f8eSopenharmony_ci  /**
267761847f8eSopenharmony_ci   * WhiteBalance object.
267861847f8eSopenharmony_ci   *
267961847f8eSopenharmony_ci   * @interface WhiteBalance
268061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
268161847f8eSopenharmony_ci   * @systemapi
268261847f8eSopenharmony_ci   * @since 12
268361847f8eSopenharmony_ci   */
268461847f8eSopenharmony_ci  interface WhiteBalance extends WhiteBalanceQuery {
268561847f8eSopenharmony_ci    /**
268661847f8eSopenharmony_ci     * Gets current white balance mode.
268761847f8eSopenharmony_ci     *
268861847f8eSopenharmony_ci     * @returns { WhiteBalanceMode } The current white balance mode.
268961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
269061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
269161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
269261847f8eSopenharmony_ci     * @systemapi
269361847f8eSopenharmony_ci     * @since 12
269461847f8eSopenharmony_ci     */
269561847f8eSopenharmony_ci    getWhiteBalanceMode(): WhiteBalanceMode;
269661847f8eSopenharmony_ci
269761847f8eSopenharmony_ci    /**
269861847f8eSopenharmony_ci     * Sets white balance mode.
269961847f8eSopenharmony_ci     *
270061847f8eSopenharmony_ci     * @param { WhiteBalanceMode } mode - Target white balance mode.
270161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
270261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
270361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
270461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
270561847f8eSopenharmony_ci     * @systemapi
270661847f8eSopenharmony_ci     * @since 12
270761847f8eSopenharmony_ci     */
270861847f8eSopenharmony_ci    setWhiteBalanceMode(mode: WhiteBalanceMode): void;
270961847f8eSopenharmony_ci
271061847f8eSopenharmony_ci    /**
271161847f8eSopenharmony_ci     * Gets current white balance.
271261847f8eSopenharmony_ci     *
271361847f8eSopenharmony_ci     * @returns { number } The current white balance.
271461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
271561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
271661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
271761847f8eSopenharmony_ci     * @systemapi
271861847f8eSopenharmony_ci     * @since 12
271961847f8eSopenharmony_ci     */
272061847f8eSopenharmony_ci    getWhiteBalance(): number;
272161847f8eSopenharmony_ci
272261847f8eSopenharmony_ci    /**
272361847f8eSopenharmony_ci     * Sets white balance.
272461847f8eSopenharmony_ci     *
272561847f8eSopenharmony_ci     * @param { number } whiteBalance - White balance.
272661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
272761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
272861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
272961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
273061847f8eSopenharmony_ci     * @systemapi
273161847f8eSopenharmony_ci     * @since 12
273261847f8eSopenharmony_ci     */
273361847f8eSopenharmony_ci    setWhiteBalance(whiteBalance: number): void;
273461847f8eSopenharmony_ci  }
273561847f8eSopenharmony_ci
273661847f8eSopenharmony_ci  /**
273761847f8eSopenharmony_ci   * Manual ISO Query object.
273861847f8eSopenharmony_ci   *
273961847f8eSopenharmony_ci   * @interface ManualIsoQuery
274061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
274161847f8eSopenharmony_ci   * @systemapi
274261847f8eSopenharmony_ci   * @since 12
274361847f8eSopenharmony_ci   */
274461847f8eSopenharmony_ci  interface ManualIsoQuery {
274561847f8eSopenharmony_ci    /**
274661847f8eSopenharmony_ci     * Checks whether ISO is supported.
274761847f8eSopenharmony_ci     *
274861847f8eSopenharmony_ci     * @returns { boolean } Is the ISO supported.
274961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
275061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
275161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
275261847f8eSopenharmony_ci     * @systemapi
275361847f8eSopenharmony_ci     * @since 12
275461847f8eSopenharmony_ci     */
275561847f8eSopenharmony_ci    isManualIsoSupported(): boolean;
275661847f8eSopenharmony_ci
275761847f8eSopenharmony_ci    /**
275861847f8eSopenharmony_ci     * Get the ISO range.
275961847f8eSopenharmony_ci     *
276061847f8eSopenharmony_ci     * @returns { Array<number> } The array of ISO range.
276161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
276261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
276361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
276461847f8eSopenharmony_ci     * @systemapi
276561847f8eSopenharmony_ci     * @since 12
276661847f8eSopenharmony_ci     */
276761847f8eSopenharmony_ci    getIsoRange(): Array<number>;
276861847f8eSopenharmony_ci  }
276961847f8eSopenharmony_ci
277061847f8eSopenharmony_ci  /**
277161847f8eSopenharmony_ci   * ManualIso object.
277261847f8eSopenharmony_ci   *
277361847f8eSopenharmony_ci   * @interface ManualIso
277461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
277561847f8eSopenharmony_ci   * @systemapi
277661847f8eSopenharmony_ci   * @since 12
277761847f8eSopenharmony_ci   */
277861847f8eSopenharmony_ci  interface ManualIso extends ManualIsoQuery {
277961847f8eSopenharmony_ci    /**
278061847f8eSopenharmony_ci     * Gets current ISO.
278161847f8eSopenharmony_ci     *
278261847f8eSopenharmony_ci     * @returns { number } The current ISO.
278361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
278461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
278561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
278661847f8eSopenharmony_ci     * @systemapi
278761847f8eSopenharmony_ci     * @since 12
278861847f8eSopenharmony_ci     */
278961847f8eSopenharmony_ci    getIso(): number;
279061847f8eSopenharmony_ci
279161847f8eSopenharmony_ci    /**
279261847f8eSopenharmony_ci     * Sets ISO.
279361847f8eSopenharmony_ci     *
279461847f8eSopenharmony_ci     * @param { number } iso - ISO
279561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
279661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
279761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
279861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
279961847f8eSopenharmony_ci     * @systemapi
280061847f8eSopenharmony_ci     * @since 12
280161847f8eSopenharmony_ci     */
280261847f8eSopenharmony_ci    setIso(iso: number): void;
280361847f8eSopenharmony_ci  }
280461847f8eSopenharmony_ci
280561847f8eSopenharmony_ci  /**
280661847f8eSopenharmony_ci   * Enum for smooth zoom mode.
280761847f8eSopenharmony_ci   *
280861847f8eSopenharmony_ci   * @enum { number }
280961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
281061847f8eSopenharmony_ci   * @since 11
281161847f8eSopenharmony_ci   */
281261847f8eSopenharmony_ci  enum SmoothZoomMode {
281361847f8eSopenharmony_ci    /**
281461847f8eSopenharmony_ci     * Normal zoom mode.
281561847f8eSopenharmony_ci     *
281661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
281761847f8eSopenharmony_ci     * @since 11
281861847f8eSopenharmony_ci     */
281961847f8eSopenharmony_ci    NORMAL = 0
282061847f8eSopenharmony_ci  }
282161847f8eSopenharmony_ci
282261847f8eSopenharmony_ci  /**
282361847f8eSopenharmony_ci   * SmoothZoomInfo object
282461847f8eSopenharmony_ci   *
282561847f8eSopenharmony_ci   * @typedef SmoothZoomInfo
282661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
282761847f8eSopenharmony_ci   * @since 11
282861847f8eSopenharmony_ci   */
282961847f8eSopenharmony_ci  interface SmoothZoomInfo {
283061847f8eSopenharmony_ci    /**
283161847f8eSopenharmony_ci     * The duration of smooth zoom.
283261847f8eSopenharmony_ci     *
283361847f8eSopenharmony_ci     * @type { number }
283461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
283561847f8eSopenharmony_ci     * @since 11
283661847f8eSopenharmony_ci     */
283761847f8eSopenharmony_ci    duration: number;
283861847f8eSopenharmony_ci  }
283961847f8eSopenharmony_ci
284061847f8eSopenharmony_ci  /**
284161847f8eSopenharmony_ci   * ZoomPointInfo object.
284261847f8eSopenharmony_ci   *
284361847f8eSopenharmony_ci   * @typedef ZoomPointInfo
284461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
284561847f8eSopenharmony_ci   * @systemapi
284661847f8eSopenharmony_ci   * @since 12
284761847f8eSopenharmony_ci   */
284861847f8eSopenharmony_ci  interface ZoomPointInfo {
284961847f8eSopenharmony_ci    /**
285061847f8eSopenharmony_ci     * The zoom ratio value.
285161847f8eSopenharmony_ci     *
285261847f8eSopenharmony_ci     * @type { number }
285361847f8eSopenharmony_ci     * @readonly
285461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
285561847f8eSopenharmony_ci     * @systemapi
285661847f8eSopenharmony_ci     * @since 12
285761847f8eSopenharmony_ci     */
285861847f8eSopenharmony_ci    readonly zoomRatio: number;
285961847f8eSopenharmony_ci
286061847f8eSopenharmony_ci    /**
286161847f8eSopenharmony_ci     * The equivalent focal Length.
286261847f8eSopenharmony_ci     *
286361847f8eSopenharmony_ci     * @type { number }
286461847f8eSopenharmony_ci     * @readonly
286561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
286661847f8eSopenharmony_ci     * @systemapi
286761847f8eSopenharmony_ci     * @since 12
286861847f8eSopenharmony_ci     */
286961847f8eSopenharmony_ci    readonly equivalentFocalLength: number;
287061847f8eSopenharmony_ci  }
287161847f8eSopenharmony_ci
287261847f8eSopenharmony_ci  /**
287361847f8eSopenharmony_ci   * Zoom query object.
287461847f8eSopenharmony_ci   *
287561847f8eSopenharmony_ci   * @interface ZoomQuery
287661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
287761847f8eSopenharmony_ci   * @since 12
287861847f8eSopenharmony_ci   */
287961847f8eSopenharmony_ci  interface ZoomQuery {
288061847f8eSopenharmony_ci    /**
288161847f8eSopenharmony_ci     * Gets all supported zoom ratio range.
288261847f8eSopenharmony_ci     *
288361847f8eSopenharmony_ci     * @returns { Array<number> } The zoom ratio range.
288461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
288561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
288661847f8eSopenharmony_ci     * @since 11
288761847f8eSopenharmony_ci     */
288861847f8eSopenharmony_ci    /**
288961847f8eSopenharmony_ci     * Gets all supported zoom ratio range.
289061847f8eSopenharmony_ci     * Move to ZoomQuery interface from Zoom since 12.
289161847f8eSopenharmony_ci     *
289261847f8eSopenharmony_ci     * @returns { Array<number> } The zoom ratio range.
289361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
289461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
289561847f8eSopenharmony_ci     * @since 12
289661847f8eSopenharmony_ci     */
289761847f8eSopenharmony_ci    getZoomRatioRange(): Array<number>;
289861847f8eSopenharmony_ci
289961847f8eSopenharmony_ci    /**
290061847f8eSopenharmony_ci     * Gets all important zoom ratio infos.
290161847f8eSopenharmony_ci     *
290261847f8eSopenharmony_ci     * @returns { Array<ZoomPointInfo> } The zoom point infos.
290361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
290461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
290561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
290661847f8eSopenharmony_ci     * @systemapi
290761847f8eSopenharmony_ci     * @since 12
290861847f8eSopenharmony_ci     */
290961847f8eSopenharmony_ci    getZoomPointInfos(): Array<ZoomPointInfo>;
291061847f8eSopenharmony_ci  }
291161847f8eSopenharmony_ci
291261847f8eSopenharmony_ci  /**
291361847f8eSopenharmony_ci   * Zoom object.
291461847f8eSopenharmony_ci   *
291561847f8eSopenharmony_ci   * @interface Zoom
291661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
291761847f8eSopenharmony_ci   * @since 11
291861847f8eSopenharmony_ci   */
291961847f8eSopenharmony_ci  interface Zoom extends ZoomQuery {
292061847f8eSopenharmony_ci    /**
292161847f8eSopenharmony_ci     * Gets zoom ratio.
292261847f8eSopenharmony_ci     *
292361847f8eSopenharmony_ci     * @returns { number } The zoom ratio value.
292461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
292561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
292661847f8eSopenharmony_ci     * @since 11
292761847f8eSopenharmony_ci     */
292861847f8eSopenharmony_ci    /**
292961847f8eSopenharmony_ci     * Gets zoom ratio.
293061847f8eSopenharmony_ci     *
293161847f8eSopenharmony_ci     * @returns { number } The zoom ratio value.
293261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
293361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
293461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
293561847f8eSopenharmony_ci     * @since 12
293661847f8eSopenharmony_ci     */
293761847f8eSopenharmony_ci    getZoomRatio(): number;
293861847f8eSopenharmony_ci
293961847f8eSopenharmony_ci    /**
294061847f8eSopenharmony_ci     * Sets zoom ratio.
294161847f8eSopenharmony_ci     *
294261847f8eSopenharmony_ci     * @param { number } zoomRatio - Target zoom ratio.
294361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
294461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
294561847f8eSopenharmony_ci     * @since 11
294661847f8eSopenharmony_ci     */
294761847f8eSopenharmony_ci    setZoomRatio(zoomRatio: number): void;
294861847f8eSopenharmony_ci
294961847f8eSopenharmony_ci    /**
295061847f8eSopenharmony_ci     * Sets target zoom ratio by smooth method.
295161847f8eSopenharmony_ci     *
295261847f8eSopenharmony_ci     * @param { number } targetRatio - Target zoom ratio.
295361847f8eSopenharmony_ci     * @param { SmoothZoomMode } mode - Smooth zoom mode.
295461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
295561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
295661847f8eSopenharmony_ci     * @since 11
295761847f8eSopenharmony_ci     */
295861847f8eSopenharmony_ci    setSmoothZoom(targetRatio: number, mode?: SmoothZoomMode): void;
295961847f8eSopenharmony_ci
296061847f8eSopenharmony_ci    /**
296161847f8eSopenharmony_ci     * Notify device to prepare for zoom.
296261847f8eSopenharmony_ci     *
296361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
296461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
296561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
296661847f8eSopenharmony_ci     * @systemapi
296761847f8eSopenharmony_ci     * @since 11
296861847f8eSopenharmony_ci     */
296961847f8eSopenharmony_ci    prepareZoom(): void;
297061847f8eSopenharmony_ci
297161847f8eSopenharmony_ci    /**
297261847f8eSopenharmony_ci     * Notify device of zoom completion.
297361847f8eSopenharmony_ci     *
297461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
297561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
297661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
297761847f8eSopenharmony_ci     * @systemapi
297861847f8eSopenharmony_ci     * @since 11
297961847f8eSopenharmony_ci     */
298061847f8eSopenharmony_ci    unprepareZoom(): void;
298161847f8eSopenharmony_ci  }
298261847f8eSopenharmony_ci
298361847f8eSopenharmony_ci  /**
298461847f8eSopenharmony_ci   * Enum for video stabilization mode.
298561847f8eSopenharmony_ci   *
298661847f8eSopenharmony_ci   * @enum { number }
298761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
298861847f8eSopenharmony_ci   * @since 10
298961847f8eSopenharmony_ci   */
299061847f8eSopenharmony_ci  enum VideoStabilizationMode {
299161847f8eSopenharmony_ci    /**
299261847f8eSopenharmony_ci     * Turn off video stablization.
299361847f8eSopenharmony_ci     *
299461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
299561847f8eSopenharmony_ci     * @since 10
299661847f8eSopenharmony_ci     */
299761847f8eSopenharmony_ci    OFF = 0,
299861847f8eSopenharmony_ci
299961847f8eSopenharmony_ci    /**
300061847f8eSopenharmony_ci     * LOW mode provides basic stabilization effect.
300161847f8eSopenharmony_ci     *
300261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
300361847f8eSopenharmony_ci     * @since 10
300461847f8eSopenharmony_ci     */
300561847f8eSopenharmony_ci    LOW = 1,
300661847f8eSopenharmony_ci
300761847f8eSopenharmony_ci    /**
300861847f8eSopenharmony_ci     * MIDDLE mode means algorithms can achieve better effects than LOW mode.
300961847f8eSopenharmony_ci     *
301061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
301161847f8eSopenharmony_ci     * @since 10
301261847f8eSopenharmony_ci     */
301361847f8eSopenharmony_ci    MIDDLE = 2,
301461847f8eSopenharmony_ci
301561847f8eSopenharmony_ci    /**
301661847f8eSopenharmony_ci     * HIGH mode means algorithms can achieve better effects than MIDDLE mode.
301761847f8eSopenharmony_ci     *
301861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
301961847f8eSopenharmony_ci     * @since 10
302061847f8eSopenharmony_ci     */
302161847f8eSopenharmony_ci    HIGH = 3,
302261847f8eSopenharmony_ci
302361847f8eSopenharmony_ci    /**
302461847f8eSopenharmony_ci     * Camera HDF can select mode automatically.
302561847f8eSopenharmony_ci     *
302661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
302761847f8eSopenharmony_ci     * @since 10
302861847f8eSopenharmony_ci     */
302961847f8eSopenharmony_ci    AUTO = 4
303061847f8eSopenharmony_ci  }
303161847f8eSopenharmony_ci
303261847f8eSopenharmony_ci  /**
303361847f8eSopenharmony_ci   * Stabilization Query object.
303461847f8eSopenharmony_ci   *
303561847f8eSopenharmony_ci   * @interface StabilizationQuery
303661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
303761847f8eSopenharmony_ci   * @since 12
303861847f8eSopenharmony_ci   */
303961847f8eSopenharmony_ci  interface StabilizationQuery {
304061847f8eSopenharmony_ci    /**
304161847f8eSopenharmony_ci     * Check whether the specified video stabilization mode is supported.
304261847f8eSopenharmony_ci     *
304361847f8eSopenharmony_ci     * @param { VideoStabilizationMode } vsMode - Video Stabilization mode.
304461847f8eSopenharmony_ci     * @returns { boolean } Is flash mode supported.
304561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
304661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
304761847f8eSopenharmony_ci     * @since 11
304861847f8eSopenharmony_ci     */
304961847f8eSopenharmony_ci    /**
305061847f8eSopenharmony_ci     * Check whether the specified video stabilization mode is supported.
305161847f8eSopenharmony_ci     * Move to StabilizationQuery interface from Stabilization since 12.
305261847f8eSopenharmony_ci     *
305361847f8eSopenharmony_ci     * @param { VideoStabilizationMode } vsMode - Video Stabilization mode.
305461847f8eSopenharmony_ci     * @returns { boolean } Is flash mode supported.
305561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
305661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
305761847f8eSopenharmony_ci     * @since 12
305861847f8eSopenharmony_ci     */
305961847f8eSopenharmony_ci    isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean;
306061847f8eSopenharmony_ci  }
306161847f8eSopenharmony_ci
306261847f8eSopenharmony_ci  /**
306361847f8eSopenharmony_ci   * Stabilization object.
306461847f8eSopenharmony_ci   *
306561847f8eSopenharmony_ci   * @interface Stabilization
306661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
306761847f8eSopenharmony_ci   * @since 11
306861847f8eSopenharmony_ci   */
306961847f8eSopenharmony_ci  interface Stabilization extends StabilizationQuery {
307061847f8eSopenharmony_ci    /**
307161847f8eSopenharmony_ci     * Query the video stabilization mode currently in use.
307261847f8eSopenharmony_ci     *
307361847f8eSopenharmony_ci     * @returns { VideoStabilizationMode } The current video stabilization mode.
307461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
307561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
307661847f8eSopenharmony_ci     * @since 11
307761847f8eSopenharmony_ci     */
307861847f8eSopenharmony_ci    getActiveVideoStabilizationMode(): VideoStabilizationMode;
307961847f8eSopenharmony_ci
308061847f8eSopenharmony_ci    /**
308161847f8eSopenharmony_ci     * Set video stabilization mode.
308261847f8eSopenharmony_ci     *
308361847f8eSopenharmony_ci     * @param { VideoStabilizationMode } mode - video stabilization mode to set.
308461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
308561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
308661847f8eSopenharmony_ci     * @since 11
308761847f8eSopenharmony_ci     */
308861847f8eSopenharmony_ci    setVideoStabilizationMode(mode: VideoStabilizationMode): void;
308961847f8eSopenharmony_ci  }
309061847f8eSopenharmony_ci
309161847f8eSopenharmony_ci  /**
309261847f8eSopenharmony_ci   * Enumerates the camera beauty effect types.
309361847f8eSopenharmony_ci   *
309461847f8eSopenharmony_ci   * @enum { number }
309561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
309661847f8eSopenharmony_ci   * @systemapi
309761847f8eSopenharmony_ci   * @since 10
309861847f8eSopenharmony_ci   */
309961847f8eSopenharmony_ci  enum BeautyType {
310061847f8eSopenharmony_ci    /**
310161847f8eSopenharmony_ci     * Auto beauty type.
310261847f8eSopenharmony_ci     *
310361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
310461847f8eSopenharmony_ci     * @systemapi
310561847f8eSopenharmony_ci     * @since 10
310661847f8eSopenharmony_ci     */
310761847f8eSopenharmony_ci    AUTO = 0,
310861847f8eSopenharmony_ci
310961847f8eSopenharmony_ci    /**
311061847f8eSopenharmony_ci     * Skin smooth beauty type.
311161847f8eSopenharmony_ci     *
311261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
311361847f8eSopenharmony_ci     * @systemapi
311461847f8eSopenharmony_ci     * @since 10
311561847f8eSopenharmony_ci     */
311661847f8eSopenharmony_ci    SKIN_SMOOTH = 1,
311761847f8eSopenharmony_ci
311861847f8eSopenharmony_ci    /**
311961847f8eSopenharmony_ci     * Face slender beauty type.
312061847f8eSopenharmony_ci     *
312161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
312261847f8eSopenharmony_ci     * @systemapi
312361847f8eSopenharmony_ci     * @since 10
312461847f8eSopenharmony_ci     */
312561847f8eSopenharmony_ci    FACE_SLENDER = 2,
312661847f8eSopenharmony_ci
312761847f8eSopenharmony_ci    /**
312861847f8eSopenharmony_ci     * Skin tone beauty type.
312961847f8eSopenharmony_ci     *
313061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
313161847f8eSopenharmony_ci     * @systemapi
313261847f8eSopenharmony_ci     * @since 10
313361847f8eSopenharmony_ci     */
313461847f8eSopenharmony_ci    SKIN_TONE = 3
313561847f8eSopenharmony_ci  }
313661847f8eSopenharmony_ci
313761847f8eSopenharmony_ci  /**
313861847f8eSopenharmony_ci   * Beauty Query object.
313961847f8eSopenharmony_ci   *
314061847f8eSopenharmony_ci   * @interface BeautyQuery
314161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
314261847f8eSopenharmony_ci   * @systemapi
314361847f8eSopenharmony_ci   * @since 12
314461847f8eSopenharmony_ci   */
314561847f8eSopenharmony_ci  interface BeautyQuery {
314661847f8eSopenharmony_ci    /**
314761847f8eSopenharmony_ci     * Gets supported beauty effect types.
314861847f8eSopenharmony_ci     *
314961847f8eSopenharmony_ci     * @returns { Array<BeautyType> } List of beauty effect types.
315061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
315161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
315261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
315361847f8eSopenharmony_ci     * @systemapi
315461847f8eSopenharmony_ci     * @since 11
315561847f8eSopenharmony_ci     */
315661847f8eSopenharmony_ci    /**
315761847f8eSopenharmony_ci     * Gets supported beauty effect types.
315861847f8eSopenharmony_ci     * Move to BeautyQuery from Beauty since 12.
315961847f8eSopenharmony_ci     *
316061847f8eSopenharmony_ci     * @returns { Array<BeautyType> } List of beauty effect types.
316161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
316261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
316361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
316461847f8eSopenharmony_ci     * @systemapi
316561847f8eSopenharmony_ci     * @since 12
316661847f8eSopenharmony_ci     */
316761847f8eSopenharmony_ci    getSupportedBeautyTypes(): Array<BeautyType>;
316861847f8eSopenharmony_ci
316961847f8eSopenharmony_ci    /**
317061847f8eSopenharmony_ci     * Gets the specific beauty effect type range.
317161847f8eSopenharmony_ci     *
317261847f8eSopenharmony_ci     * @param { BeautyType } type - The type of beauty effect.
317361847f8eSopenharmony_ci     * @returns { Array<number> } The array of the specific beauty effect range.
317461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
317561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
317661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
317761847f8eSopenharmony_ci     * @systemapi
317861847f8eSopenharmony_ci     * @since 11
317961847f8eSopenharmony_ci     */
318061847f8eSopenharmony_ci    /**
318161847f8eSopenharmony_ci     * Gets the specific beauty effect type range.
318261847f8eSopenharmony_ci     * Move to BeautyQuery from Beauty since 12.
318361847f8eSopenharmony_ci     *
318461847f8eSopenharmony_ci     * @param { BeautyType } type - The type of beauty effect.
318561847f8eSopenharmony_ci     * @returns { Array<number> } The array of the specific beauty effect range.
318661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
318761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
318861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
318961847f8eSopenharmony_ci     * @systemapi
319061847f8eSopenharmony_ci     * @since 12
319161847f8eSopenharmony_ci     */
319261847f8eSopenharmony_ci    getSupportedBeautyRange(type: BeautyType): Array<number>;
319361847f8eSopenharmony_ci  }
319461847f8eSopenharmony_ci
319561847f8eSopenharmony_ci  /**
319661847f8eSopenharmony_ci   * Beauty object.
319761847f8eSopenharmony_ci   *
319861847f8eSopenharmony_ci   * @interface Beauty
319961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
320061847f8eSopenharmony_ci   * @systemapi
320161847f8eSopenharmony_ci   * @since 11
320261847f8eSopenharmony_ci   */
320361847f8eSopenharmony_ci  interface Beauty extends BeautyQuery {
320461847f8eSopenharmony_ci    /**
320561847f8eSopenharmony_ci     * Gets the beauty effect in use.
320661847f8eSopenharmony_ci     *
320761847f8eSopenharmony_ci     * @param { BeautyType } type - The type of beauty effect.
320861847f8eSopenharmony_ci     * @returns { number } the beauty effect in use.
320961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
321061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
321161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
321261847f8eSopenharmony_ci     * @systemapi
321361847f8eSopenharmony_ci     * @since 11
321461847f8eSopenharmony_ci     */
321561847f8eSopenharmony_ci    getBeauty(type: BeautyType): number;
321661847f8eSopenharmony_ci
321761847f8eSopenharmony_ci    /**
321861847f8eSopenharmony_ci     * Sets a beauty effect for a camera device.
321961847f8eSopenharmony_ci     *
322061847f8eSopenharmony_ci     * @param { BeautyType } type - The type of beauty effect.
322161847f8eSopenharmony_ci     * @param { number } value The number of beauty effect.
322261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
322361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
322461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
322561847f8eSopenharmony_ci     * @systemapi
322661847f8eSopenharmony_ci     * @since 11
322761847f8eSopenharmony_ci     */
322861847f8eSopenharmony_ci    setBeauty(type: BeautyType, value: number): void;
322961847f8eSopenharmony_ci  }
323061847f8eSopenharmony_ci
323161847f8eSopenharmony_ci  /**
323261847f8eSopenharmony_ci   * EffectSuggestion object.
323361847f8eSopenharmony_ci   *
323461847f8eSopenharmony_ci   * @typedef EffectSuggestion
323561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
323661847f8eSopenharmony_ci   * @systemapi
323761847f8eSopenharmony_ci   * @since 12
323861847f8eSopenharmony_ci   */
323961847f8eSopenharmony_ci  interface EffectSuggestion {
324061847f8eSopenharmony_ci
324161847f8eSopenharmony_ci    /**
324261847f8eSopenharmony_ci     * Checks whether effect suggestion is supported.
324361847f8eSopenharmony_ci     *
324461847f8eSopenharmony_ci     * @returns { boolean } Is the effect suggestion supported.
324561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
324661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
324761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
324861847f8eSopenharmony_ci     * @systemapi
324961847f8eSopenharmony_ci     * @since 12
325061847f8eSopenharmony_ci     */
325161847f8eSopenharmony_ci    isEffectSuggestionSupported(): boolean;
325261847f8eSopenharmony_ci
325361847f8eSopenharmony_ci    /**
325461847f8eSopenharmony_ci     * Enable effect suggestion for session.
325561847f8eSopenharmony_ci     *
325661847f8eSopenharmony_ci     * @param { boolean } enabled enable effect suggestion for session if TRUE..
325761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
325861847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
325961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
326061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
326161847f8eSopenharmony_ci     * @systemapi
326261847f8eSopenharmony_ci     * @since 12
326361847f8eSopenharmony_ci     */
326461847f8eSopenharmony_ci    enableEffectSuggestion(enabled: boolean): void;
326561847f8eSopenharmony_ci
326661847f8eSopenharmony_ci    /**
326761847f8eSopenharmony_ci     * Gets supported effect suggestion types.
326861847f8eSopenharmony_ci     *
326961847f8eSopenharmony_ci     * @returns { Array<EffectSuggestionType> } The array of the effect suggestion types.
327061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
327161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
327261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
327361847f8eSopenharmony_ci     * @systemapi
327461847f8eSopenharmony_ci     * @since 12
327561847f8eSopenharmony_ci     */
327661847f8eSopenharmony_ci    getSupportedEffectSuggestionTypes(): Array<EffectSuggestionType>;
327761847f8eSopenharmony_ci
327861847f8eSopenharmony_ci    /**
327961847f8eSopenharmony_ci     * Set the range of effect suggestion type and enable status.
328061847f8eSopenharmony_ci     * The application should fully set all data when it starts up.
328161847f8eSopenharmony_ci     *
328261847f8eSopenharmony_ci     * @param { Array<EffectSuggestionStatus> } status - The array of the effect suggestion status.
328361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
328461847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
328561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
328661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
328761847f8eSopenharmony_ci     * @systemapi
328861847f8eSopenharmony_ci     * @since 12
328961847f8eSopenharmony_ci     */
329061847f8eSopenharmony_ci    setEffectSuggestionStatus(status: Array<EffectSuggestionStatus>): void;
329161847f8eSopenharmony_ci  
329261847f8eSopenharmony_ci    /**
329361847f8eSopenharmony_ci     * Update the enable status of the effect suggestion type.
329461847f8eSopenharmony_ci     *
329561847f8eSopenharmony_ci     * @param { EffectSuggestionType } type - The type of effect suggestion.
329661847f8eSopenharmony_ci     * @param { boolean } enabled - The status of effect suggestion type.
329761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
329861847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
329961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
330061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
330161847f8eSopenharmony_ci     * @systemapi
330261847f8eSopenharmony_ci     * @since 12
330361847f8eSopenharmony_ci     */
330461847f8eSopenharmony_ci    updateEffectSuggestion(type: EffectSuggestionType, enabled: boolean): void;
330561847f8eSopenharmony_ci  }
330661847f8eSopenharmony_ci
330761847f8eSopenharmony_ci  /**
330861847f8eSopenharmony_ci   * Enumerates the camera color effect types.
330961847f8eSopenharmony_ci   *
331061847f8eSopenharmony_ci   * @enum { number }
331161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
331261847f8eSopenharmony_ci   * @systemapi
331361847f8eSopenharmony_ci   * @since 11
331461847f8eSopenharmony_ci   */
331561847f8eSopenharmony_ci  enum ColorEffectType {
331661847f8eSopenharmony_ci    /**
331761847f8eSopenharmony_ci     * Normal color effect type.
331861847f8eSopenharmony_ci     *
331961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
332061847f8eSopenharmony_ci     * @systemapi
332161847f8eSopenharmony_ci     * @since 11
332261847f8eSopenharmony_ci     */
332361847f8eSopenharmony_ci    NORMAL = 0,
332461847f8eSopenharmony_ci
332561847f8eSopenharmony_ci    /**
332661847f8eSopenharmony_ci     * Bright color effect type.
332761847f8eSopenharmony_ci     *
332861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
332961847f8eSopenharmony_ci     * @systemapi
333061847f8eSopenharmony_ci     * @since 11
333161847f8eSopenharmony_ci     */
333261847f8eSopenharmony_ci    BRIGHT = 1,
333361847f8eSopenharmony_ci
333461847f8eSopenharmony_ci    /**
333561847f8eSopenharmony_ci     * Soft color effect type.
333661847f8eSopenharmony_ci     *
333761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
333861847f8eSopenharmony_ci     * @systemapi
333961847f8eSopenharmony_ci     * @since 11
334061847f8eSopenharmony_ci     */
334161847f8eSopenharmony_ci    SOFT = 2,
334261847f8eSopenharmony_ci
334361847f8eSopenharmony_ci    /**
334461847f8eSopenharmony_ci     * Black white color effect type.
334561847f8eSopenharmony_ci     *
334661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
334761847f8eSopenharmony_ci     * @systemapi
334861847f8eSopenharmony_ci     * @since 12
334961847f8eSopenharmony_ci     */
335061847f8eSopenharmony_ci    BLACK_WHITE = 3
335161847f8eSopenharmony_ci  }
335261847f8eSopenharmony_ci
335361847f8eSopenharmony_ci  /**
335461847f8eSopenharmony_ci   * Enum for policy type
335561847f8eSopenharmony_ci   *
335661847f8eSopenharmony_ci   * @enum { number }
335761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
335861847f8eSopenharmony_ci   * @systemapi
335961847f8eSopenharmony_ci   * @since 12
336061847f8eSopenharmony_ci   */
336161847f8eSopenharmony_ci  enum PolicyType {
336261847f8eSopenharmony_ci    /**
336361847f8eSopenharmony_ci     * PRIVACY type.
336461847f8eSopenharmony_ci     *
336561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
336661847f8eSopenharmony_ci     * @systemapi
336761847f8eSopenharmony_ci     * @since 12
336861847f8eSopenharmony_ci     */
336961847f8eSopenharmony_ci    PRIVACY = 1,
337061847f8eSopenharmony_ci  }
337161847f8eSopenharmony_ci
337261847f8eSopenharmony_ci  /**
337361847f8eSopenharmony_ci   * Color Effect Query object.
337461847f8eSopenharmony_ci   *
337561847f8eSopenharmony_ci   * @interface ColorEffectQuery
337661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
337761847f8eSopenharmony_ci   * @systemapi
337861847f8eSopenharmony_ci   * @since 12
337961847f8eSopenharmony_ci   */
338061847f8eSopenharmony_ci  interface ColorEffectQuery {
338161847f8eSopenharmony_ci    /**
338261847f8eSopenharmony_ci     * Gets supported color effect types.
338361847f8eSopenharmony_ci     *
338461847f8eSopenharmony_ci     * @returns { Array<ColorEffectType> } List of color effect types.
338561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
338661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
338761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
338861847f8eSopenharmony_ci     * @systemapi
338961847f8eSopenharmony_ci     * @since 11
339061847f8eSopenharmony_ci     */
339161847f8eSopenharmony_ci    /**
339261847f8eSopenharmony_ci     * Gets supported color effect types.
339361847f8eSopenharmony_ci     * Move to ColorEffectQuery from ColorEffect since 12.
339461847f8eSopenharmony_ci     *
339561847f8eSopenharmony_ci     * @returns { Array<ColorEffectType> } List of color effect types.
339661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
339761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
339861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
339961847f8eSopenharmony_ci     * @systemapi
340061847f8eSopenharmony_ci     * @since 12
340161847f8eSopenharmony_ci     */
340261847f8eSopenharmony_ci    getSupportedColorEffects(): Array<ColorEffectType>;
340361847f8eSopenharmony_ci  }
340461847f8eSopenharmony_ci
340561847f8eSopenharmony_ci  /**
340661847f8eSopenharmony_ci   * Color effect object.
340761847f8eSopenharmony_ci   *
340861847f8eSopenharmony_ci   * @interface ColorEffect
340961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
341061847f8eSopenharmony_ci   * @systemapi
341161847f8eSopenharmony_ci   * @since 11
341261847f8eSopenharmony_ci   */
341361847f8eSopenharmony_ci  interface ColorEffect extends ColorEffectQuery {
341461847f8eSopenharmony_ci    /**
341561847f8eSopenharmony_ci     * Gets the specific color effect type.
341661847f8eSopenharmony_ci     *
341761847f8eSopenharmony_ci     * @returns { ColorEffectType } The array of the specific color effect type.
341861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
341961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
342061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
342161847f8eSopenharmony_ci     * @systemapi
342261847f8eSopenharmony_ci     * @since 11
342361847f8eSopenharmony_ci     */
342461847f8eSopenharmony_ci    getColorEffect(): ColorEffectType;
342561847f8eSopenharmony_ci
342661847f8eSopenharmony_ci    /**
342761847f8eSopenharmony_ci     * Sets a color effect for a camera device.
342861847f8eSopenharmony_ci     *
342961847f8eSopenharmony_ci     * @param { ColorEffectType } type - The type of color effect.
343061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
343161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
343261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
343361847f8eSopenharmony_ci     * @systemapi
343461847f8eSopenharmony_ci     * @since 11
343561847f8eSopenharmony_ci     */
343661847f8eSopenharmony_ci    setColorEffect(type: ColorEffectType): void;
343761847f8eSopenharmony_ci  }
343861847f8eSopenharmony_ci
343961847f8eSopenharmony_ci  /**
344061847f8eSopenharmony_ci   * Color Management Query object.
344161847f8eSopenharmony_ci   *
344261847f8eSopenharmony_ci   * @interface ColorManagementQuery
344361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
344461847f8eSopenharmony_ci   * @since 12
344561847f8eSopenharmony_ci   */
344661847f8eSopenharmony_ci  interface ColorManagementQuery {
344761847f8eSopenharmony_ci    /**
344861847f8eSopenharmony_ci     * Gets the supported color space types.
344961847f8eSopenharmony_ci     *
345061847f8eSopenharmony_ci     * @returns { Array<colorSpaceManager.ColorSpace> } The array of the supported color space for the session.
345161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
345261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
345361847f8eSopenharmony_ci     * @since 12
345461847f8eSopenharmony_ci     */
345561847f8eSopenharmony_ci    getSupportedColorSpaces(): Array<colorSpaceManager.ColorSpace>;
345661847f8eSopenharmony_ci  }
345761847f8eSopenharmony_ci
345861847f8eSopenharmony_ci  /**
345961847f8eSopenharmony_ci   * Color Management object.
346061847f8eSopenharmony_ci   *
346161847f8eSopenharmony_ci   * @interface ColorManagement
346261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
346361847f8eSopenharmony_ci   * @since 12
346461847f8eSopenharmony_ci   */
346561847f8eSopenharmony_ci  interface ColorManagement extends ColorManagementQuery {
346661847f8eSopenharmony_ci    /**
346761847f8eSopenharmony_ci     * Gets the specific color space type.
346861847f8eSopenharmony_ci     *
346961847f8eSopenharmony_ci     * @returns { colorSpaceManager.ColorSpace } Current color space.
347061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
347161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
347261847f8eSopenharmony_ci     * @since 12
347361847f8eSopenharmony_ci     */
347461847f8eSopenharmony_ci    getActiveColorSpace(): colorSpaceManager.ColorSpace;
347561847f8eSopenharmony_ci
347661847f8eSopenharmony_ci    /**
347761847f8eSopenharmony_ci     * Sets a color space for the session.
347861847f8eSopenharmony_ci     *
347961847f8eSopenharmony_ci     * @param { colorSpaceManager.ColorSpace } colorSpace - The type of color space.
348061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
348161847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - The colorSpace does not match the format.
348261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
348361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
348461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
348561847f8eSopenharmony_ci     * @since 12
348661847f8eSopenharmony_ci     */
348761847f8eSopenharmony_ci    setColorSpace(colorSpace: colorSpaceManager.ColorSpace): void;
348861847f8eSopenharmony_ci  }
348961847f8eSopenharmony_ci
349061847f8eSopenharmony_ci  /**
349161847f8eSopenharmony_ci   * Macro Query object.
349261847f8eSopenharmony_ci   *
349361847f8eSopenharmony_ci   * @interface MacroQuery
349461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
349561847f8eSopenharmony_ci   * @systemapi
349661847f8eSopenharmony_ci   * @since 12
349761847f8eSopenharmony_ci   */
349861847f8eSopenharmony_ci  interface MacroQuery {
349961847f8eSopenharmony_ci    /**
350061847f8eSopenharmony_ci     * Determine whether camera macro is supported.
350161847f8eSopenharmony_ci     *
350261847f8eSopenharmony_ci     * @returns { boolean } Is camera macro supported.
350361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
350461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
350561847f8eSopenharmony_ci     * @systemapi
350661847f8eSopenharmony_ci     * @since 11
350761847f8eSopenharmony_ci     */
350861847f8eSopenharmony_ci    /**
350961847f8eSopenharmony_ci     * Determine whether camera macro is supported.
351061847f8eSopenharmony_ci     * Move to MacroQuery interface from Macro since 12.
351161847f8eSopenharmony_ci     *
351261847f8eSopenharmony_ci     * @returns { boolean } Is camera macro supported.
351361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
351461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
351561847f8eSopenharmony_ci     * @systemapi
351661847f8eSopenharmony_ci     * @since 12
351761847f8eSopenharmony_ci     */
351861847f8eSopenharmony_ci    isMacroSupported(): boolean;
351961847f8eSopenharmony_ci  }
352061847f8eSopenharmony_ci
352161847f8eSopenharmony_ci  /**
352261847f8eSopenharmony_ci   * Macro object.
352361847f8eSopenharmony_ci   *
352461847f8eSopenharmony_ci   * @interface Macro
352561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
352661847f8eSopenharmony_ci   * @systemapi
352761847f8eSopenharmony_ci   * @since 11
352861847f8eSopenharmony_ci   */
352961847f8eSopenharmony_ci  interface Macro extends MacroQuery {
353061847f8eSopenharmony_ci    /**
353161847f8eSopenharmony_ci     * Enable macro for camera.
353261847f8eSopenharmony_ci     *
353361847f8eSopenharmony_ci     * @param { boolean } enabled - enable macro for camera if TRUE.
353461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
353561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
353661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
353761847f8eSopenharmony_ci     * @systemapi
353861847f8eSopenharmony_ci     * @since 11
353961847f8eSopenharmony_ci     */
354061847f8eSopenharmony_ci    /**
354161847f8eSopenharmony_ci     * Enable macro for camera.
354261847f8eSopenharmony_ci     *
354361847f8eSopenharmony_ci     * @param { boolean } enabled - enable macro for camera if TRUE.
354461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
354561847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
354661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
354761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
354861847f8eSopenharmony_ci     * @systemapi
354961847f8eSopenharmony_ci     * @since 12
355061847f8eSopenharmony_ci     */
355161847f8eSopenharmony_ci    enableMacro(enabled: boolean): void;
355261847f8eSopenharmony_ci  }
355361847f8eSopenharmony_ci
355461847f8eSopenharmony_ci  /**
355561847f8eSopenharmony_ci   * Enum for usage type used in capture session.
355661847f8eSopenharmony_ci   *
355761847f8eSopenharmony_ci   * @enum { number }
355861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
355961847f8eSopenharmony_ci   * @systemapi
356061847f8eSopenharmony_ci   * @since 12
356161847f8eSopenharmony_ci   */
356261847f8eSopenharmony_ci  enum UsageType {
356361847f8eSopenharmony_ci    /**
356461847f8eSopenharmony_ci     * Bokeh usage type.
356561847f8eSopenharmony_ci     *
356661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
356761847f8eSopenharmony_ci     * @systemapi
356861847f8eSopenharmony_ci     * @since 12
356961847f8eSopenharmony_ci     */
357061847f8eSopenharmony_ci    BOKEH = 0
357161847f8eSopenharmony_ci  }
357261847f8eSopenharmony_ci
357361847f8eSopenharmony_ci  /**
357461847f8eSopenharmony_ci   * Session object.
357561847f8eSopenharmony_ci   *
357661847f8eSopenharmony_ci   * @interface Session
357761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
357861847f8eSopenharmony_ci   * @since 11
357961847f8eSopenharmony_ci   */
358061847f8eSopenharmony_ci  interface Session {
358161847f8eSopenharmony_ci    /**
358261847f8eSopenharmony_ci     * Begin capture session config.
358361847f8eSopenharmony_ci     *
358461847f8eSopenharmony_ci     * @throws { BusinessError } 7400105 - Session config locked.
358561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
358661847f8eSopenharmony_ci     * @since 11
358761847f8eSopenharmony_ci     */
358861847f8eSopenharmony_ci    /**
358961847f8eSopenharmony_ci     * Begin capture session config.
359061847f8eSopenharmony_ci     *
359161847f8eSopenharmony_ci     * @throws { BusinessError } 7400105 - Session config locked.
359261847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
359361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
359461847f8eSopenharmony_ci     * @since 12
359561847f8eSopenharmony_ci     */
359661847f8eSopenharmony_ci    beginConfig(): void;
359761847f8eSopenharmony_ci
359861847f8eSopenharmony_ci    /**
359961847f8eSopenharmony_ci     * Commit capture session config.
360061847f8eSopenharmony_ci     *
360161847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
360261847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
360361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
360461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
360561847f8eSopenharmony_ci     * @since 11
360661847f8eSopenharmony_ci     */
360761847f8eSopenharmony_ci    commitConfig(callback: AsyncCallback<void>): void;
360861847f8eSopenharmony_ci
360961847f8eSopenharmony_ci    /**
361061847f8eSopenharmony_ci     * Commit capture session config.
361161847f8eSopenharmony_ci     *
361261847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
361361847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
361461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
361561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
361661847f8eSopenharmony_ci     * @since 11
361761847f8eSopenharmony_ci     */
361861847f8eSopenharmony_ci    commitConfig(): Promise<void>;
361961847f8eSopenharmony_ci
362061847f8eSopenharmony_ci    /**
362161847f8eSopenharmony_ci     * Determines whether the camera input can be added into the session.
362261847f8eSopenharmony_ci     * This method is valid between Session.beginConfig() and Session.commitConfig().
362361847f8eSopenharmony_ci     *
362461847f8eSopenharmony_ci     * @param { CameraInput } cameraInput - Target camera input to add.
362561847f8eSopenharmony_ci     * @returns { boolean } You can add the input into the session.
362661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
362761847f8eSopenharmony_ci     * @since 11
362861847f8eSopenharmony_ci     */
362961847f8eSopenharmony_ci    canAddInput(cameraInput: CameraInput): boolean;
363061847f8eSopenharmony_ci
363161847f8eSopenharmony_ci    /**
363261847f8eSopenharmony_ci     * Adds a camera input.
363361847f8eSopenharmony_ci     * This method is valid between Session.beginConfig() and Session.commitConfig().
363461847f8eSopenharmony_ci     *
363561847f8eSopenharmony_ci     * @param { CameraInput } cameraInput - Target camera input to add.
363661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
363761847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
363861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
363961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
364061847f8eSopenharmony_ci     * @since 11
364161847f8eSopenharmony_ci     */
364261847f8eSopenharmony_ci    /**
364361847f8eSopenharmony_ci     * Adds a camera input.
364461847f8eSopenharmony_ci     * This method is valid between Session.beginConfig() and Session.commitConfig().
364561847f8eSopenharmony_ci     *
364661847f8eSopenharmony_ci     * @param { CameraInput } cameraInput - Target camera input to add.
364761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
364861847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
364961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
365061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
365161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
365261847f8eSopenharmony_ci     * @since 12
365361847f8eSopenharmony_ci     */
365461847f8eSopenharmony_ci    addInput(cameraInput: CameraInput): void;
365561847f8eSopenharmony_ci
365661847f8eSopenharmony_ci    /**
365761847f8eSopenharmony_ci     * Removes a camera input.
365861847f8eSopenharmony_ci     * This method is valid between Session.beginConfig() and Session.commitConfig().
365961847f8eSopenharmony_ci     *
366061847f8eSopenharmony_ci     * @param { CameraInput } cameraInput - Target camera input to remove.
366161847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
366261847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
366361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
366461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
366561847f8eSopenharmony_ci     * @since 11
366661847f8eSopenharmony_ci     */
366761847f8eSopenharmony_ci    /**
366861847f8eSopenharmony_ci     * Removes a camera input.
366961847f8eSopenharmony_ci     * This method is valid between Session.beginConfig() and Session.commitConfig().
367061847f8eSopenharmony_ci     *
367161847f8eSopenharmony_ci     * @param { CameraInput } cameraInput - Target camera input to remove.
367261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
367361847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
367461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
367561847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
367661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
367761847f8eSopenharmony_ci     * @since 12
367861847f8eSopenharmony_ci     */
367961847f8eSopenharmony_ci    removeInput(cameraInput: CameraInput): void;
368061847f8eSopenharmony_ci
368161847f8eSopenharmony_ci    /**
368261847f8eSopenharmony_ci     * Determines whether the camera output can be added into the session.
368361847f8eSopenharmony_ci     * This method is valid after Session.addInput(cameraInput) and before Session.commitConfig().
368461847f8eSopenharmony_ci     *
368561847f8eSopenharmony_ci     * @param { CameraOutput } cameraOutput - Target camera output to add.
368661847f8eSopenharmony_ci     * @returns { boolean } You can add the output into the session.
368761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
368861847f8eSopenharmony_ci     * @since 11
368961847f8eSopenharmony_ci     */
369061847f8eSopenharmony_ci    canAddOutput(cameraOutput: CameraOutput): boolean;
369161847f8eSopenharmony_ci
369261847f8eSopenharmony_ci    /**
369361847f8eSopenharmony_ci     * Adds a camera output.
369461847f8eSopenharmony_ci     * This method is valid after Session.addInput(cameraInput) and before Session.commitConfig().
369561847f8eSopenharmony_ci     *
369661847f8eSopenharmony_ci     * @param { CameraOutput } cameraOutput - Target camera output to add.
369761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
369861847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
369961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
370061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
370161847f8eSopenharmony_ci     * @since 11
370261847f8eSopenharmony_ci     */
370361847f8eSopenharmony_ci    /**
370461847f8eSopenharmony_ci     * Adds a camera output.
370561847f8eSopenharmony_ci     * This method is valid after Session.addInput(cameraInput) and before Session.commitConfig().
370661847f8eSopenharmony_ci     *
370761847f8eSopenharmony_ci     * @param { CameraOutput } cameraOutput - Target camera output to add.
370861847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
370961847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
371061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
371161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
371261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
371361847f8eSopenharmony_ci     * @since 12
371461847f8eSopenharmony_ci     */
371561847f8eSopenharmony_ci    addOutput(cameraOutput: CameraOutput): void;
371661847f8eSopenharmony_ci
371761847f8eSopenharmony_ci    /**
371861847f8eSopenharmony_ci     * Removes a camera output.
371961847f8eSopenharmony_ci     * This method is valid between Session.beginConfig() and Session.commitConfig().
372061847f8eSopenharmony_ci     *
372161847f8eSopenharmony_ci     * @param { CameraOutput } cameraOutput - Target camera output to remove.
372261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
372361847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
372461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
372561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
372661847f8eSopenharmony_ci     * @since 11
372761847f8eSopenharmony_ci     */
372861847f8eSopenharmony_ci    /**
372961847f8eSopenharmony_ci     * Removes a camera output.
373061847f8eSopenharmony_ci     * This method is valid between Session.beginConfig() and Session.commitConfig().
373161847f8eSopenharmony_ci     *
373261847f8eSopenharmony_ci     * @param { CameraOutput } cameraOutput - Target camera output to remove.
373361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
373461847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
373561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
373661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
373761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
373861847f8eSopenharmony_ci     * @since 12
373961847f8eSopenharmony_ci     */
374061847f8eSopenharmony_ci    removeOutput(cameraOutput: CameraOutput): void;
374161847f8eSopenharmony_ci
374261847f8eSopenharmony_ci    /**
374361847f8eSopenharmony_ci     * Starts capture session.
374461847f8eSopenharmony_ci     *
374561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
374661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
374761847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
374861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
374961847f8eSopenharmony_ci     * @since 11
375061847f8eSopenharmony_ci     */
375161847f8eSopenharmony_ci    /**
375261847f8eSopenharmony_ci     * Starts capture session.
375361847f8eSopenharmony_ci     *
375461847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
375561847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
375661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
375761847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
375861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
375961847f8eSopenharmony_ci     * @since 12
376061847f8eSopenharmony_ci     */
376161847f8eSopenharmony_ci    start(callback: AsyncCallback<void>): void;
376261847f8eSopenharmony_ci
376361847f8eSopenharmony_ci    /**
376461847f8eSopenharmony_ci     * Starts capture session.
376561847f8eSopenharmony_ci     *
376661847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
376761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
376861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
376961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
377061847f8eSopenharmony_ci     * @since 11
377161847f8eSopenharmony_ci     */
377261847f8eSopenharmony_ci    /**
377361847f8eSopenharmony_ci     * Starts capture session.
377461847f8eSopenharmony_ci     *
377561847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
377661847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
377761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
377861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
377961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
378061847f8eSopenharmony_ci     * @since 12
378161847f8eSopenharmony_ci     */
378261847f8eSopenharmony_ci    start(): Promise<void>;
378361847f8eSopenharmony_ci
378461847f8eSopenharmony_ci    /**
378561847f8eSopenharmony_ci     * Stops capture session.
378661847f8eSopenharmony_ci     *
378761847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
378861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
378961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
379061847f8eSopenharmony_ci     * @since 11
379161847f8eSopenharmony_ci     */
379261847f8eSopenharmony_ci    stop(callback: AsyncCallback<void>): void;
379361847f8eSopenharmony_ci
379461847f8eSopenharmony_ci    /**
379561847f8eSopenharmony_ci     * Stops capture session.
379661847f8eSopenharmony_ci     *
379761847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
379861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
379961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
380061847f8eSopenharmony_ci     * @since 11
380161847f8eSopenharmony_ci     */
380261847f8eSopenharmony_ci    stop(): Promise<void>;
380361847f8eSopenharmony_ci
380461847f8eSopenharmony_ci    /**
380561847f8eSopenharmony_ci     * Release capture session instance.
380661847f8eSopenharmony_ci     *
380761847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
380861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
380961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
381061847f8eSopenharmony_ci     * @since 11
381161847f8eSopenharmony_ci     */
381261847f8eSopenharmony_ci    release(callback: AsyncCallback<void>): void;
381361847f8eSopenharmony_ci
381461847f8eSopenharmony_ci    /**
381561847f8eSopenharmony_ci     * Release capture session instance.
381661847f8eSopenharmony_ci     *
381761847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
381861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
381961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
382061847f8eSopenharmony_ci     * @since 11
382161847f8eSopenharmony_ci     */
382261847f8eSopenharmony_ci    release(): Promise<void>;
382361847f8eSopenharmony_ci
382461847f8eSopenharmony_ci    /**
382561847f8eSopenharmony_ci     * Set usage for the capture session.
382661847f8eSopenharmony_ci     *
382761847f8eSopenharmony_ci     * @param { UsageType } usage - The capture session usage.
382861847f8eSopenharmony_ci     * @param { boolean } enabled - Enable usage for session if TRUE.
382961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
383061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
383161847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
383261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
383361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
383461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
383561847f8eSopenharmony_ci     * @systemapi
383661847f8eSopenharmony_ci     * @since 12
383761847f8eSopenharmony_ci     */
383861847f8eSopenharmony_ci    setUsage(usage: UsageType, enabled: boolean): void;
383961847f8eSopenharmony_ci
384061847f8eSopenharmony_ci    /**
384161847f8eSopenharmony_ci     * Get the supported camera output capability set.
384261847f8eSopenharmony_ci     *
384361847f8eSopenharmony_ci     * @param { CameraDevice } camera - Camera device.
384461847f8eSopenharmony_ci     * @returns { Array<CameraOutputCapability> } The array of the output capability.
384561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
384661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
384761847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
384861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
384961847f8eSopenharmony_ci     * @systemapi
385061847f8eSopenharmony_ci     * @since 12
385161847f8eSopenharmony_ci     */
385261847f8eSopenharmony_ci    getCameraOutputCapabilities(camera: CameraDevice): Array<CameraOutputCapability>;
385361847f8eSopenharmony_ci  }
385461847f8eSopenharmony_ci
385561847f8eSopenharmony_ci  /**
385661847f8eSopenharmony_ci   * Capture session object.
385761847f8eSopenharmony_ci   *
385861847f8eSopenharmony_ci   * @interface CaptureSession
385961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
386061847f8eSopenharmony_ci   * @since 10
386161847f8eSopenharmony_ci   * @deprecated since 11
386261847f8eSopenharmony_ci   * @useinstead ohos.multimedia.camera.VideoSession
386361847f8eSopenharmony_ci   */
386461847f8eSopenharmony_ci  interface CaptureSession {
386561847f8eSopenharmony_ci    /**
386661847f8eSopenharmony_ci     * Begin capture session config.
386761847f8eSopenharmony_ci     *
386861847f8eSopenharmony_ci     * @throws { BusinessError } 7400105 - Session config locked.
386961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
387061847f8eSopenharmony_ci     * @since 10
387161847f8eSopenharmony_ci     * @deprecated since 11
387261847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#beginConfig
387361847f8eSopenharmony_ci     */
387461847f8eSopenharmony_ci    beginConfig(): void;
387561847f8eSopenharmony_ci
387661847f8eSopenharmony_ci    /**
387761847f8eSopenharmony_ci     * Commit capture session config.
387861847f8eSopenharmony_ci     *
387961847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
388061847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
388161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
388261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
388361847f8eSopenharmony_ci     * @since 10
388461847f8eSopenharmony_ci     * @deprecated since 11
388561847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#commitConfig
388661847f8eSopenharmony_ci     */
388761847f8eSopenharmony_ci    commitConfig(callback: AsyncCallback<void>): void;
388861847f8eSopenharmony_ci
388961847f8eSopenharmony_ci    /**
389061847f8eSopenharmony_ci     * Commit capture session config.
389161847f8eSopenharmony_ci     *
389261847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
389361847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
389461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
389561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
389661847f8eSopenharmony_ci     * @since 10
389761847f8eSopenharmony_ci     * @deprecated since 11
389861847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#commitConfig
389961847f8eSopenharmony_ci     */
390061847f8eSopenharmony_ci    commitConfig(): Promise<void>;
390161847f8eSopenharmony_ci
390261847f8eSopenharmony_ci    /**
390361847f8eSopenharmony_ci     * Adds a camera input.
390461847f8eSopenharmony_ci     *
390561847f8eSopenharmony_ci     * @param { CameraInput } cameraInput - Target camera input to add.
390661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
390761847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
390861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
390961847f8eSopenharmony_ci     * @since 10
391061847f8eSopenharmony_ci     * @deprecated since 11
391161847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#addInput
391261847f8eSopenharmony_ci     */
391361847f8eSopenharmony_ci    addInput(cameraInput: CameraInput): void;
391461847f8eSopenharmony_ci
391561847f8eSopenharmony_ci    /**
391661847f8eSopenharmony_ci     * Removes a camera input.
391761847f8eSopenharmony_ci     *
391861847f8eSopenharmony_ci     * @param { CameraInput } cameraInput - Target camera input to remove.
391961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
392061847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
392161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
392261847f8eSopenharmony_ci     * @since 10
392361847f8eSopenharmony_ci     * @deprecated since 11
392461847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#removeInput
392561847f8eSopenharmony_ci     */
392661847f8eSopenharmony_ci    removeInput(cameraInput: CameraInput): void;
392761847f8eSopenharmony_ci
392861847f8eSopenharmony_ci    /**
392961847f8eSopenharmony_ci     * Adds a camera output.
393061847f8eSopenharmony_ci     *
393161847f8eSopenharmony_ci     * @param { CameraOutput } cameraOutput - Target camera output to add.
393261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
393361847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
393461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
393561847f8eSopenharmony_ci     * @since 10
393661847f8eSopenharmony_ci     * @deprecated since 11
393761847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#addOutput
393861847f8eSopenharmony_ci     */
393961847f8eSopenharmony_ci    addOutput(cameraOutput: CameraOutput): void;
394061847f8eSopenharmony_ci
394161847f8eSopenharmony_ci    /**
394261847f8eSopenharmony_ci     * Removes a camera output.
394361847f8eSopenharmony_ci     *
394461847f8eSopenharmony_ci     * @param { CameraOutput } cameraOutput - Target camera output to remove.
394561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
394661847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
394761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
394861847f8eSopenharmony_ci     * @since 10
394961847f8eSopenharmony_ci     * @deprecated since 11
395061847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#removeOutput
395161847f8eSopenharmony_ci     */
395261847f8eSopenharmony_ci    removeOutput(cameraOutput: CameraOutput): void;
395361847f8eSopenharmony_ci
395461847f8eSopenharmony_ci    /**
395561847f8eSopenharmony_ci     * Starts capture session.
395661847f8eSopenharmony_ci     *
395761847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
395861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
395961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
396061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
396161847f8eSopenharmony_ci     * @since 10
396261847f8eSopenharmony_ci     * @deprecated since 11
396361847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#start
396461847f8eSopenharmony_ci     */
396561847f8eSopenharmony_ci    start(callback: AsyncCallback<void>): void;
396661847f8eSopenharmony_ci
396761847f8eSopenharmony_ci    /**
396861847f8eSopenharmony_ci     * Starts capture session.
396961847f8eSopenharmony_ci     *
397061847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
397161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
397261847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
397361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
397461847f8eSopenharmony_ci     * @since 10
397561847f8eSopenharmony_ci     * @deprecated since 11
397661847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#start
397761847f8eSopenharmony_ci     */
397861847f8eSopenharmony_ci    start(): Promise<void>;
397961847f8eSopenharmony_ci
398061847f8eSopenharmony_ci    /**
398161847f8eSopenharmony_ci     * Stops capture session.
398261847f8eSopenharmony_ci     *
398361847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
398461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
398561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
398661847f8eSopenharmony_ci     * @since 10
398761847f8eSopenharmony_ci     * @deprecated since 11
398861847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#stop
398961847f8eSopenharmony_ci     */
399061847f8eSopenharmony_ci    stop(callback: AsyncCallback<void>): void;
399161847f8eSopenharmony_ci
399261847f8eSopenharmony_ci    /**
399361847f8eSopenharmony_ci     * Stops capture session.
399461847f8eSopenharmony_ci     *
399561847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
399661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
399761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
399861847f8eSopenharmony_ci     * @since 10
399961847f8eSopenharmony_ci     * @deprecated since 11
400061847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#stop
400161847f8eSopenharmony_ci     */
400261847f8eSopenharmony_ci    stop(): Promise<void>;
400361847f8eSopenharmony_ci
400461847f8eSopenharmony_ci    /**
400561847f8eSopenharmony_ci     * Release capture session instance.
400661847f8eSopenharmony_ci     *
400761847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
400861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
400961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
401061847f8eSopenharmony_ci     * @since 10
401161847f8eSopenharmony_ci     * @deprecated since 11
401261847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#release
401361847f8eSopenharmony_ci     */
401461847f8eSopenharmony_ci    release(callback: AsyncCallback<void>): void;
401561847f8eSopenharmony_ci
401661847f8eSopenharmony_ci    /**
401761847f8eSopenharmony_ci     * Release capture session instance.
401861847f8eSopenharmony_ci     *
401961847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
402061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
402161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
402261847f8eSopenharmony_ci     * @since 10
402361847f8eSopenharmony_ci     * @deprecated since 11
402461847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#release
402561847f8eSopenharmony_ci     */
402661847f8eSopenharmony_ci    release(): Promise<void>;
402761847f8eSopenharmony_ci
402861847f8eSopenharmony_ci    /**
402961847f8eSopenharmony_ci     * Check if device has flash light.
403061847f8eSopenharmony_ci     *
403161847f8eSopenharmony_ci     * @returns { boolean } The flash light support status.
403261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
403361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
403461847f8eSopenharmony_ci     * @since 10
403561847f8eSopenharmony_ci     * @deprecated since 11
403661847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Flash#hasFlash
403761847f8eSopenharmony_ci     */
403861847f8eSopenharmony_ci    hasFlash(): boolean;
403961847f8eSopenharmony_ci
404061847f8eSopenharmony_ci    /**
404161847f8eSopenharmony_ci     * Checks whether a specified flash mode is supported.
404261847f8eSopenharmony_ci     *
404361847f8eSopenharmony_ci     * @param { FlashMode } flashMode - Flash mode
404461847f8eSopenharmony_ci     * @returns { boolean } Is the flash mode supported.
404561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
404661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
404761847f8eSopenharmony_ci     * @since 10
404861847f8eSopenharmony_ci     * @deprecated since 11
404961847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Flash#isFlashModeSupported
405061847f8eSopenharmony_ci     */
405161847f8eSopenharmony_ci    isFlashModeSupported(flashMode: FlashMode): boolean;
405261847f8eSopenharmony_ci
405361847f8eSopenharmony_ci    /**
405461847f8eSopenharmony_ci     * Gets current flash mode.
405561847f8eSopenharmony_ci     *
405661847f8eSopenharmony_ci     * @returns { FlashMode } The current flash mode.
405761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
405861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
405961847f8eSopenharmony_ci     * @since 10
406061847f8eSopenharmony_ci     * @deprecated since 11
406161847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Flash#getFlashMode
406261847f8eSopenharmony_ci     */
406361847f8eSopenharmony_ci    getFlashMode(): FlashMode;
406461847f8eSopenharmony_ci
406561847f8eSopenharmony_ci    /**
406661847f8eSopenharmony_ci     * Sets flash mode.
406761847f8eSopenharmony_ci     *
406861847f8eSopenharmony_ci     * @param { FlashMode } flashMode - Target flash mode.
406961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
407061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
407161847f8eSopenharmony_ci     * @since 10
407261847f8eSopenharmony_ci     * @deprecated since 11
407361847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Flash#setFlashMode
407461847f8eSopenharmony_ci     */
407561847f8eSopenharmony_ci    setFlashMode(flashMode: FlashMode): void;
407661847f8eSopenharmony_ci
407761847f8eSopenharmony_ci    /**
407861847f8eSopenharmony_ci     * Checks whether a specified exposure mode is supported.
407961847f8eSopenharmony_ci     *
408061847f8eSopenharmony_ci     * @param { ExposureMode } aeMode - Exposure mode
408161847f8eSopenharmony_ci     * @returns { boolean } Is the exposure mode supported.
408261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
408361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
408461847f8eSopenharmony_ci     * @since 10
408561847f8eSopenharmony_ci     * @deprecated since 11
408661847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.AutoExposure#isExposureModeSupported
408761847f8eSopenharmony_ci     */
408861847f8eSopenharmony_ci    isExposureModeSupported(aeMode: ExposureMode): boolean;
408961847f8eSopenharmony_ci
409061847f8eSopenharmony_ci    /**
409161847f8eSopenharmony_ci     * Gets current exposure mode.
409261847f8eSopenharmony_ci     *
409361847f8eSopenharmony_ci     * @returns { ExposureMode } The current exposure mode.
409461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
409561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
409661847f8eSopenharmony_ci     * @since 10
409761847f8eSopenharmony_ci     * @deprecated since 11
409861847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.AutoExposure#getExposureMode
409961847f8eSopenharmony_ci     */
410061847f8eSopenharmony_ci    getExposureMode(): ExposureMode;
410161847f8eSopenharmony_ci
410261847f8eSopenharmony_ci    /**
410361847f8eSopenharmony_ci     * Sets Exposure mode.
410461847f8eSopenharmony_ci     *
410561847f8eSopenharmony_ci     * @param { ExposureMode } aeMode - Exposure mode
410661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
410761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
410861847f8eSopenharmony_ci     * @since 10
410961847f8eSopenharmony_ci     * @deprecated since 11
411061847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.AutoExposure#setExposureMode
411161847f8eSopenharmony_ci     */
411261847f8eSopenharmony_ci    setExposureMode(aeMode: ExposureMode): void;
411361847f8eSopenharmony_ci
411461847f8eSopenharmony_ci    /**
411561847f8eSopenharmony_ci     * Gets current metering point.
411661847f8eSopenharmony_ci     *
411761847f8eSopenharmony_ci     * @returns { Point } The current metering point.
411861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
411961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
412061847f8eSopenharmony_ci     * @since 10
412161847f8eSopenharmony_ci     * @deprecated since 11
412261847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.AutoExposure#getMeteringPoint
412361847f8eSopenharmony_ci     */
412461847f8eSopenharmony_ci    getMeteringPoint(): Point;
412561847f8eSopenharmony_ci
412661847f8eSopenharmony_ci    /**
412761847f8eSopenharmony_ci     * Set the center point of the metering area.
412861847f8eSopenharmony_ci     *
412961847f8eSopenharmony_ci     * @param { Point } point - metering point
413061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
413161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
413261847f8eSopenharmony_ci     * @since 10
413361847f8eSopenharmony_ci     * @deprecated since 11
413461847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.AutoExposure#setMeteringPoint
413561847f8eSopenharmony_ci     */
413661847f8eSopenharmony_ci    setMeteringPoint(point: Point): void;
413761847f8eSopenharmony_ci
413861847f8eSopenharmony_ci    /**
413961847f8eSopenharmony_ci     * Query the exposure compensation range.
414061847f8eSopenharmony_ci     *
414161847f8eSopenharmony_ci     * @returns { Array<number> } The array of compensation range.
414261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
414361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
414461847f8eSopenharmony_ci     * @since 10
414561847f8eSopenharmony_ci     * @deprecated since 11
414661847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.AutoExposure#getExposureBiasRange
414761847f8eSopenharmony_ci     */
414861847f8eSopenharmony_ci    getExposureBiasRange(): Array<number>;
414961847f8eSopenharmony_ci
415061847f8eSopenharmony_ci    /**
415161847f8eSopenharmony_ci     * Set exposure compensation.
415261847f8eSopenharmony_ci     *
415361847f8eSopenharmony_ci     * @param { number } exposureBias - Exposure compensation
415461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
415561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
415661847f8eSopenharmony_ci     * @since 10
415761847f8eSopenharmony_ci     * @deprecated since 11
415861847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.AutoExposure#setExposureBias
415961847f8eSopenharmony_ci     */
416061847f8eSopenharmony_ci    setExposureBias(exposureBias: number): void;
416161847f8eSopenharmony_ci
416261847f8eSopenharmony_ci    /**
416361847f8eSopenharmony_ci     * Query the exposure value.
416461847f8eSopenharmony_ci     *
416561847f8eSopenharmony_ci     * @returns { number } The exposure value.
416661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
416761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
416861847f8eSopenharmony_ci     * @since 10
416961847f8eSopenharmony_ci     * @deprecated since 11
417061847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.AutoExposure#getExposureValue
417161847f8eSopenharmony_ci     */
417261847f8eSopenharmony_ci    getExposureValue(): number;
417361847f8eSopenharmony_ci
417461847f8eSopenharmony_ci    /**
417561847f8eSopenharmony_ci     * Checks whether a specified focus mode is supported.
417661847f8eSopenharmony_ci     *
417761847f8eSopenharmony_ci     * @param { FocusMode } afMode - Focus mode.
417861847f8eSopenharmony_ci     * @returns { boolean } Is the focus mode supported.
417961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
418061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
418161847f8eSopenharmony_ci     * @since 10
418261847f8eSopenharmony_ci     * @deprecated since 11
418361847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Focus#isFocusModeSupported
418461847f8eSopenharmony_ci     */
418561847f8eSopenharmony_ci    isFocusModeSupported(afMode: FocusMode): boolean;
418661847f8eSopenharmony_ci
418761847f8eSopenharmony_ci    /**
418861847f8eSopenharmony_ci     * Gets current focus mode.
418961847f8eSopenharmony_ci     *
419061847f8eSopenharmony_ci     * @returns { FocusMode } The current focus mode.
419161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
419261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
419361847f8eSopenharmony_ci     * @since 10
419461847f8eSopenharmony_ci     * @deprecated since 11
419561847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Focus#getFocusMode
419661847f8eSopenharmony_ci     */
419761847f8eSopenharmony_ci    getFocusMode(): FocusMode;
419861847f8eSopenharmony_ci
419961847f8eSopenharmony_ci    /**
420061847f8eSopenharmony_ci     * Sets focus mode.
420161847f8eSopenharmony_ci     *
420261847f8eSopenharmony_ci     * @param { FocusMode } afMode - Target focus mode.
420361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
420461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
420561847f8eSopenharmony_ci     * @since 10
420661847f8eSopenharmony_ci     * @deprecated since 11
420761847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Focus#setFocusMode
420861847f8eSopenharmony_ci     */
420961847f8eSopenharmony_ci    setFocusMode(afMode: FocusMode): void;
421061847f8eSopenharmony_ci
421161847f8eSopenharmony_ci    /**
421261847f8eSopenharmony_ci     * Sets focus point.
421361847f8eSopenharmony_ci     *
421461847f8eSopenharmony_ci     * @param { Point } point - Target focus point.
421561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
421661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
421761847f8eSopenharmony_ci     * @since 10
421861847f8eSopenharmony_ci     * @deprecated since 11
421961847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Focus#setFocusPoint
422061847f8eSopenharmony_ci     */
422161847f8eSopenharmony_ci    setFocusPoint(point: Point): void;
422261847f8eSopenharmony_ci
422361847f8eSopenharmony_ci    /**
422461847f8eSopenharmony_ci     * Gets current focus point.
422561847f8eSopenharmony_ci     *
422661847f8eSopenharmony_ci     * @returns { Point } The current focus point.
422761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
422861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
422961847f8eSopenharmony_ci     * @since 10
423061847f8eSopenharmony_ci     * @deprecated since 11
423161847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Focus#getFocusPoint
423261847f8eSopenharmony_ci     */
423361847f8eSopenharmony_ci    getFocusPoint(): Point;
423461847f8eSopenharmony_ci
423561847f8eSopenharmony_ci    /**
423661847f8eSopenharmony_ci     * Gets current focal length.
423761847f8eSopenharmony_ci     *
423861847f8eSopenharmony_ci     * @returns { number } The current focal point.
423961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
424061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
424161847f8eSopenharmony_ci     * @since 10
424261847f8eSopenharmony_ci     * @deprecated since 11
424361847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Focus#getFocalLength
424461847f8eSopenharmony_ci     */
424561847f8eSopenharmony_ci    getFocalLength(): number;
424661847f8eSopenharmony_ci
424761847f8eSopenharmony_ci    /**
424861847f8eSopenharmony_ci     * Gets all supported zoom ratio range.
424961847f8eSopenharmony_ci     *
425061847f8eSopenharmony_ci     * @returns { Array<number> } The zoom ratio range.
425161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
425261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
425361847f8eSopenharmony_ci     * @since 10
425461847f8eSopenharmony_ci     * @deprecated since 11
425561847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Zoom#getZoomRatioRange
425661847f8eSopenharmony_ci     */
425761847f8eSopenharmony_ci    getZoomRatioRange(): Array<number>;
425861847f8eSopenharmony_ci
425961847f8eSopenharmony_ci    /**
426061847f8eSopenharmony_ci     * Gets zoom ratio.
426161847f8eSopenharmony_ci     *
426261847f8eSopenharmony_ci     * @returns { number } The zoom ratio value.
426361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
426461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
426561847f8eSopenharmony_ci     * @since 10
426661847f8eSopenharmony_ci     * @deprecated since 11
426761847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Zoom#getZoomRatio
426861847f8eSopenharmony_ci     */
426961847f8eSopenharmony_ci    getZoomRatio(): number;
427061847f8eSopenharmony_ci
427161847f8eSopenharmony_ci    /**
427261847f8eSopenharmony_ci     * Sets zoom ratio.
427361847f8eSopenharmony_ci     *
427461847f8eSopenharmony_ci     * @param { number } zoomRatio - Target zoom ratio.
427561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
427661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
427761847f8eSopenharmony_ci     * @since 10
427861847f8eSopenharmony_ci     * @deprecated since 11
427961847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Zoom#setZoomRatio
428061847f8eSopenharmony_ci     */
428161847f8eSopenharmony_ci    setZoomRatio(zoomRatio: number): void;
428261847f8eSopenharmony_ci
428361847f8eSopenharmony_ci    /**
428461847f8eSopenharmony_ci     * Check whether the specified video stabilization mode is supported.
428561847f8eSopenharmony_ci     *
428661847f8eSopenharmony_ci     * @param { VideoStabilizationMode } vsMode - Video Stabilization mode.
428761847f8eSopenharmony_ci     * @returns { boolean } Is flash mode supported.
428861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
428961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
429061847f8eSopenharmony_ci     * @since 10
429161847f8eSopenharmony_ci     * @deprecated since 11
429261847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Stabilization#isVideoStabilizationModeSupported
429361847f8eSopenharmony_ci     */
429461847f8eSopenharmony_ci    isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean;
429561847f8eSopenharmony_ci
429661847f8eSopenharmony_ci    /**
429761847f8eSopenharmony_ci     * Query the video stabilization mode currently in use.
429861847f8eSopenharmony_ci     *
429961847f8eSopenharmony_ci     * @returns { VideoStabilizationMode } The current video stabilization mode.
430061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
430161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
430261847f8eSopenharmony_ci     * @since 10
430361847f8eSopenharmony_ci     * @deprecated since 11
430461847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Stabilization#getActiveVideoStabilizationMode
430561847f8eSopenharmony_ci     */
430661847f8eSopenharmony_ci    getActiveVideoStabilizationMode(): VideoStabilizationMode;
430761847f8eSopenharmony_ci
430861847f8eSopenharmony_ci    /**
430961847f8eSopenharmony_ci     * Set video stabilization mode.
431061847f8eSopenharmony_ci     *
431161847f8eSopenharmony_ci     * @param { VideoStabilizationMode } mode - video stabilization mode to set.
431261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
431361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
431461847f8eSopenharmony_ci     * @since 10
431561847f8eSopenharmony_ci     * @deprecated since 11
431661847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Stabilization#setVideoStabilizationMode
431761847f8eSopenharmony_ci     */
431861847f8eSopenharmony_ci    setVideoStabilizationMode(mode: VideoStabilizationMode): void;
431961847f8eSopenharmony_ci
432061847f8eSopenharmony_ci    /**
432161847f8eSopenharmony_ci     * Subscribes focus status change event callback.
432261847f8eSopenharmony_ci     *
432361847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
432461847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
432561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
432661847f8eSopenharmony_ci     * @since 10
432761847f8eSopenharmony_ci     * @deprecated since 11
432861847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.VideoSession#on
432961847f8eSopenharmony_ci     */
433061847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
433161847f8eSopenharmony_ci
433261847f8eSopenharmony_ci    /**
433361847f8eSopenharmony_ci     * Unsubscribes from focus status change event callback.
433461847f8eSopenharmony_ci     *
433561847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
433661847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
433761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
433861847f8eSopenharmony_ci     * @since 10
433961847f8eSopenharmony_ci     * @deprecated since 11
434061847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.VideoSession#off
434161847f8eSopenharmony_ci     */
434261847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
434361847f8eSopenharmony_ci
434461847f8eSopenharmony_ci    /**
434561847f8eSopenharmony_ci     * Subscribes to error events.
434661847f8eSopenharmony_ci     *
434761847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
434861847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
434961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
435061847f8eSopenharmony_ci     * @since 10
435161847f8eSopenharmony_ci     * @deprecated since 11
435261847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.VideoSession#on
435361847f8eSopenharmony_ci     */
435461847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
435561847f8eSopenharmony_ci
435661847f8eSopenharmony_ci    /**
435761847f8eSopenharmony_ci     * Unsubscribes from error events.
435861847f8eSopenharmony_ci     *
435961847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
436061847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
436161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
436261847f8eSopenharmony_ci     * @since 10
436361847f8eSopenharmony_ci     * @deprecated since 11
436461847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.VideoSession#off
436561847f8eSopenharmony_ci     */
436661847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
436761847f8eSopenharmony_ci
436861847f8eSopenharmony_ci    /**
436961847f8eSopenharmony_ci     * Gets supported beauty effect types.
437061847f8eSopenharmony_ci     *
437161847f8eSopenharmony_ci     * @returns { Array<BeautyType> } List of beauty effect types.
437261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
437361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
437461847f8eSopenharmony_ci     * @systemapi
437561847f8eSopenharmony_ci     * @since 10
437661847f8eSopenharmony_ci     * @deprecated since 11
437761847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Beauty#getSupportedBeautyTypes
437861847f8eSopenharmony_ci     */
437961847f8eSopenharmony_ci    getSupportedBeautyTypes(): Array<BeautyType>;
438061847f8eSopenharmony_ci
438161847f8eSopenharmony_ci    /**
438261847f8eSopenharmony_ci     * Gets the specific beauty effect type range.
438361847f8eSopenharmony_ci     *
438461847f8eSopenharmony_ci     * @param { BeautyType } type - The type of beauty effect.
438561847f8eSopenharmony_ci     * @returns { Array<number> } The array of the specific beauty effect range.
438661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
438761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
438861847f8eSopenharmony_ci     * @systemapi
438961847f8eSopenharmony_ci     * @since 10
439061847f8eSopenharmony_ci     * @deprecated since 11
439161847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Beauty#getSupportedBeautyRange
439261847f8eSopenharmony_ci     */
439361847f8eSopenharmony_ci    getSupportedBeautyRange(type: BeautyType): Array<number>;
439461847f8eSopenharmony_ci
439561847f8eSopenharmony_ci    /**
439661847f8eSopenharmony_ci     * Gets the beauty effect in use.
439761847f8eSopenharmony_ci     *
439861847f8eSopenharmony_ci     * @param { BeautyType } type - The type of beauty effect.
439961847f8eSopenharmony_ci     * @returns { number } the beauty effect in use.
440061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
440161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
440261847f8eSopenharmony_ci     * @systemapi
440361847f8eSopenharmony_ci     * @since 10
440461847f8eSopenharmony_ci     * @deprecated since 11
440561847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Beauty#getBeauty
440661847f8eSopenharmony_ci     */
440761847f8eSopenharmony_ci    getBeauty(type: BeautyType): number;
440861847f8eSopenharmony_ci
440961847f8eSopenharmony_ci    /**
441061847f8eSopenharmony_ci     * Sets a beauty effect for a camera device.
441161847f8eSopenharmony_ci     *
441261847f8eSopenharmony_ci     * @param { BeautyType } type - The type of beauty effect.
441361847f8eSopenharmony_ci     * @param { number } value The number of beauty effect.
441461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
441561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
441661847f8eSopenharmony_ci     * @systemapi
441761847f8eSopenharmony_ci     * @since 10
441861847f8eSopenharmony_ci     * @deprecated since 11
441961847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Beauty#setBeauty
442061847f8eSopenharmony_ci     */
442161847f8eSopenharmony_ci    setBeauty(type: BeautyType, value: number): void;
442261847f8eSopenharmony_ci  }
442361847f8eSopenharmony_ci
442461847f8eSopenharmony_ci  /**
442561847f8eSopenharmony_ci   * Types of preconfig, which used to configure session conveniently.
442661847f8eSopenharmony_ci   * Preconfig type contains common use cases of camera output.
442761847f8eSopenharmony_ci   *
442861847f8eSopenharmony_ci   * @enum { number }
442961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
443061847f8eSopenharmony_ci   * @since 12
443161847f8eSopenharmony_ci   */
443261847f8eSopenharmony_ci  enum PreconfigType {
443361847f8eSopenharmony_ci    /**
443461847f8eSopenharmony_ci     * 720P output for preconfig.
443561847f8eSopenharmony_ci     *
443661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
443761847f8eSopenharmony_ci     * @since 12
443861847f8eSopenharmony_ci     */
443961847f8eSopenharmony_ci    PRECONFIG_720P = 0,
444061847f8eSopenharmony_ci  
444161847f8eSopenharmony_ci    /**
444261847f8eSopenharmony_ci     * 1080P output for preconfig.
444361847f8eSopenharmony_ci     *
444461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
444561847f8eSopenharmony_ci     * @since 12
444661847f8eSopenharmony_ci     */
444761847f8eSopenharmony_ci    PRECONFIG_1080P = 1,
444861847f8eSopenharmony_ci  
444961847f8eSopenharmony_ci    /**
445061847f8eSopenharmony_ci     * 4K output for preconfig.
445161847f8eSopenharmony_ci     *
445261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
445361847f8eSopenharmony_ci     * @since 12
445461847f8eSopenharmony_ci     */
445561847f8eSopenharmony_ci    PRECONFIG_4K = 2,
445661847f8eSopenharmony_ci  
445761847f8eSopenharmony_ci    /**
445861847f8eSopenharmony_ci     * high quality output for preconfig.
445961847f8eSopenharmony_ci     *
446061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
446161847f8eSopenharmony_ci     * @since 12
446261847f8eSopenharmony_ci     */
446361847f8eSopenharmony_ci    PRECONFIG_HIGH_QUALITY = 3
446461847f8eSopenharmony_ci  }
446561847f8eSopenharmony_ci
446661847f8eSopenharmony_ci  /**
446761847f8eSopenharmony_ci   * The aspect ratios of preconfig, which used to configure session conveniently.
446861847f8eSopenharmony_ci   *
446961847f8eSopenharmony_ci   * @enum { number }
447061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
447161847f8eSopenharmony_ci   * @since 12
447261847f8eSopenharmony_ci   */
447361847f8eSopenharmony_ci  enum PreconfigRatio {
447461847f8eSopenharmony_ci    /**
447561847f8eSopenharmony_ci     * Aspect ratio 1:1 for preconfig.
447661847f8eSopenharmony_ci     *
447761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
447861847f8eSopenharmony_ci     * @since 12
447961847f8eSopenharmony_ci     */
448061847f8eSopenharmony_ci    PRECONFIG_RATIO_1_1 = 0,
448161847f8eSopenharmony_ci  
448261847f8eSopenharmony_ci    /**
448361847f8eSopenharmony_ci     * Aspect ratio 4:3 for preconfig.
448461847f8eSopenharmony_ci     *
448561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
448661847f8eSopenharmony_ci     * @since 12
448761847f8eSopenharmony_ci     */
448861847f8eSopenharmony_ci    PRECONFIG_RATIO_4_3 = 1,
448961847f8eSopenharmony_ci  
449061847f8eSopenharmony_ci    /**
449161847f8eSopenharmony_ci     * Aspect ratio 16:9 for preconfig.
449261847f8eSopenharmony_ci     *
449361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
449461847f8eSopenharmony_ci     * @since 12
449561847f8eSopenharmony_ci     */
449661847f8eSopenharmony_ci    PRECONFIG_RATIO_16_9 = 2
449761847f8eSopenharmony_ci  }
449861847f8eSopenharmony_ci
449961847f8eSopenharmony_ci  /**
450061847f8eSopenharmony_ci   * Enum for feature type used in scene detection.
450161847f8eSopenharmony_ci   *
450261847f8eSopenharmony_ci   * @enum { number }
450361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
450461847f8eSopenharmony_ci   * @systemapi
450561847f8eSopenharmony_ci   * @since 12
450661847f8eSopenharmony_ci   */
450761847f8eSopenharmony_ci  enum SceneFeatureType {
450861847f8eSopenharmony_ci    /**
450961847f8eSopenharmony_ci     * Feature for boost moon capture.
451061847f8eSopenharmony_ci     *
451161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
451261847f8eSopenharmony_ci     * @systemapi
451361847f8eSopenharmony_ci     * @since 12
451461847f8eSopenharmony_ci     */
451561847f8eSopenharmony_ci    MOON_CAPTURE_BOOST = 0,
451661847f8eSopenharmony_ci
451761847f8eSopenharmony_ci    /**
451861847f8eSopenharmony_ci     * Feature for tripod detection.
451961847f8eSopenharmony_ci     *
452061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
452161847f8eSopenharmony_ci     * @systemapi
452261847f8eSopenharmony_ci     * @since 13
452361847f8eSopenharmony_ci     */
452461847f8eSopenharmony_ci    TRIPOD_DETECTION = 1,
452561847f8eSopenharmony_ci
452661847f8eSopenharmony_ci    /**
452761847f8eSopenharmony_ci     * Feature for low light boost.
452861847f8eSopenharmony_ci     *
452961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
453061847f8eSopenharmony_ci     * @systemapi
453161847f8eSopenharmony_ci     * @since 12
453261847f8eSopenharmony_ci     */
453361847f8eSopenharmony_ci    LOW_LIGHT_BOOST = 2
453461847f8eSopenharmony_ci  }
453561847f8eSopenharmony_ci
453661847f8eSopenharmony_ci  /**
453761847f8eSopenharmony_ci   * Feature Detection Result.
453861847f8eSopenharmony_ci   *
453961847f8eSopenharmony_ci   * @typedef SceneFeatureDetectionResult
454061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
454161847f8eSopenharmony_ci   * @systemapi
454261847f8eSopenharmony_ci   * @since 12
454361847f8eSopenharmony_ci   */
454461847f8eSopenharmony_ci  interface SceneFeatureDetectionResult {
454561847f8eSopenharmony_ci    /**
454661847f8eSopenharmony_ci     * Detected feature type.
454761847f8eSopenharmony_ci     *
454861847f8eSopenharmony_ci     * @type { SceneFeatureType }
454961847f8eSopenharmony_ci     * @readonly
455061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
455161847f8eSopenharmony_ci     * @systemapi
455261847f8eSopenharmony_ci     * @since 12
455361847f8eSopenharmony_ci     */
455461847f8eSopenharmony_ci    readonly featureType: SceneFeatureType;
455561847f8eSopenharmony_ci
455661847f8eSopenharmony_ci    /**
455761847f8eSopenharmony_ci     * Check whether feature is detected.
455861847f8eSopenharmony_ci     *
455961847f8eSopenharmony_ci     * @type { boolean }
456061847f8eSopenharmony_ci     * @readonly
456161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
456261847f8eSopenharmony_ci     * @systemapi
456361847f8eSopenharmony_ci     * @since 12
456461847f8eSopenharmony_ci     */
456561847f8eSopenharmony_ci    readonly detected: boolean;
456661847f8eSopenharmony_ci  }
456761847f8eSopenharmony_ci
456861847f8eSopenharmony_ci  /**
456961847f8eSopenharmony_ci   * Enum for tripod status.
457061847f8eSopenharmony_ci   *
457161847f8eSopenharmony_ci   * @enum { number }
457261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
457361847f8eSopenharmony_ci   * @systemapi
457461847f8eSopenharmony_ci   * @since 13
457561847f8eSopenharmony_ci   */
457661847f8eSopenharmony_ci  enum TripodStatus {
457761847f8eSopenharmony_ci    /**
457861847f8eSopenharmony_ci     * Invalid tripod status.
457961847f8eSopenharmony_ci     *
458061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
458161847f8eSopenharmony_ci     * @systemapi
458261847f8eSopenharmony_ci     * @since 13
458361847f8eSopenharmony_ci     */
458461847f8eSopenharmony_ci    INVALID = 0,
458561847f8eSopenharmony_ci
458661847f8eSopenharmony_ci    /**
458761847f8eSopenharmony_ci     * Tripod is active.
458861847f8eSopenharmony_ci     *
458961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
459061847f8eSopenharmony_ci     * @systemapi
459161847f8eSopenharmony_ci     * @since 13
459261847f8eSopenharmony_ci     */
459361847f8eSopenharmony_ci    ACTIVE = 1,
459461847f8eSopenharmony_ci
459561847f8eSopenharmony_ci    /**
459661847f8eSopenharmony_ci     * Enter tripod stabilization state.
459761847f8eSopenharmony_ci     *
459861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
459961847f8eSopenharmony_ci     * @systemapi
460061847f8eSopenharmony_ci     * @since 13
460161847f8eSopenharmony_ci     */
460261847f8eSopenharmony_ci    ENTERING = 2,
460361847f8eSopenharmony_ci
460461847f8eSopenharmony_ci    /**
460561847f8eSopenharmony_ci     * Exit tripod stabilization state.
460661847f8eSopenharmony_ci     *
460761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
460861847f8eSopenharmony_ci     * @systemapi
460961847f8eSopenharmony_ci     * @since 13
461061847f8eSopenharmony_ci     */
461161847f8eSopenharmony_ci    EXITING = 3,
461261847f8eSopenharmony_ci  }
461361847f8eSopenharmony_ci
461461847f8eSopenharmony_ci   /**
461561847f8eSopenharmony_ci   * Tripod detection result.
461661847f8eSopenharmony_ci   *
461761847f8eSopenharmony_ci   * @interface TripodDetectionResult
461861847f8eSopenharmony_ci   * @extends SceneFeatureDetectionResult
461961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
462061847f8eSopenharmony_ci   * @systemapi
462161847f8eSopenharmony_ci   * @since 13
462261847f8eSopenharmony_ci   */
462361847f8eSopenharmony_ci  interface TripodDetectionResult extends SceneFeatureDetectionResult {
462461847f8eSopenharmony_ci    /**
462561847f8eSopenharmony_ci     * tripod status.
462661847f8eSopenharmony_ci     *
462761847f8eSopenharmony_ci     * @type { TripodStatus }
462861847f8eSopenharmony_ci     * @readonly
462961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
463061847f8eSopenharmony_ci     * @systemapi
463161847f8eSopenharmony_ci     * @since 13
463261847f8eSopenharmony_ci     */
463361847f8eSopenharmony_ci    readonly tripodStatus: TripodStatus;
463461847f8eSopenharmony_ci  }
463561847f8eSopenharmony_ci
463661847f8eSopenharmony_ci  /**
463761847f8eSopenharmony_ci   * Scene detection query.
463861847f8eSopenharmony_ci   *
463961847f8eSopenharmony_ci   * @interface SceneDetectionQuery
464061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
464161847f8eSopenharmony_ci   * @systemapi
464261847f8eSopenharmony_ci   * @since 12
464361847f8eSopenharmony_ci   */
464461847f8eSopenharmony_ci  interface SceneDetectionQuery {
464561847f8eSopenharmony_ci    /**
464661847f8eSopenharmony_ci     * Check whether specified feature is supported.
464761847f8eSopenharmony_ci     *
464861847f8eSopenharmony_ci     * @param { SceneFeatureType } type - Specified feature type.
464961847f8eSopenharmony_ci     * @returns { boolean } - Is specified feature supported.
465061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application, only throw in session usage.
465161847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
465261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
465361847f8eSopenharmony_ci     * @systemapi
465461847f8eSopenharmony_ci     * @since 12
465561847f8eSopenharmony_ci     */
465661847f8eSopenharmony_ci    isSceneFeatureSupported(type: SceneFeatureType): boolean;
465761847f8eSopenharmony_ci  }
465861847f8eSopenharmony_ci
465961847f8eSopenharmony_ci  /**
466061847f8eSopenharmony_ci   * Scene detection.
466161847f8eSopenharmony_ci   *
466261847f8eSopenharmony_ci   * @interface SceneDetection
466361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
466461847f8eSopenharmony_ci   * @systemapi
466561847f8eSopenharmony_ci   * @since 12
466661847f8eSopenharmony_ci   */
466761847f8eSopenharmony_ci  interface SceneDetection extends SceneDetectionQuery {
466861847f8eSopenharmony_ci    /**
466961847f8eSopenharmony_ci     * Enable specified feature.
467061847f8eSopenharmony_ci     *
467161847f8eSopenharmony_ci     * @param { SceneFeatureType } type - Specified feature type.
467261847f8eSopenharmony_ci     * @param { boolean } enabled - Target feature status.
467361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
467461847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
467561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
467661847f8eSopenharmony_ci     * @systemapi
467761847f8eSopenharmony_ci     * @since 12
467861847f8eSopenharmony_ci     */
467961847f8eSopenharmony_ci    enableSceneFeature(type: SceneFeatureType, enabled: boolean): void;
468061847f8eSopenharmony_ci  }
468161847f8eSopenharmony_ci
468261847f8eSopenharmony_ci  /**
468361847f8eSopenharmony_ci   * Photo session object for system hap.
468461847f8eSopenharmony_ci   *
468561847f8eSopenharmony_ci   * @interface PhotoSessionForSys
468661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
468761847f8eSopenharmony_ci   * @systemapi
468861847f8eSopenharmony_ci   * @since 11
468961847f8eSopenharmony_ci   */
469061847f8eSopenharmony_ci  interface PhotoSessionForSys extends PhotoSession, Beauty, ColorEffect, ColorManagement, Macro, SceneDetection, EffectSuggestion {
469161847f8eSopenharmony_ci  }
469261847f8eSopenharmony_ci
469361847f8eSopenharmony_ci  /**
469461847f8eSopenharmony_ci   * Photo session object.
469561847f8eSopenharmony_ci   *
469661847f8eSopenharmony_ci   * @interface PhotoSession
469761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
469861847f8eSopenharmony_ci   * @since 11
469961847f8eSopenharmony_ci   */
470061847f8eSopenharmony_ci  interface PhotoSession extends Session, Flash, AutoExposure, Focus, Zoom, ColorManagement {
470161847f8eSopenharmony_ci    /**
470261847f8eSopenharmony_ci     * Gets whether the choosed preconfig type can be used to configure photo session.
470361847f8eSopenharmony_ci     * Must choose preconfig type from {@link PreconfigType}.
470461847f8eSopenharmony_ci     *
470561847f8eSopenharmony_ci     * @param { PreconfigType } preconfigType - preconfig type.
470661847f8eSopenharmony_ci     * @param { PreconfigRatio } preconfigRatio - the aspect ratio of surface for preconfig, 
470761847f8eSopenharmony_ci     *                                            default value {@link PreconfigRatio#PRECONFIG_RATIO_4_3}.
470861847f8eSopenharmony_ci     * @returns { boolean } Whether the choosed preconfig type can be used.
470961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
471061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
471161847f8eSopenharmony_ci     * @since 12
471261847f8eSopenharmony_ci     */
471361847f8eSopenharmony_ci    canPreconfig(preconfigType: PreconfigType, preconfigRatio?: PreconfigRatio): boolean;
471461847f8eSopenharmony_ci
471561847f8eSopenharmony_ci    /**
471661847f8eSopenharmony_ci     * Configure photo session with the preconfig type.
471761847f8eSopenharmony_ci     * Must choose preconfig type from {@link PreconfigType}.
471861847f8eSopenharmony_ci     *
471961847f8eSopenharmony_ci     * @param { PreconfigType } preconfigType - preconfig type.
472061847f8eSopenharmony_ci     * @param { PreconfigRatio } preconfigRatio - the aspect ratio of surface for preconfig,
472161847f8eSopenharmony_ci     *                                            default value {@link PreconfigRatio#PRECONFIG_RATIO_4_3}
472261847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
472361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
472461847f8eSopenharmony_ci     * @since 12
472561847f8eSopenharmony_ci     */
472661847f8eSopenharmony_ci    preconfig(preconfigType: PreconfigType, preconfigRatio?: PreconfigRatio): void;
472761847f8eSopenharmony_ci
472861847f8eSopenharmony_ci    /**
472961847f8eSopenharmony_ci     * Subscribes to error events.
473061847f8eSopenharmony_ci     *
473161847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
473261847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
473361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
473461847f8eSopenharmony_ci     * @since 11
473561847f8eSopenharmony_ci     */
473661847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
473761847f8eSopenharmony_ci
473861847f8eSopenharmony_ci    /**
473961847f8eSopenharmony_ci     * Unsubscribes from error events.
474061847f8eSopenharmony_ci     *
474161847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
474261847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
474361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
474461847f8eSopenharmony_ci     * @since 11
474561847f8eSopenharmony_ci     */
474661847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
474761847f8eSopenharmony_ci
474861847f8eSopenharmony_ci    /**
474961847f8eSopenharmony_ci     * Subscribes focus state change event callback.
475061847f8eSopenharmony_ci     *
475161847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
475261847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
475361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
475461847f8eSopenharmony_ci     * @since 11
475561847f8eSopenharmony_ci     */
475661847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
475761847f8eSopenharmony_ci
475861847f8eSopenharmony_ci    /**
475961847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
476061847f8eSopenharmony_ci     *
476161847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
476261847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
476361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
476461847f8eSopenharmony_ci     * @since 11
476561847f8eSopenharmony_ci     */
476661847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
476761847f8eSopenharmony_ci
476861847f8eSopenharmony_ci    /**
476961847f8eSopenharmony_ci     * Subscribes zoom info event callback.
477061847f8eSopenharmony_ci     *
477161847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
477261847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
477361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
477461847f8eSopenharmony_ci     * @since 11
477561847f8eSopenharmony_ci     */
477661847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
477761847f8eSopenharmony_ci
477861847f8eSopenharmony_ci    /**
477961847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
478061847f8eSopenharmony_ci     *
478161847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
478261847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
478361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
478461847f8eSopenharmony_ci     * @since 11
478561847f8eSopenharmony_ci     */
478661847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
478761847f8eSopenharmony_ci
478861847f8eSopenharmony_ci    /**
478961847f8eSopenharmony_ci     * Subscribes camera macro status event callback.
479061847f8eSopenharmony_ci     *
479161847f8eSopenharmony_ci     * @param { 'macroStatusChanged' } type - Event type.
479261847f8eSopenharmony_ci     * @param { AsyncCallback<boolean> } callback - Callback used to return the result.
479361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
479461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
479561847f8eSopenharmony_ci     * @systemapi
479661847f8eSopenharmony_ci     * @since 11
479761847f8eSopenharmony_ci     */
479861847f8eSopenharmony_ci    on(type: 'macroStatusChanged', callback: AsyncCallback<boolean>): void;
479961847f8eSopenharmony_ci
480061847f8eSopenharmony_ci    /**
480161847f8eSopenharmony_ci     * Unsubscribes camera macro status event callback.
480261847f8eSopenharmony_ci     *
480361847f8eSopenharmony_ci     * @param { 'macroStatusChanged' } type - Event type.
480461847f8eSopenharmony_ci     * @param { AsyncCallback<boolean> } callback - Callback used to return the result.
480561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
480661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
480761847f8eSopenharmony_ci     * @systemapi
480861847f8eSopenharmony_ci     * @since 11
480961847f8eSopenharmony_ci     */
481061847f8eSopenharmony_ci    off(type: 'macroStatusChanged', callback?: AsyncCallback<boolean>): void;
481161847f8eSopenharmony_ci
481261847f8eSopenharmony_ci    /**
481361847f8eSopenharmony_ci     * Subscribes to feature detection results.
481461847f8eSopenharmony_ci     *
481561847f8eSopenharmony_ci     * @param { 'featureDetection' } type - Event type.
481661847f8eSopenharmony_ci     * @param { SceneFeatureType } featureType - Feature type.
481761847f8eSopenharmony_ci     * @param { AsyncCallback<SceneFeatureDetectionResult> } callback - Callback used to get the detection result.
481861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
481961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
482061847f8eSopenharmony_ci     * @systemapi
482161847f8eSopenharmony_ci     * @since 12
482261847f8eSopenharmony_ci     */
482361847f8eSopenharmony_ci    on(type: 'featureDetection', featureType: SceneFeatureType, callback: AsyncCallback<SceneFeatureDetectionResult>): void;
482461847f8eSopenharmony_ci
482561847f8eSopenharmony_ci    /**
482661847f8eSopenharmony_ci     * Unsubscribes from feature detection result.
482761847f8eSopenharmony_ci     *
482861847f8eSopenharmony_ci     * @param { 'featureDetection' } type - Event type.
482961847f8eSopenharmony_ci     * @param { SceneFeatureType } featureType - Feature type.
483061847f8eSopenharmony_ci     * @param { AsyncCallback<SceneFeatureDetectionResult> } callback - Callback used to get the detection result.
483161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
483261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
483361847f8eSopenharmony_ci     * @systemapi
483461847f8eSopenharmony_ci     * @since 12
483561847f8eSopenharmony_ci     */
483661847f8eSopenharmony_ci    off(type: 'featureDetection', featureType: SceneFeatureType, callback?: AsyncCallback<SceneFeatureDetectionResult>): void;
483761847f8eSopenharmony_ci
483861847f8eSopenharmony_ci    /**
483961847f8eSopenharmony_ci     * Subscribes to effect suggestion event callback.
484061847f8eSopenharmony_ci     *
484161847f8eSopenharmony_ci     * @param { 'effectSuggestionChange' } type - Event type.
484261847f8eSopenharmony_ci     * @param { AsyncCallback<EffectSuggestionType> } callback - Callback used to return the result.
484361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
484461847f8eSopenharmony_ci     * @systemapi
484561847f8eSopenharmony_ci     * @since 12
484661847f8eSopenharmony_ci     */
484761847f8eSopenharmony_ci    on(type: 'effectSuggestionChange', callback: AsyncCallback<EffectSuggestionType>): void;
484861847f8eSopenharmony_ci
484961847f8eSopenharmony_ci    /**
485061847f8eSopenharmony_ci     * Unsubscribes from effect suggestion event callback.
485161847f8eSopenharmony_ci     *
485261847f8eSopenharmony_ci     * @param { 'effectSuggestionChange' } type - Event type.
485361847f8eSopenharmony_ci     * @param { AsyncCallback<EffectSuggestionType> } callback - Callback used to return the result.
485461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
485561847f8eSopenharmony_ci     * @systemapi
485661847f8eSopenharmony_ci     * @since 12
485761847f8eSopenharmony_ci     */
485861847f8eSopenharmony_ci    off(type: 'effectSuggestionChange', callback?: AsyncCallback<EffectSuggestionType>): void;
485961847f8eSopenharmony_ci
486061847f8eSopenharmony_ci    /**
486161847f8eSopenharmony_ci     * Subscribes to lcd flash status.
486261847f8eSopenharmony_ci     *
486361847f8eSopenharmony_ci     * @param { 'lcdFlashStatus' } type - Event type.
486461847f8eSopenharmony_ci     * @param { AsyncCallback<LcdFlashStatus> } callback - Callback used to get the lcd flash status.
486561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
486661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
486761847f8eSopenharmony_ci     * @systemapi
486861847f8eSopenharmony_ci     * @since 13
486961847f8eSopenharmony_ci     */
487061847f8eSopenharmony_ci    on(type: 'lcdFlashStatus', callback: AsyncCallback<LcdFlashStatus>): void;
487161847f8eSopenharmony_ci
487261847f8eSopenharmony_ci    /**
487361847f8eSopenharmony_ci     * Unsubscribes from lcd flash status.
487461847f8eSopenharmony_ci     *
487561847f8eSopenharmony_ci     * @param { 'lcdFlashStatus' } type - Event type.
487661847f8eSopenharmony_ci     * @param { AsyncCallback<LcdFlashStatus> } callback - Callback used to get the lcd flash status.
487761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
487861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
487961847f8eSopenharmony_ci     * @systemapi
488061847f8eSopenharmony_ci     * @since 13
488161847f8eSopenharmony_ci     */
488261847f8eSopenharmony_ci    off(type: 'lcdFlashStatus', callback?: AsyncCallback<LcdFlashStatus>): void;
488361847f8eSopenharmony_ci
488461847f8eSopenharmony_ci    /**
488561847f8eSopenharmony_ci     * Gets session functions.
488661847f8eSopenharmony_ci     *
488761847f8eSopenharmony_ci     * @param { CameraOutputCapability } outputCapability - CameraOutputCapability to set.
488861847f8eSopenharmony_ci     * @returns { Array<PhotoFunctions> } List of session functions.
488961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
489061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
489161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
489261847f8eSopenharmony_ci     * @systemapi
489361847f8eSopenharmony_ci     * @since 13
489461847f8eSopenharmony_ci     */
489561847f8eSopenharmony_ci    getSessionFunctions(outputCapability: CameraOutputCapability): Array<PhotoFunctions>;
489661847f8eSopenharmony_ci
489761847f8eSopenharmony_ci    /**
489861847f8eSopenharmony_ci     * Gets session conflict functions.
489961847f8eSopenharmony_ci     *
490061847f8eSopenharmony_ci     * @returns { Array<PhotoConflictFunctions> } List of session conflict functions.
490161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
490261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
490361847f8eSopenharmony_ci     * @systemapi
490461847f8eSopenharmony_ci     * @since 12
490561847f8eSopenharmony_ci     */
490661847f8eSopenharmony_ci    getSessionConflictFunctions(): Array<PhotoConflictFunctions>;
490761847f8eSopenharmony_ci  }
490861847f8eSopenharmony_ci
490961847f8eSopenharmony_ci  /**
491061847f8eSopenharmony_ci   * Video session object for system hap.
491161847f8eSopenharmony_ci   *
491261847f8eSopenharmony_ci   * @interface VideoSessionForSys
491361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
491461847f8eSopenharmony_ci   * @systemapi
491561847f8eSopenharmony_ci   * @since 11
491661847f8eSopenharmony_ci   */
491761847f8eSopenharmony_ci  interface VideoSessionForSys extends VideoSession, Beauty, ColorEffect, ColorManagement, Macro {
491861847f8eSopenharmony_ci  }
491961847f8eSopenharmony_ci
492061847f8eSopenharmony_ci  /**
492161847f8eSopenharmony_ci   * Video session object.
492261847f8eSopenharmony_ci   *
492361847f8eSopenharmony_ci   * @interface VideoSession
492461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
492561847f8eSopenharmony_ci   * @since 11
492661847f8eSopenharmony_ci   */
492761847f8eSopenharmony_ci  interface VideoSession extends Session, Flash, AutoExposure, Focus, Zoom, Stabilization, ColorManagement {
492861847f8eSopenharmony_ci    /**
492961847f8eSopenharmony_ci     * Gets whether the choosed preconfig type can be used to configure video session.
493061847f8eSopenharmony_ci     * Must choose preconfig type from {@link PreconfigType}.
493161847f8eSopenharmony_ci     *
493261847f8eSopenharmony_ci     * @param { PreconfigType } preconfigType - preconfig type.
493361847f8eSopenharmony_ci     * @param { PreconfigRatio } preconfigRatio - the aspect ratio of surface for preconfig,
493461847f8eSopenharmony_ci     *                                            default value {@link PreconfigRatio#PRECONFIG_RATIO_16_9}.
493561847f8eSopenharmony_ci     * @returns { boolean } Whether the choosed preconfig type can be used.
493661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
493761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
493861847f8eSopenharmony_ci     * @since 12
493961847f8eSopenharmony_ci     */
494061847f8eSopenharmony_ci    canPreconfig(preconfigType: PreconfigType, preconfigRatio?: PreconfigRatio): boolean;
494161847f8eSopenharmony_ci
494261847f8eSopenharmony_ci    /**
494361847f8eSopenharmony_ci     * Configure video session with the preconfig type.
494461847f8eSopenharmony_ci     * Must choose preconfig type from {@link PreconfigType}.
494561847f8eSopenharmony_ci     *
494661847f8eSopenharmony_ci     * @param { PreconfigType } preconfigType - preconfig type.
494761847f8eSopenharmony_ci     * @param { PreconfigRatio } preconfigRatio - the aspect ratio of surface for preconfig,
494861847f8eSopenharmony_ci     *                                            default value {@link PreconfigRatio#PRECONFIG_RATIO_16_9}.
494961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
495061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
495161847f8eSopenharmony_ci     * @since 12
495261847f8eSopenharmony_ci     */
495361847f8eSopenharmony_ci    preconfig(preconfigType: PreconfigType, preconfigRatio?: PreconfigRatio): void;
495461847f8eSopenharmony_ci
495561847f8eSopenharmony_ci    /**
495661847f8eSopenharmony_ci     * Subscribes to error events.
495761847f8eSopenharmony_ci     *
495861847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
495961847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
496061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
496161847f8eSopenharmony_ci     * @since 11
496261847f8eSopenharmony_ci     */
496361847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
496461847f8eSopenharmony_ci
496561847f8eSopenharmony_ci    /**
496661847f8eSopenharmony_ci     * Unsubscribes from error events.
496761847f8eSopenharmony_ci     *
496861847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
496961847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
497061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
497161847f8eSopenharmony_ci     * @since 11
497261847f8eSopenharmony_ci     */
497361847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
497461847f8eSopenharmony_ci
497561847f8eSopenharmony_ci    /**
497661847f8eSopenharmony_ci     * Subscribes focus state change event callback.
497761847f8eSopenharmony_ci     *
497861847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
497961847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
498061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
498161847f8eSopenharmony_ci     * @since 11
498261847f8eSopenharmony_ci     */
498361847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
498461847f8eSopenharmony_ci
498561847f8eSopenharmony_ci    /**
498661847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
498761847f8eSopenharmony_ci     *
498861847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
498961847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
499061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
499161847f8eSopenharmony_ci     * @since 11
499261847f8eSopenharmony_ci     */
499361847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
499461847f8eSopenharmony_ci
499561847f8eSopenharmony_ci    /**
499661847f8eSopenharmony_ci     * Subscribes zoom info event callback.
499761847f8eSopenharmony_ci     *
499861847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
499961847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
500061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
500161847f8eSopenharmony_ci     * @since 11
500261847f8eSopenharmony_ci     */
500361847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
500461847f8eSopenharmony_ci
500561847f8eSopenharmony_ci    /**
500661847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
500761847f8eSopenharmony_ci     *
500861847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
500961847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
501061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
501161847f8eSopenharmony_ci     * @since 11
501261847f8eSopenharmony_ci     */
501361847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
501461847f8eSopenharmony_ci
501561847f8eSopenharmony_ci    /**
501661847f8eSopenharmony_ci     * Subscribes camera macro status event callback.
501761847f8eSopenharmony_ci     *
501861847f8eSopenharmony_ci     * @param { 'macroStatusChanged' } type - Event type.
501961847f8eSopenharmony_ci     * @param { AsyncCallback<boolean> } callback - Callback used to return the result.
502061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
502161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
502261847f8eSopenharmony_ci     * @systemapi
502361847f8eSopenharmony_ci     * @since 11
502461847f8eSopenharmony_ci     */
502561847f8eSopenharmony_ci    on(type: 'macroStatusChanged', callback: AsyncCallback<boolean>): void;
502661847f8eSopenharmony_ci
502761847f8eSopenharmony_ci    /**
502861847f8eSopenharmony_ci     * Unsubscribes camera macro status event callback.
502961847f8eSopenharmony_ci     *
503061847f8eSopenharmony_ci     * @param { 'macroStatusChanged' } type - Event type.
503161847f8eSopenharmony_ci     * @param { AsyncCallback<boolean> } callback - Callback used to return the result.
503261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
503361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
503461847f8eSopenharmony_ci     * @systemapi
503561847f8eSopenharmony_ci     * @since 11
503661847f8eSopenharmony_ci     */
503761847f8eSopenharmony_ci    off(type: 'macroStatusChanged', callback?: AsyncCallback<boolean>): void;
503861847f8eSopenharmony_ci
503961847f8eSopenharmony_ci    /**
504061847f8eSopenharmony_ci     * Subscribes to lcd flash status.
504161847f8eSopenharmony_ci     *
504261847f8eSopenharmony_ci     * @param { 'lcdFlashStatus' } type - Event type.
504361847f8eSopenharmony_ci     * @param { AsyncCallback<LcdFlashStatus> } callback - Callback used to get the lcd flash status.
504461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
504561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
504661847f8eSopenharmony_ci     * @systemapi
504761847f8eSopenharmony_ci     * @since 13
504861847f8eSopenharmony_ci     */
504961847f8eSopenharmony_ci    on(type: 'lcdFlashStatus', callback: AsyncCallback<LcdFlashStatus>): void;
505061847f8eSopenharmony_ci
505161847f8eSopenharmony_ci    /**
505261847f8eSopenharmony_ci     * Unsubscribes from lcd flash status.
505361847f8eSopenharmony_ci     *
505461847f8eSopenharmony_ci     * @param { 'lcdFlashStatus' } type - Event type.
505561847f8eSopenharmony_ci     * @param { AsyncCallback<LcdFlashStatus> } callback - Callback used to get the lcd flash status.
505661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
505761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
505861847f8eSopenharmony_ci     * @systemapi
505961847f8eSopenharmony_ci     * @since 13
506061847f8eSopenharmony_ci     */
506161847f8eSopenharmony_ci    off(type: 'lcdFlashStatus', callback?: AsyncCallback<LcdFlashStatus>): void;
506261847f8eSopenharmony_ci
506361847f8eSopenharmony_ci    /**
506461847f8eSopenharmony_ci     * Gets session functions.
506561847f8eSopenharmony_ci     *
506661847f8eSopenharmony_ci     * @param { CameraOutputCapability } outputCapability - CameraOutputCapability to set.
506761847f8eSopenharmony_ci     * @returns { Array<VideoFunctions> } List of session functions.
506861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
506961847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
507061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
507161847f8eSopenharmony_ci     * @systemapi
507261847f8eSopenharmony_ci     * @since 13
507361847f8eSopenharmony_ci     */
507461847f8eSopenharmony_ci    getSessionFunctions(outputCapability: CameraOutputCapability): Array<VideoFunctions>;
507561847f8eSopenharmony_ci
507661847f8eSopenharmony_ci    /**
507761847f8eSopenharmony_ci     * Gets session conflict functions.
507861847f8eSopenharmony_ci     *
507961847f8eSopenharmony_ci     * @returns { Array<VideoConflictFunctions> } List of session conflict functions.
508061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
508161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
508261847f8eSopenharmony_ci     * @systemapi
508361847f8eSopenharmony_ci     * @since 12
508461847f8eSopenharmony_ci     */
508561847f8eSopenharmony_ci    getSessionConflictFunctions(): Array<VideoConflictFunctions>;
508661847f8eSopenharmony_ci  }
508761847f8eSopenharmony_ci
508861847f8eSopenharmony_ci  /**
508961847f8eSopenharmony_ci   * Enumerates the camera portrait effects.
509061847f8eSopenharmony_ci   *
509161847f8eSopenharmony_ci   * @enum { number }
509261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
509361847f8eSopenharmony_ci   * @systemapi
509461847f8eSopenharmony_ci   * @since 10
509561847f8eSopenharmony_ci   */
509661847f8eSopenharmony_ci  enum PortraitEffect {
509761847f8eSopenharmony_ci    /**
509861847f8eSopenharmony_ci     * portrait effect off.
509961847f8eSopenharmony_ci     *
510061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
510161847f8eSopenharmony_ci     * @systemapi
510261847f8eSopenharmony_ci     * @since 10
510361847f8eSopenharmony_ci     */
510461847f8eSopenharmony_ci    OFF = 0,
510561847f8eSopenharmony_ci
510661847f8eSopenharmony_ci    /**
510761847f8eSopenharmony_ci     * circular blurring for portrait.
510861847f8eSopenharmony_ci     *
510961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
511061847f8eSopenharmony_ci     * @systemapi
511161847f8eSopenharmony_ci     * @since 10
511261847f8eSopenharmony_ci     */
511361847f8eSopenharmony_ci    CIRCLES = 1,
511461847f8eSopenharmony_ci
511561847f8eSopenharmony_ci    /**
511661847f8eSopenharmony_ci     * heart blurring for portrait.
511761847f8eSopenharmony_ci     *
511861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
511961847f8eSopenharmony_ci     * @systemapi
512061847f8eSopenharmony_ci     * @since 11
512161847f8eSopenharmony_ci     */
512261847f8eSopenharmony_ci    HEART = 2,
512361847f8eSopenharmony_ci
512461847f8eSopenharmony_ci    /**
512561847f8eSopenharmony_ci     * rotated blurring for portrait.
512661847f8eSopenharmony_ci     *
512761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
512861847f8eSopenharmony_ci     * @systemapi
512961847f8eSopenharmony_ci     * @since 11
513061847f8eSopenharmony_ci     */
513161847f8eSopenharmony_ci    ROTATED = 3,
513261847f8eSopenharmony_ci
513361847f8eSopenharmony_ci    /**
513461847f8eSopenharmony_ci     * studio blurring for portrait.
513561847f8eSopenharmony_ci     *
513661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
513761847f8eSopenharmony_ci     * @systemapi
513861847f8eSopenharmony_ci     * @since 11
513961847f8eSopenharmony_ci     */
514061847f8eSopenharmony_ci    STUDIO = 4,
514161847f8eSopenharmony_ci
514261847f8eSopenharmony_ci    /**
514361847f8eSopenharmony_ci     * theater blurring for portrait.
514461847f8eSopenharmony_ci     *
514561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
514661847f8eSopenharmony_ci     * @systemapi
514761847f8eSopenharmony_ci     * @since 11
514861847f8eSopenharmony_ci     */
514961847f8eSopenharmony_ci    THEATER = 5
515061847f8eSopenharmony_ci  }
515161847f8eSopenharmony_ci
515261847f8eSopenharmony_ci  /**
515361847f8eSopenharmony_ci   * Portrait Query object.
515461847f8eSopenharmony_ci   *
515561847f8eSopenharmony_ci   * @interface PortraitQuery
515661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
515761847f8eSopenharmony_ci   * @systemapi
515861847f8eSopenharmony_ci   * @since 12
515961847f8eSopenharmony_ci   */
516061847f8eSopenharmony_ci  interface PortraitQuery {
516161847f8eSopenharmony_ci    /**
516261847f8eSopenharmony_ci     * Gets supported portrait effect.
516361847f8eSopenharmony_ci     *
516461847f8eSopenharmony_ci     * @returns { Array<PortraitEffect> } List of portrait effect.
516561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
516661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
516761847f8eSopenharmony_ci     * @systemapi
516861847f8eSopenharmony_ci     * @since 10
516961847f8eSopenharmony_ci     */
517061847f8eSopenharmony_ci    /**
517161847f8eSopenharmony_ci     * Gets supported portrait effect.
517261847f8eSopenharmony_ci     * Move to Portrait interface from PortraitPhotoSession interface since 11.
517361847f8eSopenharmony_ci     *
517461847f8eSopenharmony_ci     * @returns { Array<PortraitEffect> } List of portrait effect.
517561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
517661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
517761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
517861847f8eSopenharmony_ci     * @systemapi
517961847f8eSopenharmony_ci     * @since 11
518061847f8eSopenharmony_ci     */
518161847f8eSopenharmony_ci    /**
518261847f8eSopenharmony_ci     * Gets supported portrait effect.
518361847f8eSopenharmony_ci     * Move to PortraitQuery interface from Portrait interface since 12.
518461847f8eSopenharmony_ci     *
518561847f8eSopenharmony_ci     * @returns { Array<PortraitEffect> } List of portrait effect.
518661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
518761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
518861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
518961847f8eSopenharmony_ci     * @systemapi
519061847f8eSopenharmony_ci     * @since 12
519161847f8eSopenharmony_ci     */
519261847f8eSopenharmony_ci    getSupportedPortraitEffects(): Array<PortraitEffect>;
519361847f8eSopenharmony_ci  }
519461847f8eSopenharmony_ci
519561847f8eSopenharmony_ci  /**
519661847f8eSopenharmony_ci   * Portrait object.
519761847f8eSopenharmony_ci   *
519861847f8eSopenharmony_ci   * @interface Portrait
519961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
520061847f8eSopenharmony_ci   * @systemapi
520161847f8eSopenharmony_ci   * @since 11
520261847f8eSopenharmony_ci   */
520361847f8eSopenharmony_ci  interface Portrait extends PortraitQuery {
520461847f8eSopenharmony_ci    /**
520561847f8eSopenharmony_ci     * Gets the portrait effect in use.
520661847f8eSopenharmony_ci     *
520761847f8eSopenharmony_ci     * @returns { PortraitEffect } The portrait effect in use.
520861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
520961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
521061847f8eSopenharmony_ci     * @systemapi
521161847f8eSopenharmony_ci     * @since 10
521261847f8eSopenharmony_ci     */
521361847f8eSopenharmony_ci    /**
521461847f8eSopenharmony_ci     * Gets the portrait effect in use.
521561847f8eSopenharmony_ci     * Move to Portrait interface from PortraitPhotoSession interface since 11.
521661847f8eSopenharmony_ci     *
521761847f8eSopenharmony_ci     * @returns { PortraitEffect } The portrait effect in use.
521861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
521961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
522061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
522161847f8eSopenharmony_ci     * @systemapi
522261847f8eSopenharmony_ci     * @since 11
522361847f8eSopenharmony_ci     */
522461847f8eSopenharmony_ci    getPortraitEffect(): PortraitEffect;
522561847f8eSopenharmony_ci
522661847f8eSopenharmony_ci    /**
522761847f8eSopenharmony_ci     * Sets a portrait effect for a camera device.
522861847f8eSopenharmony_ci     *
522961847f8eSopenharmony_ci     * @param { PortraitEffect } effect - Effect Portrait effect to set.
523061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
523161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
523261847f8eSopenharmony_ci     * @systemapi
523361847f8eSopenharmony_ci     * @since 10
523461847f8eSopenharmony_ci     */
523561847f8eSopenharmony_ci    /**
523661847f8eSopenharmony_ci     * Sets a portrait effect for a camera device.
523761847f8eSopenharmony_ci     * Move to Portrait interface from PortraitPhotoSession interface since 11.
523861847f8eSopenharmony_ci     *
523961847f8eSopenharmony_ci     * @param { PortraitEffect } effect - Effect Portrait effect to set.
524061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
524161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
524261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
524361847f8eSopenharmony_ci     * @systemapi
524461847f8eSopenharmony_ci     * @since 11
524561847f8eSopenharmony_ci     */
524661847f8eSopenharmony_ci    setPortraitEffect(effect: PortraitEffect): void;
524761847f8eSopenharmony_ci  }
524861847f8eSopenharmony_ci
524961847f8eSopenharmony_ci  /**
525061847f8eSopenharmony_ci   * Zoom range.
525161847f8eSopenharmony_ci   *
525261847f8eSopenharmony_ci   * @typedef ZoomRange
525361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
525461847f8eSopenharmony_ci   * @systemapi
525561847f8eSopenharmony_ci   * @since 11
525661847f8eSopenharmony_ci   */
525761847f8eSopenharmony_ci  interface ZoomRange {
525861847f8eSopenharmony_ci    /**
525961847f8eSopenharmony_ci     * Min zoom value.
526061847f8eSopenharmony_ci     *
526161847f8eSopenharmony_ci     * @type { number }
526261847f8eSopenharmony_ci     * @readonly
526361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
526461847f8eSopenharmony_ci     * @systemapi
526561847f8eSopenharmony_ci     * @since 11
526661847f8eSopenharmony_ci     */
526761847f8eSopenharmony_ci    readonly min: number;
526861847f8eSopenharmony_ci
526961847f8eSopenharmony_ci    /**
527061847f8eSopenharmony_ci     * Max zoom value.
527161847f8eSopenharmony_ci     *
527261847f8eSopenharmony_ci     * @type { number }
527361847f8eSopenharmony_ci     * @readonly
527461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
527561847f8eSopenharmony_ci     * @systemapi
527661847f8eSopenharmony_ci     * @since 11
527761847f8eSopenharmony_ci     */
527861847f8eSopenharmony_ci    readonly max: number;
527961847f8eSopenharmony_ci  }
528061847f8eSopenharmony_ci
528161847f8eSopenharmony_ci  /**
528261847f8eSopenharmony_ci   * Physical Aperture object
528361847f8eSopenharmony_ci   *
528461847f8eSopenharmony_ci   * @typedef PhysicalAperture
528561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
528661847f8eSopenharmony_ci   * @systemapi
528761847f8eSopenharmony_ci   * @since 11
528861847f8eSopenharmony_ci   */
528961847f8eSopenharmony_ci  interface PhysicalAperture {
529061847f8eSopenharmony_ci    /**
529161847f8eSopenharmony_ci     * Zoom Range of the specific physical aperture.
529261847f8eSopenharmony_ci     *
529361847f8eSopenharmony_ci     * @type { ZoomRange }
529461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
529561847f8eSopenharmony_ci     * @systemapi
529661847f8eSopenharmony_ci     * @since 11
529761847f8eSopenharmony_ci     */
529861847f8eSopenharmony_ci    zoomRange: ZoomRange;
529961847f8eSopenharmony_ci
530061847f8eSopenharmony_ci    /**
530161847f8eSopenharmony_ci     * The supported physical apertures.
530261847f8eSopenharmony_ci     *
530361847f8eSopenharmony_ci     * @type { Array<number> }
530461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
530561847f8eSopenharmony_ci     * @systemapi
530661847f8eSopenharmony_ci     * @since 11
530761847f8eSopenharmony_ci     */
530861847f8eSopenharmony_ci    apertures: Array<number>;
530961847f8eSopenharmony_ci  }
531061847f8eSopenharmony_ci
531161847f8eSopenharmony_ci  /**
531261847f8eSopenharmony_ci   * Aperture Query object.
531361847f8eSopenharmony_ci   *
531461847f8eSopenharmony_ci   * @interface ApertureQuery
531561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
531661847f8eSopenharmony_ci   * @systemapi
531761847f8eSopenharmony_ci   * @since 12
531861847f8eSopenharmony_ci   */
531961847f8eSopenharmony_ci  interface ApertureQuery {
532061847f8eSopenharmony_ci    /**
532161847f8eSopenharmony_ci     * Gets the supported virtual apertures.
532261847f8eSopenharmony_ci     *
532361847f8eSopenharmony_ci     * @returns { Array<number> } The array of supported virtual apertures.
532461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
532561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
532661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
532761847f8eSopenharmony_ci     * @systemapi
532861847f8eSopenharmony_ci     * @since 11
532961847f8eSopenharmony_ci     */
533061847f8eSopenharmony_ci    /**
533161847f8eSopenharmony_ci     * Gets the supported virtual apertures.
533261847f8eSopenharmony_ci     * Move to ApertureQuery interface from Aperture since 12.
533361847f8eSopenharmony_ci     *
533461847f8eSopenharmony_ci     * @returns { Array<number> } The array of supported virtual apertures.
533561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
533661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
533761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
533861847f8eSopenharmony_ci     * @systemapi
533961847f8eSopenharmony_ci     * @since 12
534061847f8eSopenharmony_ci     */
534161847f8eSopenharmony_ci    getSupportedVirtualApertures(): Array<number>;
534261847f8eSopenharmony_ci
534361847f8eSopenharmony_ci    /**
534461847f8eSopenharmony_ci     * Gets the supported physical apertures.
534561847f8eSopenharmony_ci     *
534661847f8eSopenharmony_ci     * @returns { Array<PhysicalAperture> } The array of supported physical apertures.
534761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
534861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
534961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
535061847f8eSopenharmony_ci     * @systemapi
535161847f8eSopenharmony_ci     * @since 11
535261847f8eSopenharmony_ci     */
535361847f8eSopenharmony_ci     /**
535461847f8eSopenharmony_ci     * Gets the supported physical apertures.
535561847f8eSopenharmony_ci     * Move to ApertureQuery interface from Aperture since 12.
535661847f8eSopenharmony_ci     *
535761847f8eSopenharmony_ci     * @returns { Array<PhysicalAperture> } The array of supported physical apertures.
535861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
535961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
536061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
536161847f8eSopenharmony_ci     * @systemapi
536261847f8eSopenharmony_ci     * @since 12
536361847f8eSopenharmony_ci     */
536461847f8eSopenharmony_ci    getSupportedPhysicalApertures(): Array<PhysicalAperture>;
536561847f8eSopenharmony_ci  }
536661847f8eSopenharmony_ci
536761847f8eSopenharmony_ci  /**
536861847f8eSopenharmony_ci   * Aperture object.
536961847f8eSopenharmony_ci   *
537061847f8eSopenharmony_ci   * @interface Aperture
537161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
537261847f8eSopenharmony_ci   * @systemapi
537361847f8eSopenharmony_ci   * @since 11
537461847f8eSopenharmony_ci   */
537561847f8eSopenharmony_ci  interface Aperture extends ApertureQuery {
537661847f8eSopenharmony_ci    /**
537761847f8eSopenharmony_ci     * Gets current virtual aperture value.
537861847f8eSopenharmony_ci     *
537961847f8eSopenharmony_ci     * @returns { number } The current virtual aperture value.
538061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
538161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
538261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
538361847f8eSopenharmony_ci     * @systemapi
538461847f8eSopenharmony_ci     * @since 11
538561847f8eSopenharmony_ci     */
538661847f8eSopenharmony_ci    getVirtualAperture(): number;
538761847f8eSopenharmony_ci
538861847f8eSopenharmony_ci    /**
538961847f8eSopenharmony_ci     * Sets virtual aperture value.
539061847f8eSopenharmony_ci     *
539161847f8eSopenharmony_ci     * @param { number } aperture - virtual aperture value
539261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
539361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
539461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
539561847f8eSopenharmony_ci     * @systemapi
539661847f8eSopenharmony_ci     * @since 11
539761847f8eSopenharmony_ci     */
539861847f8eSopenharmony_ci    setVirtualAperture(aperture: number): void;
539961847f8eSopenharmony_ci
540061847f8eSopenharmony_ci    /**
540161847f8eSopenharmony_ci     * Gets current physical aperture value.
540261847f8eSopenharmony_ci     *
540361847f8eSopenharmony_ci     * @returns { number } The current physical aperture value.
540461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
540561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
540661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
540761847f8eSopenharmony_ci     * @systemapi
540861847f8eSopenharmony_ci     * @since 11
540961847f8eSopenharmony_ci     */
541061847f8eSopenharmony_ci    getPhysicalAperture(): number;
541161847f8eSopenharmony_ci
541261847f8eSopenharmony_ci    /**
541361847f8eSopenharmony_ci     * Sets physical aperture value.
541461847f8eSopenharmony_ci     *
541561847f8eSopenharmony_ci     * @param { number } aperture - physical aperture value
541661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
541761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
541861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
541961847f8eSopenharmony_ci     * @systemapi
542061847f8eSopenharmony_ci     * @since 11
542161847f8eSopenharmony_ci     */
542261847f8eSopenharmony_ci    setPhysicalAperture(aperture: number): void;
542361847f8eSopenharmony_ci  }
542461847f8eSopenharmony_ci
542561847f8eSopenharmony_ci  /**
542661847f8eSopenharmony_ci     * Portrait Photo session object.
542761847f8eSopenharmony_ci     *
542861847f8eSopenharmony_ci     * @interface PortraitPhotoSession
542961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
543061847f8eSopenharmony_ci     * @systemapi
543161847f8eSopenharmony_ci     * @since 11
543261847f8eSopenharmony_ci     */
543361847f8eSopenharmony_ci  interface PortraitPhotoSession extends Session, Flash, AutoExposure, Focus, Zoom, Beauty, ColorEffect, ColorManagement, Portrait, Aperture {
543461847f8eSopenharmony_ci    /**
543561847f8eSopenharmony_ci     * Subscribes to error events.
543661847f8eSopenharmony_ci     *
543761847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
543861847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
543961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
544061847f8eSopenharmony_ci     * @systemapi
544161847f8eSopenharmony_ci     * @since 11
544261847f8eSopenharmony_ci     */
544361847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
544461847f8eSopenharmony_ci
544561847f8eSopenharmony_ci    /**
544661847f8eSopenharmony_ci     * Unsubscribes from error events.
544761847f8eSopenharmony_ci     *
544861847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
544961847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
545061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
545161847f8eSopenharmony_ci     * @systemapi
545261847f8eSopenharmony_ci     * @since 11
545361847f8eSopenharmony_ci     */
545461847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
545561847f8eSopenharmony_ci
545661847f8eSopenharmony_ci    /**
545761847f8eSopenharmony_ci     * Subscribes focus state change event callback.
545861847f8eSopenharmony_ci     *
545961847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
546061847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
546161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
546261847f8eSopenharmony_ci     * @systemapi
546361847f8eSopenharmony_ci     * @since 11
546461847f8eSopenharmony_ci     */
546561847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
546661847f8eSopenharmony_ci
546761847f8eSopenharmony_ci    /**
546861847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
546961847f8eSopenharmony_ci     *
547061847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
547161847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
547261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
547361847f8eSopenharmony_ci     * @systemapi
547461847f8eSopenharmony_ci     * @since 11
547561847f8eSopenharmony_ci     */
547661847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
547761847f8eSopenharmony_ci
547861847f8eSopenharmony_ci    /**
547961847f8eSopenharmony_ci     * Subscribes zoom info event callback.
548061847f8eSopenharmony_ci     *
548161847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
548261847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
548361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
548461847f8eSopenharmony_ci     * @systemapi
548561847f8eSopenharmony_ci     * @since 11
548661847f8eSopenharmony_ci     */
548761847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
548861847f8eSopenharmony_ci
548961847f8eSopenharmony_ci    /**
549061847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
549161847f8eSopenharmony_ci     *
549261847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
549361847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
549461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
549561847f8eSopenharmony_ci     * @systemapi
549661847f8eSopenharmony_ci     * @since 11
549761847f8eSopenharmony_ci     */
549861847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
549961847f8eSopenharmony_ci
550061847f8eSopenharmony_ci    /**
550161847f8eSopenharmony_ci     * Subscribes to lcd flash status.
550261847f8eSopenharmony_ci     *
550361847f8eSopenharmony_ci     * @param { 'lcdFlashStatus' } type - Event type.
550461847f8eSopenharmony_ci     * @param { AsyncCallback<LcdFlashStatus> } callback - Callback used to get the lcd flash status.
550561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
550661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
550761847f8eSopenharmony_ci     * @systemapi
550861847f8eSopenharmony_ci     * @since 13
550961847f8eSopenharmony_ci     */
551061847f8eSopenharmony_ci    on(type: 'lcdFlashStatus', callback: AsyncCallback<LcdFlashStatus>): void;
551161847f8eSopenharmony_ci
551261847f8eSopenharmony_ci    /**
551361847f8eSopenharmony_ci     * Unsubscribes from lcd flash status.
551461847f8eSopenharmony_ci     *
551561847f8eSopenharmony_ci     * @param { 'lcdFlashStatus' } type - Event type.
551661847f8eSopenharmony_ci     * @param { AsyncCallback<LcdFlashStatus> } callback - Callback used to get the lcd flash status.
551761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
551861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
551961847f8eSopenharmony_ci     * @systemapi
552061847f8eSopenharmony_ci     * @since 13
552161847f8eSopenharmony_ci     */
552261847f8eSopenharmony_ci    off(type: 'lcdFlashStatus', callback?: AsyncCallback<LcdFlashStatus>): void;
552361847f8eSopenharmony_ci
552461847f8eSopenharmony_ci    /**
552561847f8eSopenharmony_ci     * Gets session functions.
552661847f8eSopenharmony_ci     *
552761847f8eSopenharmony_ci     * @param { CameraOutputCapability } outputCapability - CameraOutputCapability to set.
552861847f8eSopenharmony_ci     * @returns { Array<PortraitPhotoFunctions> } List of session functions.
552961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
553061847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
553161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
553261847f8eSopenharmony_ci     * @systemapi
553361847f8eSopenharmony_ci     * @since 13
553461847f8eSopenharmony_ci     */
553561847f8eSopenharmony_ci    getSessionFunctions(outputCapability: CameraOutputCapability): Array<PortraitPhotoFunctions>;
553661847f8eSopenharmony_ci
553761847f8eSopenharmony_ci    /**
553861847f8eSopenharmony_ci     * Gets session conflict functions.
553961847f8eSopenharmony_ci     *
554061847f8eSopenharmony_ci     * @returns { Array<PortraitPhotoConflictFunctions> } List of session conflict functions.
554161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
554261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
554361847f8eSopenharmony_ci     * @systemapi
554461847f8eSopenharmony_ci     * @since 12
554561847f8eSopenharmony_ci     */
554661847f8eSopenharmony_ci    getSessionConflictFunctions(): Array<PortraitPhotoConflictFunctions>;
554761847f8eSopenharmony_ci  }
554861847f8eSopenharmony_ci
554961847f8eSopenharmony_ci  /**
555061847f8eSopenharmony_ci     * Aperture video session object.
555161847f8eSopenharmony_ci     *
555261847f8eSopenharmony_ci     * @interface ApertureVideoSession
555361847f8eSopenharmony_ci     * @extends Session, Flash, AutoExposure, Focus, Zoom, ColorEffect, Aperture
555461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
555561847f8eSopenharmony_ci     * @systemapi
555661847f8eSopenharmony_ci     * @since 12
555761847f8eSopenharmony_ci     */
555861847f8eSopenharmony_ci  interface ApertureVideoSession extends Session, Flash, AutoExposure, Focus, Zoom, ColorEffect, Aperture {
555961847f8eSopenharmony_ci    /**
556061847f8eSopenharmony_ci     * Subscribes to error events.
556161847f8eSopenharmony_ci     *
556261847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
556361847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
556461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
556561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
556661847f8eSopenharmony_ci     * @systemapi
556761847f8eSopenharmony_ci     * @since 12
556861847f8eSopenharmony_ci     */
556961847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
557061847f8eSopenharmony_ci
557161847f8eSopenharmony_ci    /**
557261847f8eSopenharmony_ci     * Unsubscribes from error events.
557361847f8eSopenharmony_ci     *
557461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
557561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
557661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
557761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
557861847f8eSopenharmony_ci     * @systemapi
557961847f8eSopenharmony_ci     * @since 12
558061847f8eSopenharmony_ci     */
558161847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
558261847f8eSopenharmony_ci
558361847f8eSopenharmony_ci    /**
558461847f8eSopenharmony_ci     * Subscribes focus state change event callback.
558561847f8eSopenharmony_ci     *
558661847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
558761847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
558861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
558961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
559061847f8eSopenharmony_ci     * @systemapi
559161847f8eSopenharmony_ci     * @since 12
559261847f8eSopenharmony_ci     */
559361847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
559461847f8eSopenharmony_ci
559561847f8eSopenharmony_ci    /**
559661847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
559761847f8eSopenharmony_ci     *
559861847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
559961847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
560061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
560161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
560261847f8eSopenharmony_ci     * @systemapi
560361847f8eSopenharmony_ci     * @since 12
560461847f8eSopenharmony_ci     */
560561847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
560661847f8eSopenharmony_ci
560761847f8eSopenharmony_ci    /**
560861847f8eSopenharmony_ci     * Subscribes zoom info event callback.
560961847f8eSopenharmony_ci     *
561061847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
561161847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
561261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
561361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
561461847f8eSopenharmony_ci     * @systemapi
561561847f8eSopenharmony_ci     * @since 12
561661847f8eSopenharmony_ci     */
561761847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
561861847f8eSopenharmony_ci
561961847f8eSopenharmony_ci    /**
562061847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
562161847f8eSopenharmony_ci     *
562261847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
562361847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
562461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
562561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
562661847f8eSopenharmony_ci     * @systemapi
562761847f8eSopenharmony_ci     * @since 12
562861847f8eSopenharmony_ci     */
562961847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
563061847f8eSopenharmony_ci  }
563161847f8eSopenharmony_ci
563261847f8eSopenharmony_ci  /**
563361847f8eSopenharmony_ci   * ManualExposure Query object.
563461847f8eSopenharmony_ci   *
563561847f8eSopenharmony_ci   * @interface ManualExposureQuery
563661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
563761847f8eSopenharmony_ci   * @systemapi
563861847f8eSopenharmony_ci   * @since 12
563961847f8eSopenharmony_ci   */
564061847f8eSopenharmony_ci  interface ManualExposureQuery {
564161847f8eSopenharmony_ci    /**
564261847f8eSopenharmony_ci     * Gets the supported manual exposure range.
564361847f8eSopenharmony_ci     *
564461847f8eSopenharmony_ci     * @returns { Array<number> } The array of manual exposure range.
564561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
564661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
564761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
564861847f8eSopenharmony_ci     * @systemapi
564961847f8eSopenharmony_ci     * @since 11
565061847f8eSopenharmony_ci     */
565161847f8eSopenharmony_ci    /**
565261847f8eSopenharmony_ci     * Gets the supported manual exposure range.
565361847f8eSopenharmony_ci     * Move to ManualExposureQuery from ManualExposure since 12.
565461847f8eSopenharmony_ci     *
565561847f8eSopenharmony_ci     * @returns { Array<number> } The array of manual exposure range.
565661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
565761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
565861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
565961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
566061847f8eSopenharmony_ci     * @systemapi
566161847f8eSopenharmony_ci     * @since 12
566261847f8eSopenharmony_ci     */
566361847f8eSopenharmony_ci    getSupportedExposureRange(): Array<number>;
566461847f8eSopenharmony_ci  }
566561847f8eSopenharmony_ci
566661847f8eSopenharmony_ci  /**
566761847f8eSopenharmony_ci   * ManualExposure object.
566861847f8eSopenharmony_ci   *
566961847f8eSopenharmony_ci   * @interface ManualExposure
567061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
567161847f8eSopenharmony_ci   * @systemapi
567261847f8eSopenharmony_ci   * @since 11
567361847f8eSopenharmony_ci   */
567461847f8eSopenharmony_ci  interface ManualExposure extends ManualExposureQuery {
567561847f8eSopenharmony_ci    /**
567661847f8eSopenharmony_ci     * Gets current exposure value.
567761847f8eSopenharmony_ci     *
567861847f8eSopenharmony_ci     * @returns { number } The current exposure value.
567961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
568061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
568161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
568261847f8eSopenharmony_ci     * @systemapi
568361847f8eSopenharmony_ci     * @since 11
568461847f8eSopenharmony_ci     */
568561847f8eSopenharmony_ci    /**
568661847f8eSopenharmony_ci     * Gets current exposure value.
568761847f8eSopenharmony_ci     *
568861847f8eSopenharmony_ci     * @returns { number } The current exposure value.
568961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
569061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
569161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
569261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
569361847f8eSopenharmony_ci     * @systemapi
569461847f8eSopenharmony_ci     * @since 12
569561847f8eSopenharmony_ci     */
569661847f8eSopenharmony_ci    getExposure(): number;
569761847f8eSopenharmony_ci
569861847f8eSopenharmony_ci    /**
569961847f8eSopenharmony_ci     * Sets Exposure value.
570061847f8eSopenharmony_ci     *
570161847f8eSopenharmony_ci     * @param { number } exposure - Exposure value
570261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
570361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
570461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
570561847f8eSopenharmony_ci     * @systemapi
570661847f8eSopenharmony_ci     * @since 11
570761847f8eSopenharmony_ci     */
570861847f8eSopenharmony_ci    /**
570961847f8eSopenharmony_ci     * Sets Exposure value.
571061847f8eSopenharmony_ci     *
571161847f8eSopenharmony_ci     * @param { number } exposure - Exposure value
571261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
571361847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
571461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
571561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
571661847f8eSopenharmony_ci     * @systemapi
571761847f8eSopenharmony_ci     * @since 12
571861847f8eSopenharmony_ci     */
571961847f8eSopenharmony_ci    setExposure(exposure: number): void;
572061847f8eSopenharmony_ci  }
572161847f8eSopenharmony_ci
572261847f8eSopenharmony_ci  /**
572361847f8eSopenharmony_ci   * Night photo session object.
572461847f8eSopenharmony_ci   *
572561847f8eSopenharmony_ci   * @interface NightPhotoSession
572661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
572761847f8eSopenharmony_ci   * @systemapi
572861847f8eSopenharmony_ci   * @since 11
572961847f8eSopenharmony_ci   */
573061847f8eSopenharmony_ci  interface NightPhotoSession extends Session, Flash, AutoExposure, Focus, Zoom, ColorEffect, Beauty, ColorManagement, ManualExposure {
573161847f8eSopenharmony_ci    /**
573261847f8eSopenharmony_ci     * Subscribes to error events.
573361847f8eSopenharmony_ci     *
573461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
573561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
573661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
573761847f8eSopenharmony_ci     * @systemapi
573861847f8eSopenharmony_ci     * @since 11
573961847f8eSopenharmony_ci     */
574061847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
574161847f8eSopenharmony_ci
574261847f8eSopenharmony_ci    /**
574361847f8eSopenharmony_ci     * Unsubscribes from error events.
574461847f8eSopenharmony_ci     *
574561847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
574661847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
574761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
574861847f8eSopenharmony_ci     * @systemapi
574961847f8eSopenharmony_ci     * @since 11
575061847f8eSopenharmony_ci     */
575161847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
575261847f8eSopenharmony_ci
575361847f8eSopenharmony_ci    /**
575461847f8eSopenharmony_ci     * Subscribes focus state change event callback.
575561847f8eSopenharmony_ci     *
575661847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
575761847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
575861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
575961847f8eSopenharmony_ci     * @systemapi
576061847f8eSopenharmony_ci     * @since 11
576161847f8eSopenharmony_ci     */
576261847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
576361847f8eSopenharmony_ci
576461847f8eSopenharmony_ci    /**
576561847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
576661847f8eSopenharmony_ci     *
576761847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
576861847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
576961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
577061847f8eSopenharmony_ci     * @systemapi
577161847f8eSopenharmony_ci     * @since 11
577261847f8eSopenharmony_ci     */
577361847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
577461847f8eSopenharmony_ci
577561847f8eSopenharmony_ci    /**
577661847f8eSopenharmony_ci     * Subscribes zoom info event callback.
577761847f8eSopenharmony_ci     *
577861847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
577961847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
578061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
578161847f8eSopenharmony_ci     * @systemapi
578261847f8eSopenharmony_ci     * @since 11
578361847f8eSopenharmony_ci     */
578461847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
578561847f8eSopenharmony_ci
578661847f8eSopenharmony_ci    /**
578761847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
578861847f8eSopenharmony_ci     *
578961847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
579061847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
579161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
579261847f8eSopenharmony_ci     * @systemapi
579361847f8eSopenharmony_ci     * @since 11
579461847f8eSopenharmony_ci     */
579561847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
579661847f8eSopenharmony_ci
579761847f8eSopenharmony_ci    /**
579861847f8eSopenharmony_ci     * Subscribes to lcd flash status.
579961847f8eSopenharmony_ci     *
580061847f8eSopenharmony_ci     * @param { 'lcdFlashStatus' } type - Event type.
580161847f8eSopenharmony_ci     * @param { AsyncCallback<LcdFlashStatus> } callback - Callback used to get the lcd flash status.
580261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
580361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
580461847f8eSopenharmony_ci     * @systemapi
580561847f8eSopenharmony_ci     * @since 12
580661847f8eSopenharmony_ci     */
580761847f8eSopenharmony_ci    on(type: 'lcdFlashStatus', callback: AsyncCallback<LcdFlashStatus>): void;
580861847f8eSopenharmony_ci
580961847f8eSopenharmony_ci    /**
581061847f8eSopenharmony_ci     * Unsubscribes from lcd flash status.
581161847f8eSopenharmony_ci     *
581261847f8eSopenharmony_ci     * @param { 'lcdFlashStatus' } type - Event type.
581361847f8eSopenharmony_ci     * @param { AsyncCallback<LcdFlashStatus> } callback - Callback used to get the lcd flash status.
581461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
581561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
581661847f8eSopenharmony_ci     * @systemapi
581761847f8eSopenharmony_ci     * @since 12
581861847f8eSopenharmony_ci     */
581961847f8eSopenharmony_ci    off(type: 'lcdFlashStatus', callback?: AsyncCallback<LcdFlashStatus>): void;
582061847f8eSopenharmony_ci  }
582161847f8eSopenharmony_ci
582261847f8eSopenharmony_ci  /**
582361847f8eSopenharmony_ci   * ISO info object
582461847f8eSopenharmony_ci   *
582561847f8eSopenharmony_ci   * @typedef IsoInfo
582661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
582761847f8eSopenharmony_ci   * @systemapi
582861847f8eSopenharmony_ci   * @since 12
582961847f8eSopenharmony_ci   */
583061847f8eSopenharmony_ci  interface IsoInfo {
583161847f8eSopenharmony_ci    /**
583261847f8eSopenharmony_ci     * ISO value.
583361847f8eSopenharmony_ci     *
583461847f8eSopenharmony_ci     * @type { ?number }
583561847f8eSopenharmony_ci     * @readonly
583661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
583761847f8eSopenharmony_ci     * @systemapi
583861847f8eSopenharmony_ci     * @since 12
583961847f8eSopenharmony_ci     */
584061847f8eSopenharmony_ci    readonly iso?: number;
584161847f8eSopenharmony_ci  }
584261847f8eSopenharmony_ci
584361847f8eSopenharmony_ci  /**
584461847f8eSopenharmony_ci   * Exposure info object
584561847f8eSopenharmony_ci   *
584661847f8eSopenharmony_ci   * @typedef ExposureInfo
584761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
584861847f8eSopenharmony_ci   * @systemapi
584961847f8eSopenharmony_ci   * @since 12
585061847f8eSopenharmony_ci   */
585161847f8eSopenharmony_ci  interface ExposureInfo {
585261847f8eSopenharmony_ci    /**
585361847f8eSopenharmony_ci     * Exposure time value.
585461847f8eSopenharmony_ci     *
585561847f8eSopenharmony_ci     * @type { ?number }
585661847f8eSopenharmony_ci     * @readonly
585761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
585861847f8eSopenharmony_ci     * @systemapi
585961847f8eSopenharmony_ci     * @since 12
586061847f8eSopenharmony_ci     */
586161847f8eSopenharmony_ci    readonly exposureTime?: number;
586261847f8eSopenharmony_ci  }
586361847f8eSopenharmony_ci
586461847f8eSopenharmony_ci  /**
586561847f8eSopenharmony_ci   * Aperture info object
586661847f8eSopenharmony_ci   *
586761847f8eSopenharmony_ci   * @typedef ApertureInfo
586861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
586961847f8eSopenharmony_ci   * @systemapi
587061847f8eSopenharmony_ci   * @since 12
587161847f8eSopenharmony_ci   */
587261847f8eSopenharmony_ci  interface ApertureInfo {
587361847f8eSopenharmony_ci    /**
587461847f8eSopenharmony_ci     * Aperture value.
587561847f8eSopenharmony_ci     *
587661847f8eSopenharmony_ci     * @type { ?number }
587761847f8eSopenharmony_ci     * @readonly
587861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
587961847f8eSopenharmony_ci     * @systemapi
588061847f8eSopenharmony_ci     * @since 12
588161847f8eSopenharmony_ci     */
588261847f8eSopenharmony_ci    readonly aperture?: number;
588361847f8eSopenharmony_ci  }
588461847f8eSopenharmony_ci
588561847f8eSopenharmony_ci  /**
588661847f8eSopenharmony_ci   * Lumination info object
588761847f8eSopenharmony_ci   *
588861847f8eSopenharmony_ci   * @typedef LuminationInfo
588961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
589061847f8eSopenharmony_ci   * @systemapi
589161847f8eSopenharmony_ci   * @since 12
589261847f8eSopenharmony_ci   */
589361847f8eSopenharmony_ci  interface LuminationInfo {
589461847f8eSopenharmony_ci    /**
589561847f8eSopenharmony_ci     * Lumination value.
589661847f8eSopenharmony_ci     *
589761847f8eSopenharmony_ci     * @type { ?number }
589861847f8eSopenharmony_ci     * @readonly
589961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
590061847f8eSopenharmony_ci     * @systemapi
590161847f8eSopenharmony_ci     * @since 12
590261847f8eSopenharmony_ci     */
590361847f8eSopenharmony_ci    readonly lumination?: number;
590461847f8eSopenharmony_ci  }
590561847f8eSopenharmony_ci
590661847f8eSopenharmony_ci  /**
590761847f8eSopenharmony_ci   * Professional photo session object.
590861847f8eSopenharmony_ci   *
590961847f8eSopenharmony_ci   * @interface ProfessionalPhotoSession
591061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
591161847f8eSopenharmony_ci   * @systemapi
591261847f8eSopenharmony_ci   * @since 12
591361847f8eSopenharmony_ci   */
591461847f8eSopenharmony_ci  interface ProfessionalPhotoSession extends Session, AutoExposure, ManualExposure, Focus, ManualFocus, WhiteBalance, ManualIso, Flash, Zoom, ColorEffect, Aperture {
591561847f8eSopenharmony_ci    /**
591661847f8eSopenharmony_ci     * Subscribes to error events.
591761847f8eSopenharmony_ci     *
591861847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
591961847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
592061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
592161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
592261847f8eSopenharmony_ci     * @systemapi
592361847f8eSopenharmony_ci     * @since 12
592461847f8eSopenharmony_ci     */
592561847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
592661847f8eSopenharmony_ci
592761847f8eSopenharmony_ci    /**
592861847f8eSopenharmony_ci     * Unsubscribes from error events.
592961847f8eSopenharmony_ci     *
593061847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
593161847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
593261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
593361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
593461847f8eSopenharmony_ci     * @systemapi
593561847f8eSopenharmony_ci     * @since 12
593661847f8eSopenharmony_ci     */
593761847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
593861847f8eSopenharmony_ci
593961847f8eSopenharmony_ci    /**
594061847f8eSopenharmony_ci     * Subscribes focus state change event callback.
594161847f8eSopenharmony_ci     *
594261847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
594361847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
594461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
594561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
594661847f8eSopenharmony_ci     * @systemapi
594761847f8eSopenharmony_ci     * @since 12
594861847f8eSopenharmony_ci     */
594961847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
595061847f8eSopenharmony_ci
595161847f8eSopenharmony_ci    /**
595261847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
595361847f8eSopenharmony_ci     *
595461847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
595561847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
595661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
595761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
595861847f8eSopenharmony_ci     * @systemapi
595961847f8eSopenharmony_ci     * @since 12
596061847f8eSopenharmony_ci     */
596161847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
596261847f8eSopenharmony_ci
596361847f8eSopenharmony_ci    /**
596461847f8eSopenharmony_ci     * Subscribes zoom info event callback.
596561847f8eSopenharmony_ci     *
596661847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
596761847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
596861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
596961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
597061847f8eSopenharmony_ci     * @systemapi
597161847f8eSopenharmony_ci     * @since 12
597261847f8eSopenharmony_ci     */
597361847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
597461847f8eSopenharmony_ci
597561847f8eSopenharmony_ci    /**
597661847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
597761847f8eSopenharmony_ci     *
597861847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
597961847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
598061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
598161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
598261847f8eSopenharmony_ci     * @systemapi
598361847f8eSopenharmony_ci     * @since 12
598461847f8eSopenharmony_ci     */
598561847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
598661847f8eSopenharmony_ci
598761847f8eSopenharmony_ci    /**
598861847f8eSopenharmony_ci     * Subscribes ISO info event callback.
598961847f8eSopenharmony_ci     *
599061847f8eSopenharmony_ci     * @param { 'isoInfoChange' } type - Event type.
599161847f8eSopenharmony_ci     * @param { AsyncCallback<IsoInfo> } callback - Callback used to get the ISO info.
599261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
599361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
599461847f8eSopenharmony_ci     * @systemapi
599561847f8eSopenharmony_ci     * @since 12
599661847f8eSopenharmony_ci     */
599761847f8eSopenharmony_ci    on(type: 'isoInfoChange', callback: AsyncCallback<IsoInfo>): void;
599861847f8eSopenharmony_ci
599961847f8eSopenharmony_ci    /**
600061847f8eSopenharmony_ci     * Unsubscribes from ISO info event callback.
600161847f8eSopenharmony_ci     *
600261847f8eSopenharmony_ci     * @param { 'isoInfoChange' } type - Event type.
600361847f8eSopenharmony_ci     * @param { AsyncCallback<IsoInfo> } callback - Callback used to get the ISO info.
600461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
600561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
600661847f8eSopenharmony_ci     * @systemapi
600761847f8eSopenharmony_ci     * @since 12
600861847f8eSopenharmony_ci     */
600961847f8eSopenharmony_ci    off(type: 'isoInfoChange', callback?: AsyncCallback<IsoInfo>): void;
601061847f8eSopenharmony_ci
601161847f8eSopenharmony_ci    /**
601261847f8eSopenharmony_ci     * Subscribes exposure info event callback.
601361847f8eSopenharmony_ci     *
601461847f8eSopenharmony_ci     * @param { 'exposureInfoChange' } type - Event type.
601561847f8eSopenharmony_ci     * @param { AsyncCallback<ExposureInfo> } callback - Callback used to get the exposure info.
601661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
601761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
601861847f8eSopenharmony_ci     * @systemapi
601961847f8eSopenharmony_ci     * @since 12
602061847f8eSopenharmony_ci     */
602161847f8eSopenharmony_ci    on(type: 'exposureInfoChange', callback: AsyncCallback<ExposureInfo>): void;
602261847f8eSopenharmony_ci
602361847f8eSopenharmony_ci    /**
602461847f8eSopenharmony_ci     * Unsubscribes from exposure info event callback.
602561847f8eSopenharmony_ci     *
602661847f8eSopenharmony_ci     * @param { 'exposureInfoChange' } type - Event type.
602761847f8eSopenharmony_ci     * @param { AsyncCallback<ExposureInfo> } callback - Callback used to get the exposure info.
602861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
602961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
603061847f8eSopenharmony_ci     * @systemapi
603161847f8eSopenharmony_ci     * @since 12
603261847f8eSopenharmony_ci     */
603361847f8eSopenharmony_ci    off(type: 'exposureInfoChange', callback?: AsyncCallback<ExposureInfo>): void;
603461847f8eSopenharmony_ci
603561847f8eSopenharmony_ci    /**
603661847f8eSopenharmony_ci     * Subscribes aperture info event callback.
603761847f8eSopenharmony_ci     *
603861847f8eSopenharmony_ci     * @param { 'apertureInfoChange' } type - Event type.
603961847f8eSopenharmony_ci     * @param { AsyncCallback<ApertureInfo> } callback - Callback used to get the aperture info.
604061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
604161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
604261847f8eSopenharmony_ci     * @systemapi
604361847f8eSopenharmony_ci     * @since 12
604461847f8eSopenharmony_ci     */
604561847f8eSopenharmony_ci    on(type: 'apertureInfoChange', callback: AsyncCallback<ApertureInfo>): void;
604661847f8eSopenharmony_ci
604761847f8eSopenharmony_ci    /**
604861847f8eSopenharmony_ci     * Unsubscribes from aperture info event callback.
604961847f8eSopenharmony_ci     *
605061847f8eSopenharmony_ci     * @param { 'apertureInfoChange' } type - Event type.
605161847f8eSopenharmony_ci     * @param { AsyncCallback<ApertureInfo> } callback - Callback used to get the aperture info.
605261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
605361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
605461847f8eSopenharmony_ci     * @systemapi
605561847f8eSopenharmony_ci     * @since 12
605661847f8eSopenharmony_ci     */
605761847f8eSopenharmony_ci    off(type: 'apertureInfoChange', callback?: AsyncCallback<ApertureInfo>): void;
605861847f8eSopenharmony_ci
605961847f8eSopenharmony_ci    /**
606061847f8eSopenharmony_ci     * Subscribes lumination info event callback.
606161847f8eSopenharmony_ci     *
606261847f8eSopenharmony_ci     * @param { 'luminationInfoChange' } type - Event type.
606361847f8eSopenharmony_ci     * @param { AsyncCallback<LuminationInfo> } callback - Callback used to get the lumination info.
606461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
606561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
606661847f8eSopenharmony_ci     * @systemapi
606761847f8eSopenharmony_ci     * @since 12
606861847f8eSopenharmony_ci     */
606961847f8eSopenharmony_ci    on(type: 'luminationInfoChange', callback: AsyncCallback<LuminationInfo>): void;
607061847f8eSopenharmony_ci
607161847f8eSopenharmony_ci    /**
607261847f8eSopenharmony_ci     * Unsubscribes from lumination info event callback.
607361847f8eSopenharmony_ci     *
607461847f8eSopenharmony_ci     * @param { 'luminationInfoChange' } type - Event type.
607561847f8eSopenharmony_ci     * @param { AsyncCallback<LuminationInfo> } callback - Callback used to get the lumination info.
607661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
607761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
607861847f8eSopenharmony_ci     * @systemapi
607961847f8eSopenharmony_ci     * @since 12
608061847f8eSopenharmony_ci     */
608161847f8eSopenharmony_ci    off(type: 'luminationInfoChange', callback?: AsyncCallback<LuminationInfo>): void;
608261847f8eSopenharmony_ci  }
608361847f8eSopenharmony_ci
608461847f8eSopenharmony_ci  /**
608561847f8eSopenharmony_ci   * Professional video session object.
608661847f8eSopenharmony_ci   *
608761847f8eSopenharmony_ci   * @interface ProfessionalVideoSession
608861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
608961847f8eSopenharmony_ci   * @systemapi
609061847f8eSopenharmony_ci   * @since 12
609161847f8eSopenharmony_ci   */
609261847f8eSopenharmony_ci  interface ProfessionalVideoSession extends Session, AutoExposure, ManualExposure, Focus, ManualFocus, WhiteBalance, ManualIso, Flash, Zoom, ColorEffect, Aperture {
609361847f8eSopenharmony_ci    /**
609461847f8eSopenharmony_ci     * Subscribes to error events.
609561847f8eSopenharmony_ci     *
609661847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
609761847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
609861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
609961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
610061847f8eSopenharmony_ci     * @systemapi
610161847f8eSopenharmony_ci     * @since 12
610261847f8eSopenharmony_ci     */
610361847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
610461847f8eSopenharmony_ci
610561847f8eSopenharmony_ci    /**
610661847f8eSopenharmony_ci     * Unsubscribes from error events.
610761847f8eSopenharmony_ci     *
610861847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
610961847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
611061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
611161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
611261847f8eSopenharmony_ci     * @systemapi
611361847f8eSopenharmony_ci     * @since 12
611461847f8eSopenharmony_ci     */
611561847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
611661847f8eSopenharmony_ci
611761847f8eSopenharmony_ci    /**
611861847f8eSopenharmony_ci     * Subscribes focus state change event callback.
611961847f8eSopenharmony_ci     *
612061847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
612161847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
612261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
612361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
612461847f8eSopenharmony_ci     * @systemapi
612561847f8eSopenharmony_ci     * @since 12
612661847f8eSopenharmony_ci     */
612761847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
612861847f8eSopenharmony_ci
612961847f8eSopenharmony_ci    /**
613061847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
613161847f8eSopenharmony_ci     *
613261847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
613361847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
613461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
613561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
613661847f8eSopenharmony_ci     * @systemapi
613761847f8eSopenharmony_ci     * @since 12
613861847f8eSopenharmony_ci     */
613961847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
614061847f8eSopenharmony_ci
614161847f8eSopenharmony_ci    /**
614261847f8eSopenharmony_ci     * Subscribes zoom info event callback.
614361847f8eSopenharmony_ci     *
614461847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
614561847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
614661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
614761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
614861847f8eSopenharmony_ci     * @systemapi
614961847f8eSopenharmony_ci     * @since 12
615061847f8eSopenharmony_ci     */
615161847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
615261847f8eSopenharmony_ci
615361847f8eSopenharmony_ci    /**
615461847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
615561847f8eSopenharmony_ci     *
615661847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
615761847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
615861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
615961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
616061847f8eSopenharmony_ci     * @systemapi
616161847f8eSopenharmony_ci     * @since 12
616261847f8eSopenharmony_ci     */
616361847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
616461847f8eSopenharmony_ci
616561847f8eSopenharmony_ci    /**
616661847f8eSopenharmony_ci     * Subscribes ISO info event callback.
616761847f8eSopenharmony_ci     *
616861847f8eSopenharmony_ci     * @param { 'isoInfoChange' } type - Event type.
616961847f8eSopenharmony_ci     * @param { AsyncCallback<IsoInfo> } callback - Callback used to get the ISO info.
617061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
617161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
617261847f8eSopenharmony_ci     * @systemapi
617361847f8eSopenharmony_ci     * @since 12
617461847f8eSopenharmony_ci     */
617561847f8eSopenharmony_ci    on(type: 'isoInfoChange', callback: AsyncCallback<IsoInfo>): void;
617661847f8eSopenharmony_ci
617761847f8eSopenharmony_ci    /**
617861847f8eSopenharmony_ci     * Unsubscribes from ISO info event callback.
617961847f8eSopenharmony_ci     *
618061847f8eSopenharmony_ci     * @param { 'isoInfoChange' } type - Event type.
618161847f8eSopenharmony_ci     * @param { AsyncCallback<IsoInfo> } callback - Callback used to get the ISO info.
618261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
618361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
618461847f8eSopenharmony_ci     * @systemapi
618561847f8eSopenharmony_ci     * @since 12
618661847f8eSopenharmony_ci     */
618761847f8eSopenharmony_ci    off(type: 'isoInfoChange', callback?: AsyncCallback<IsoInfo>): void;
618861847f8eSopenharmony_ci
618961847f8eSopenharmony_ci    /**
619061847f8eSopenharmony_ci     * Subscribes exposure info event callback.
619161847f8eSopenharmony_ci     *
619261847f8eSopenharmony_ci     * @param { 'exposureInfoChange' } type - Event type.
619361847f8eSopenharmony_ci     * @param { AsyncCallback<ExposureInfo> } callback - Callback used to get the exposure info.
619461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
619561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
619661847f8eSopenharmony_ci     * @systemapi
619761847f8eSopenharmony_ci     * @since 12
619861847f8eSopenharmony_ci     */
619961847f8eSopenharmony_ci    on(type: 'exposureInfoChange', callback: AsyncCallback<ExposureInfo>): void;
620061847f8eSopenharmony_ci
620161847f8eSopenharmony_ci    /**
620261847f8eSopenharmony_ci     * Unsubscribes from exposure info event callback.
620361847f8eSopenharmony_ci     *
620461847f8eSopenharmony_ci     * @param { 'exposureInfoChange' } type - Event type.
620561847f8eSopenharmony_ci     * @param { AsyncCallback<ExposureInfo> } callback - Callback used to get the exposure info.
620661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
620761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
620861847f8eSopenharmony_ci     * @systemapi
620961847f8eSopenharmony_ci     * @since 12
621061847f8eSopenharmony_ci     */
621161847f8eSopenharmony_ci    off(type: 'exposureInfoChange', callback?: AsyncCallback<ExposureInfo>): void;
621261847f8eSopenharmony_ci
621361847f8eSopenharmony_ci    /**
621461847f8eSopenharmony_ci     * Subscribes aperture info event callback.
621561847f8eSopenharmony_ci     *
621661847f8eSopenharmony_ci     * @param { 'apertureInfoChange' } type - Event type.
621761847f8eSopenharmony_ci     * @param { AsyncCallback<ApertureInfo> } callback - Callback used to get the aperture info.
621861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
621961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
622061847f8eSopenharmony_ci     * @systemapi
622161847f8eSopenharmony_ci     * @since 12
622261847f8eSopenharmony_ci     */
622361847f8eSopenharmony_ci    on(type: 'apertureInfoChange', callback: AsyncCallback<ApertureInfo>): void;
622461847f8eSopenharmony_ci
622561847f8eSopenharmony_ci    /**
622661847f8eSopenharmony_ci     * Unsubscribes from aperture info event callback.
622761847f8eSopenharmony_ci     *
622861847f8eSopenharmony_ci     * @param { 'apertureInfoChange' } type - Event type.
622961847f8eSopenharmony_ci     * @param { AsyncCallback<ApertureInfo> } callback - Callback used to get the aperture info.
623061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
623161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
623261847f8eSopenharmony_ci     * @systemapi
623361847f8eSopenharmony_ci     * @since 12
623461847f8eSopenharmony_ci     */
623561847f8eSopenharmony_ci    off(type: 'apertureInfoChange', callback?: AsyncCallback<ApertureInfo>): void;
623661847f8eSopenharmony_ci
623761847f8eSopenharmony_ci    /**
623861847f8eSopenharmony_ci     * Subscribes lumination info event callback.
623961847f8eSopenharmony_ci     *
624061847f8eSopenharmony_ci     * @param { 'luminationInfoChange' } type - Event type.
624161847f8eSopenharmony_ci     * @param { AsyncCallback<LuminationInfo> } callback - Callback used to get the lumination info.
624261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
624361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
624461847f8eSopenharmony_ci     * @systemapi
624561847f8eSopenharmony_ci     * @since 12
624661847f8eSopenharmony_ci     */
624761847f8eSopenharmony_ci    on(type: 'luminationInfoChange', callback: AsyncCallback<LuminationInfo>): void;
624861847f8eSopenharmony_ci
624961847f8eSopenharmony_ci    /**
625061847f8eSopenharmony_ci     * Unsubscribes from lumination info event callback.
625161847f8eSopenharmony_ci     *
625261847f8eSopenharmony_ci     * @param { 'luminationInfoChange' } type - Event type.
625361847f8eSopenharmony_ci     * @param { AsyncCallback<LuminationInfo> } callback - Callback used to get the lumination info.
625461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
625561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
625661847f8eSopenharmony_ci     * @systemapi
625761847f8eSopenharmony_ci     * @since 12
625861847f8eSopenharmony_ci     */
625961847f8eSopenharmony_ci    off(type: 'luminationInfoChange', callback?: AsyncCallback<LuminationInfo>): void;
626061847f8eSopenharmony_ci  }
626161847f8eSopenharmony_ci
626261847f8eSopenharmony_ci  /**
626361847f8eSopenharmony_ci   * Enum for slow motion status.
626461847f8eSopenharmony_ci   *
626561847f8eSopenharmony_ci   * @enum { number }
626661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
626761847f8eSopenharmony_ci   * @systemapi
626861847f8eSopenharmony_ci   * @since 12
626961847f8eSopenharmony_ci   */
627061847f8eSopenharmony_ci  enum SlowMotionStatus {
627161847f8eSopenharmony_ci    /**
627261847f8eSopenharmony_ci     * Slow motion disabled.
627361847f8eSopenharmony_ci     *
627461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
627561847f8eSopenharmony_ci     * @systemapi
627661847f8eSopenharmony_ci     * @since 12
627761847f8eSopenharmony_ci     */
627861847f8eSopenharmony_ci    DISABLED = 0,
627961847f8eSopenharmony_ci
628061847f8eSopenharmony_ci    /**
628161847f8eSopenharmony_ci     * Slow motion ready.
628261847f8eSopenharmony_ci     *
628361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
628461847f8eSopenharmony_ci     * @systemapi
628561847f8eSopenharmony_ci     * @since 12
628661847f8eSopenharmony_ci     */
628761847f8eSopenharmony_ci    READY = 1,
628861847f8eSopenharmony_ci
628961847f8eSopenharmony_ci    /**
629061847f8eSopenharmony_ci     * Slow motion video start.
629161847f8eSopenharmony_ci     *
629261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
629361847f8eSopenharmony_ci     * @systemapi
629461847f8eSopenharmony_ci     * @since 12
629561847f8eSopenharmony_ci     */
629661847f8eSopenharmony_ci    VIDEO_START = 2,
629761847f8eSopenharmony_ci
629861847f8eSopenharmony_ci    /**
629961847f8eSopenharmony_ci     * Slow motion video done.
630061847f8eSopenharmony_ci     *
630161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
630261847f8eSopenharmony_ci     * @systemapi
630361847f8eSopenharmony_ci     * @since 12
630461847f8eSopenharmony_ci     */
630561847f8eSopenharmony_ci    VIDEO_DONE = 3,
630661847f8eSopenharmony_ci
630761847f8eSopenharmony_ci    /**
630861847f8eSopenharmony_ci     * Slow motion finished.
630961847f8eSopenharmony_ci     *
631061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
631161847f8eSopenharmony_ci     * @systemapi
631261847f8eSopenharmony_ci     * @since 12
631361847f8eSopenharmony_ci     */
631461847f8eSopenharmony_ci    FINISHED = 4
631561847f8eSopenharmony_ci  }
631661847f8eSopenharmony_ci
631761847f8eSopenharmony_ci  /**
631861847f8eSopenharmony_ci   * Slow motion video session object.
631961847f8eSopenharmony_ci   *
632061847f8eSopenharmony_ci   * @interface SlowMotionVideoSession
632161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
632261847f8eSopenharmony_ci   * @systemapi
632361847f8eSopenharmony_ci   * @since 12
632461847f8eSopenharmony_ci   */
632561847f8eSopenharmony_ci  interface SlowMotionVideoSession extends Session, Flash, AutoExposure, Focus, Zoom, ColorEffect {
632661847f8eSopenharmony_ci    /**
632761847f8eSopenharmony_ci     * Subscribes to error events.
632861847f8eSopenharmony_ci     *
632961847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
633061847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
633161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
633261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
633361847f8eSopenharmony_ci     * @systemapi
633461847f8eSopenharmony_ci     * @since 12
633561847f8eSopenharmony_ci     */
633661847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
633761847f8eSopenharmony_ci
633861847f8eSopenharmony_ci    /**
633961847f8eSopenharmony_ci     * Unsubscribes from error events.
634061847f8eSopenharmony_ci     *
634161847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
634261847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
634361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
634461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
634561847f8eSopenharmony_ci     * @systemapi
634661847f8eSopenharmony_ci     * @since 12
634761847f8eSopenharmony_ci     */
634861847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
634961847f8eSopenharmony_ci
635061847f8eSopenharmony_ci    /**
635161847f8eSopenharmony_ci     * Subscribes focus state change event callback.
635261847f8eSopenharmony_ci     *
635361847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
635461847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
635561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
635661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
635761847f8eSopenharmony_ci     * @systemapi
635861847f8eSopenharmony_ci     * @since 12
635961847f8eSopenharmony_ci     */
636061847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
636161847f8eSopenharmony_ci
636261847f8eSopenharmony_ci    /**
636361847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
636461847f8eSopenharmony_ci     *
636561847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
636661847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
636761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
636861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
636961847f8eSopenharmony_ci     * @systemapi
637061847f8eSopenharmony_ci     * @since 12
637161847f8eSopenharmony_ci     */
637261847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
637361847f8eSopenharmony_ci
637461847f8eSopenharmony_ci    /**
637561847f8eSopenharmony_ci     * Subscribes zoom info event callback.
637661847f8eSopenharmony_ci     *
637761847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
637861847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
637961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
638061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
638161847f8eSopenharmony_ci     * @systemapi
638261847f8eSopenharmony_ci     * @since 12
638361847f8eSopenharmony_ci     */
638461847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
638561847f8eSopenharmony_ci
638661847f8eSopenharmony_ci    /**
638761847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
638861847f8eSopenharmony_ci     *
638961847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
639061847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
639161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
639261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
639361847f8eSopenharmony_ci     * @systemapi
639461847f8eSopenharmony_ci     * @since 12
639561847f8eSopenharmony_ci     */
639661847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
639761847f8eSopenharmony_ci
639861847f8eSopenharmony_ci    /**
639961847f8eSopenharmony_ci     * Determine whether camera slow motion detection is supported.
640061847f8eSopenharmony_ci     *
640161847f8eSopenharmony_ci     * @returns { boolean } Is camera slow motion detection supported.
640261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
640361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
640461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
640561847f8eSopenharmony_ci     * @systemapi
640661847f8eSopenharmony_ci     * @since 12
640761847f8eSopenharmony_ci     */
640861847f8eSopenharmony_ci    isSlowMotionDetectionSupported(): boolean;
640961847f8eSopenharmony_ci
641061847f8eSopenharmony_ci    /**
641161847f8eSopenharmony_ci     * Set slow motion detection area.
641261847f8eSopenharmony_ci     *
641361847f8eSopenharmony_ci     * @param { Rect } area - Detection area.
641461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
641561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
641661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
641761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
641861847f8eSopenharmony_ci     * @systemapi
641961847f8eSopenharmony_ci     * @since 12
642061847f8eSopenharmony_ci     */
642161847f8eSopenharmony_ci    setSlowMotionDetectionArea(area: Rect): void;
642261847f8eSopenharmony_ci
642361847f8eSopenharmony_ci    /**
642461847f8eSopenharmony_ci     * Subscribes slow motion status callback.
642561847f8eSopenharmony_ci     *
642661847f8eSopenharmony_ci     * @param { 'slowMotionStatus' } type - Event type.
642761847f8eSopenharmony_ci     * @param { AsyncCallback<SlowMotionStatus> } callback - Callback used to get the slow motion status.
642861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
642961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
643061847f8eSopenharmony_ci     * @systemapi
643161847f8eSopenharmony_ci     * @since 12
643261847f8eSopenharmony_ci     */
643361847f8eSopenharmony_ci    on(type: 'slowMotionStatus', callback: AsyncCallback<SlowMotionStatus>): void;
643461847f8eSopenharmony_ci
643561847f8eSopenharmony_ci    /**
643661847f8eSopenharmony_ci     * Unsubscribes slow motion status callback.
643761847f8eSopenharmony_ci     *
643861847f8eSopenharmony_ci     * @param { 'slowMotionStatus' } type - Event type.
643961847f8eSopenharmony_ci     * @param { AsyncCallback<SlowMotionStatus> } callback - Callback used to get the slow motion status.
644061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
644161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
644261847f8eSopenharmony_ci     * @systemapi
644361847f8eSopenharmony_ci     * @since 12
644461847f8eSopenharmony_ci     */
644561847f8eSopenharmony_ci    off(type: 'slowMotionStatus', callback?: AsyncCallback<SlowMotionStatus>): void;
644661847f8eSopenharmony_ci  }
644761847f8eSopenharmony_ci
644861847f8eSopenharmony_ci  /**
644961847f8eSopenharmony_ci   * High resolution session object.
645061847f8eSopenharmony_ci   *
645161847f8eSopenharmony_ci   * @interface HighResolutionPhotoSession 
645261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
645361847f8eSopenharmony_ci   * @systemapi
645461847f8eSopenharmony_ci   * @since 12
645561847f8eSopenharmony_ci   */
645661847f8eSopenharmony_ci  interface HighResolutionPhotoSession extends Session, AutoExposure, Focus {
645761847f8eSopenharmony_ci    /**
645861847f8eSopenharmony_ci     * Subscribes to error events.
645961847f8eSopenharmony_ci     *
646061847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
646161847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
646261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
646361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
646461847f8eSopenharmony_ci     * @systemapi
646561847f8eSopenharmony_ci     * @since 12
646661847f8eSopenharmony_ci     */
646761847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
646861847f8eSopenharmony_ci
646961847f8eSopenharmony_ci    /**
647061847f8eSopenharmony_ci     * Unsubscribes from error events.
647161847f8eSopenharmony_ci     *
647261847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
647361847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
647461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
647561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
647661847f8eSopenharmony_ci     * @systemapi
647761847f8eSopenharmony_ci     * @since 12
647861847f8eSopenharmony_ci     */
647961847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
648061847f8eSopenharmony_ci
648161847f8eSopenharmony_ci    /**
648261847f8eSopenharmony_ci     * Subscribes focus state change event callback.
648361847f8eSopenharmony_ci     *
648461847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
648561847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
648661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
648761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
648861847f8eSopenharmony_ci     * @systemapi
648961847f8eSopenharmony_ci     * @since 12
649061847f8eSopenharmony_ci     */
649161847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
649261847f8eSopenharmony_ci
649361847f8eSopenharmony_ci    /**
649461847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
649561847f8eSopenharmony_ci     *
649661847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
649761847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
649861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
649961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
650061847f8eSopenharmony_ci     * @systemapi
650161847f8eSopenharmony_ci     * @since 12
650261847f8eSopenharmony_ci     */
650361847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
650461847f8eSopenharmony_ci  }
650561847f8eSopenharmony_ci
650661847f8eSopenharmony_ci  /**
650761847f8eSopenharmony_ci   * Macro photo session object.
650861847f8eSopenharmony_ci   *
650961847f8eSopenharmony_ci   * @interface MacroPhotoSession
651061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
651161847f8eSopenharmony_ci   * @systemapi
651261847f8eSopenharmony_ci   * @since 12
651361847f8eSopenharmony_ci   */
651461847f8eSopenharmony_ci  interface MacroPhotoSession extends Session, Flash, AutoExposure, Focus, Zoom, ColorEffect, ManualFocus {
651561847f8eSopenharmony_ci    /**
651661847f8eSopenharmony_ci     * Subscribes to error events.
651761847f8eSopenharmony_ci     *
651861847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
651961847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
652061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
652161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
652261847f8eSopenharmony_ci     * @systemapi
652361847f8eSopenharmony_ci     * @since 12
652461847f8eSopenharmony_ci     */
652561847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
652661847f8eSopenharmony_ci
652761847f8eSopenharmony_ci    /**
652861847f8eSopenharmony_ci     * Unsubscribes from error events.
652961847f8eSopenharmony_ci     *
653061847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
653161847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
653261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
653361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
653461847f8eSopenharmony_ci     * @systemapi
653561847f8eSopenharmony_ci     * @since 12
653661847f8eSopenharmony_ci     */
653761847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
653861847f8eSopenharmony_ci
653961847f8eSopenharmony_ci    /**
654061847f8eSopenharmony_ci     * Subscribes focus state change event callback.
654161847f8eSopenharmony_ci     *
654261847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
654361847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
654461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
654561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
654661847f8eSopenharmony_ci     * @systemapi
654761847f8eSopenharmony_ci     * @since 12
654861847f8eSopenharmony_ci     */
654961847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
655061847f8eSopenharmony_ci
655161847f8eSopenharmony_ci    /**
655261847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
655361847f8eSopenharmony_ci     *
655461847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
655561847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
655661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
655761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
655861847f8eSopenharmony_ci     * @systemapi
655961847f8eSopenharmony_ci     * @since 12
656061847f8eSopenharmony_ci     */
656161847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
656261847f8eSopenharmony_ci
656361847f8eSopenharmony_ci    /**
656461847f8eSopenharmony_ci     * Subscribes zoom info event callback.
656561847f8eSopenharmony_ci     *
656661847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
656761847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
656861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
656961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
657061847f8eSopenharmony_ci     * @systemapi
657161847f8eSopenharmony_ci     * @since 12
657261847f8eSopenharmony_ci     */
657361847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
657461847f8eSopenharmony_ci
657561847f8eSopenharmony_ci    /**
657661847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
657761847f8eSopenharmony_ci     *
657861847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
657961847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
658061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
658161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
658261847f8eSopenharmony_ci     * @systemapi
658361847f8eSopenharmony_ci     * @since 12
658461847f8eSopenharmony_ci     */
658561847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
658661847f8eSopenharmony_ci  }
658761847f8eSopenharmony_ci
658861847f8eSopenharmony_ci  /**
658961847f8eSopenharmony_ci   * Macro video session object.
659061847f8eSopenharmony_ci   *
659161847f8eSopenharmony_ci   * @interface MacroVideoSession
659261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
659361847f8eSopenharmony_ci   * @systemapi
659461847f8eSopenharmony_ci   * @since 12
659561847f8eSopenharmony_ci   */
659661847f8eSopenharmony_ci  interface MacroVideoSession extends Session, Flash, AutoExposure, Focus, Zoom, ColorEffect, ManualFocus {
659761847f8eSopenharmony_ci    /**
659861847f8eSopenharmony_ci     * Subscribes to error events.
659961847f8eSopenharmony_ci     *
660061847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
660161847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
660261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
660361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
660461847f8eSopenharmony_ci     * @systemapi
660561847f8eSopenharmony_ci     * @since 12
660661847f8eSopenharmony_ci     */
660761847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
660861847f8eSopenharmony_ci
660961847f8eSopenharmony_ci    /**
661061847f8eSopenharmony_ci     * Unsubscribes from error events.
661161847f8eSopenharmony_ci     *
661261847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
661361847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
661461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
661561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
661661847f8eSopenharmony_ci     * @systemapi
661761847f8eSopenharmony_ci     * @since 12
661861847f8eSopenharmony_ci     */
661961847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
662061847f8eSopenharmony_ci
662161847f8eSopenharmony_ci    /**
662261847f8eSopenharmony_ci     * Subscribes focus state change event callback.
662361847f8eSopenharmony_ci     *
662461847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
662561847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
662661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
662761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
662861847f8eSopenharmony_ci     * @systemapi
662961847f8eSopenharmony_ci     * @since 12
663061847f8eSopenharmony_ci     */
663161847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
663261847f8eSopenharmony_ci
663361847f8eSopenharmony_ci    /**
663461847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
663561847f8eSopenharmony_ci     *
663661847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
663761847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
663861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
663961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
664061847f8eSopenharmony_ci     * @systemapi
664161847f8eSopenharmony_ci     * @since 12
664261847f8eSopenharmony_ci     */
664361847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
664461847f8eSopenharmony_ci
664561847f8eSopenharmony_ci    /**
664661847f8eSopenharmony_ci     * Subscribes zoom info event callback.
664761847f8eSopenharmony_ci     *
664861847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
664961847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
665061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
665161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
665261847f8eSopenharmony_ci     * @systemapi
665361847f8eSopenharmony_ci     * @since 12
665461847f8eSopenharmony_ci     */
665561847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
665661847f8eSopenharmony_ci
665761847f8eSopenharmony_ci    /**
665861847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
665961847f8eSopenharmony_ci     *
666061847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
666161847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
666261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
666361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
666461847f8eSopenharmony_ci     * @systemapi
666561847f8eSopenharmony_ci     * @since 12
666661847f8eSopenharmony_ci     */
666761847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
666861847f8eSopenharmony_ci  }
666961847f8eSopenharmony_ci
667061847f8eSopenharmony_ci  /**
667161847f8eSopenharmony_ci   * Secure camera session object.
667261847f8eSopenharmony_ci   *
667361847f8eSopenharmony_ci   * @interface SecureSession
667461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
667561847f8eSopenharmony_ci   * @since 12
667661847f8eSopenharmony_ci   */
667761847f8eSopenharmony_ci  interface SecureSession extends Session, Flash, AutoExposure, Focus, Zoom {
667861847f8eSopenharmony_ci    /**
667961847f8eSopenharmony_ci     * Add Secure output for camera.
668061847f8eSopenharmony_ci     *
668161847f8eSopenharmony_ci     * @param { PreviewOutput } previewOutput - Specify the output as a secure flow.
668261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
668361847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
668461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
668561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
668661847f8eSopenharmony_ci     * @since 12
668761847f8eSopenharmony_ci     */
668861847f8eSopenharmony_ci    addSecureOutput(previewOutput: PreviewOutput): void;
668961847f8eSopenharmony_ci
669061847f8eSopenharmony_ci    /**
669161847f8eSopenharmony_ci     * Subscribes to error events.
669261847f8eSopenharmony_ci     *
669361847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
669461847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
669561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
669661847f8eSopenharmony_ci     * @since 12
669761847f8eSopenharmony_ci     */
669861847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
669961847f8eSopenharmony_ci
670061847f8eSopenharmony_ci    /**
670161847f8eSopenharmony_ci     * Unsubscribes from error events.
670261847f8eSopenharmony_ci     *
670361847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
670461847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
670561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
670661847f8eSopenharmony_ci     * @since 12
670761847f8eSopenharmony_ci     */
670861847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
670961847f8eSopenharmony_ci
671061847f8eSopenharmony_ci    /**
671161847f8eSopenharmony_ci     * Subscribes focus status change event callback.
671261847f8eSopenharmony_ci     *
671361847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
671461847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
671561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
671661847f8eSopenharmony_ci     * @since 12
671761847f8eSopenharmony_ci     */
671861847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
671961847f8eSopenharmony_ci
672061847f8eSopenharmony_ci    /**
672161847f8eSopenharmony_ci     * Unsubscribes from focus status change event callback.
672261847f8eSopenharmony_ci     *
672361847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
672461847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
672561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
672661847f8eSopenharmony_ci     * @since 12
672761847f8eSopenharmony_ci     */
672861847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
672961847f8eSopenharmony_ci  }
673061847f8eSopenharmony_ci
673161847f8eSopenharmony_ci  /**
673261847f8eSopenharmony_ci   * Light painting photo session object.
673361847f8eSopenharmony_ci   *
673461847f8eSopenharmony_ci   * @interface LightPaintingPhotoSession
673561847f8eSopenharmony_ci   * @extends Session, Flash, Focus, Zoom, ColorEffect
673661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
673761847f8eSopenharmony_ci   * @systemapi
673861847f8eSopenharmony_ci   * @since 12
673961847f8eSopenharmony_ci   */
674061847f8eSopenharmony_ci  interface LightPaintingPhotoSession extends Session, Flash, Focus, Zoom, ColorEffect {
674161847f8eSopenharmony_ci    /**
674261847f8eSopenharmony_ci     * Subscribes to error events.
674361847f8eSopenharmony_ci     *
674461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
674561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
674661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
674761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
674861847f8eSopenharmony_ci     * @systemapi
674961847f8eSopenharmony_ci     * @since 12
675061847f8eSopenharmony_ci     */
675161847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
675261847f8eSopenharmony_ci
675361847f8eSopenharmony_ci    /**
675461847f8eSopenharmony_ci     * Unsubscribes from error events.
675561847f8eSopenharmony_ci     *
675661847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
675761847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
675861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
675961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
676061847f8eSopenharmony_ci     * @systemapi
676161847f8eSopenharmony_ci     * @since 12
676261847f8eSopenharmony_ci     */
676361847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
676461847f8eSopenharmony_ci
676561847f8eSopenharmony_ci    /**
676661847f8eSopenharmony_ci     * Subscribes focus state change event callback.
676761847f8eSopenharmony_ci     *
676861847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
676961847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
677061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
677161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
677261847f8eSopenharmony_ci     * @systemapi
677361847f8eSopenharmony_ci     * @since 12
677461847f8eSopenharmony_ci     */
677561847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
677661847f8eSopenharmony_ci
677761847f8eSopenharmony_ci    /**
677861847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
677961847f8eSopenharmony_ci     *
678061847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
678161847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
678261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
678361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
678461847f8eSopenharmony_ci     * @systemapi
678561847f8eSopenharmony_ci     * @since 12
678661847f8eSopenharmony_ci     */
678761847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
678861847f8eSopenharmony_ci
678961847f8eSopenharmony_ci    /**
679061847f8eSopenharmony_ci     * Subscribes zoom info event callback.
679161847f8eSopenharmony_ci     *
679261847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
679361847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
679461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
679561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
679661847f8eSopenharmony_ci     * @systemapi
679761847f8eSopenharmony_ci     * @since 12
679861847f8eSopenharmony_ci     */
679961847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
680061847f8eSopenharmony_ci
680161847f8eSopenharmony_ci    /**
680261847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
680361847f8eSopenharmony_ci     *
680461847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
680561847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
680661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
680761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
680861847f8eSopenharmony_ci     * @systemapi
680961847f8eSopenharmony_ci     * @since 12
681061847f8eSopenharmony_ci     */
681161847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
681261847f8eSopenharmony_ci
681361847f8eSopenharmony_ci    /**
681461847f8eSopenharmony_ci     * Gets the light painting type in use.
681561847f8eSopenharmony_ci     *
681661847f8eSopenharmony_ci     * @returns { LightPaintingType } The light painting type in use.
681761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
681861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
681961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
682061847f8eSopenharmony_ci     * @systemapi
682161847f8eSopenharmony_ci     * @since 12
682261847f8eSopenharmony_ci     */
682361847f8eSopenharmony_ci    getLightPaintingType(): LightPaintingType;
682461847f8eSopenharmony_ci
682561847f8eSopenharmony_ci    /**
682661847f8eSopenharmony_ci     * Sets a light painting type for a camera device.
682761847f8eSopenharmony_ci     *
682861847f8eSopenharmony_ci     * @param { LightPaintingType } type - Light painting type to set.
682961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
683061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect. 
683161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
683261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
683361847f8eSopenharmony_ci     * @systemapi
683461847f8eSopenharmony_ci     * @since 12
683561847f8eSopenharmony_ci     */
683661847f8eSopenharmony_ci    setLightPaintingType(type: LightPaintingType): void;
683761847f8eSopenharmony_ci
683861847f8eSopenharmony_ci    /**
683961847f8eSopenharmony_ci     * Gets supported light painting types.
684061847f8eSopenharmony_ci     *
684161847f8eSopenharmony_ci     * @returns { Array<LightPaintingType> } List of light painting types.
684261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
684361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
684461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
684561847f8eSopenharmony_ci     * @systemapi
684661847f8eSopenharmony_ci     * @since 12
684761847f8eSopenharmony_ci     */
684861847f8eSopenharmony_ci    getSupportedLightPaintingTypes(): Array<LightPaintingType>;
684961847f8eSopenharmony_ci  }
685061847f8eSopenharmony_ci
685161847f8eSopenharmony_ci  /**
685261847f8eSopenharmony_ci   * Quick shot photo session object.
685361847f8eSopenharmony_ci   *
685461847f8eSopenharmony_ci   * @interface QuickShotPhotoSession
685561847f8eSopenharmony_ci   * @extends Session, AutoExposure, ColorEffect, ColorManagement, EffectSuggestion, Flash, Focus, Zoom
685661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
685761847f8eSopenharmony_ci   * @systemapi
685861847f8eSopenharmony_ci   * @since 12
685961847f8eSopenharmony_ci   */
686061847f8eSopenharmony_ci  interface QuickShotPhotoSession extends Session, AutoExposure, ColorEffect, ColorManagement, EffectSuggestion, Flash, Focus, Zoom {
686161847f8eSopenharmony_ci    /**
686261847f8eSopenharmony_ci     * Subscribes to error events.
686361847f8eSopenharmony_ci     *
686461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
686561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
686661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
686761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
686861847f8eSopenharmony_ci     * @systemapi
686961847f8eSopenharmony_ci     * @since 12
687061847f8eSopenharmony_ci     */
687161847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
687261847f8eSopenharmony_ci
687361847f8eSopenharmony_ci    /**
687461847f8eSopenharmony_ci     * Unsubscribes from error events.
687561847f8eSopenharmony_ci     *
687661847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
687761847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
687861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
687961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
688061847f8eSopenharmony_ci     * @systemapi
688161847f8eSopenharmony_ci     * @since 12
688261847f8eSopenharmony_ci     */
688361847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
688461847f8eSopenharmony_ci
688561847f8eSopenharmony_ci    /**
688661847f8eSopenharmony_ci     * Subscribes to effect suggestion event callback.
688761847f8eSopenharmony_ci     *
688861847f8eSopenharmony_ci     * @param { 'effectSuggestionChange' } type - Event type.
688961847f8eSopenharmony_ci     * @param { AsyncCallback<EffectSuggestionType> } callback - Callback used to return the result.
689061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
689161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
689261847f8eSopenharmony_ci     * @systemapi
689361847f8eSopenharmony_ci     * @since 12
689461847f8eSopenharmony_ci     */
689561847f8eSopenharmony_ci    on(type: 'effectSuggestionChange', callback: AsyncCallback<EffectSuggestionType>): void;
689661847f8eSopenharmony_ci
689761847f8eSopenharmony_ci    /**
689861847f8eSopenharmony_ci     * Unsubscribes from effect suggestion event callback.
689961847f8eSopenharmony_ci     *
690061847f8eSopenharmony_ci     * @param { 'effectSuggestionChange' } type - Event type.
690161847f8eSopenharmony_ci     * @param { AsyncCallback<EffectSuggestionType> } callback - Callback used to return the result.
690261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
690361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
690461847f8eSopenharmony_ci     * @systemapi
690561847f8eSopenharmony_ci     * @since 12
690661847f8eSopenharmony_ci     */
690761847f8eSopenharmony_ci    off(type: 'effectSuggestionChange', callback?: AsyncCallback<EffectSuggestionType>): void;
690861847f8eSopenharmony_ci
690961847f8eSopenharmony_ci    /**
691061847f8eSopenharmony_ci     * Subscribes focus state change event callback.
691161847f8eSopenharmony_ci     *
691261847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
691361847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
691461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
691561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
691661847f8eSopenharmony_ci     * @systemapi
691761847f8eSopenharmony_ci     * @since 12
691861847f8eSopenharmony_ci     */
691961847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
692061847f8eSopenharmony_ci
692161847f8eSopenharmony_ci    /**
692261847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
692361847f8eSopenharmony_ci     *
692461847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
692561847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
692661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
692761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
692861847f8eSopenharmony_ci     * @systemapi
692961847f8eSopenharmony_ci     * @since 12
693061847f8eSopenharmony_ci     */
693161847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
693261847f8eSopenharmony_ci
693361847f8eSopenharmony_ci    /**
693461847f8eSopenharmony_ci     * Subscribes zoom info event callback.
693561847f8eSopenharmony_ci     *
693661847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
693761847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
693861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
693961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
694061847f8eSopenharmony_ci     * @systemapi
694161847f8eSopenharmony_ci     * @since 12
694261847f8eSopenharmony_ci     */
694361847f8eSopenharmony_ci    on(type: 'smoothZoomInfoAvailable', callback: AsyncCallback<SmoothZoomInfo>): void;
694461847f8eSopenharmony_ci
694561847f8eSopenharmony_ci    /**
694661847f8eSopenharmony_ci     * Unsubscribes from zoom info event callback.
694761847f8eSopenharmony_ci     *
694861847f8eSopenharmony_ci     * @param { 'smoothZoomInfoAvailable' } type - Event type.
694961847f8eSopenharmony_ci     * @param { AsyncCallback<SmoothZoomInfo> } callback - Callback used to get the zoom info.
695061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
695161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
695261847f8eSopenharmony_ci     * @systemapi
695361847f8eSopenharmony_ci     * @since 12
695461847f8eSopenharmony_ci     */
695561847f8eSopenharmony_ci    off(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback<SmoothZoomInfo>): void;
695661847f8eSopenharmony_ci  }
695761847f8eSopenharmony_ci
695861847f8eSopenharmony_ci  /**
695961847f8eSopenharmony_ci   * Panorama photo session object.
696061847f8eSopenharmony_ci   *
696161847f8eSopenharmony_ci   * @interface PanoramaPhotoSession
696261847f8eSopenharmony_ci   * @extends Session, Focus, AutoExposure, WhiteBalance, ColorEffect
696361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
696461847f8eSopenharmony_ci   * @systemapi
696561847f8eSopenharmony_ci   * @since 12
696661847f8eSopenharmony_ci   */
696761847f8eSopenharmony_ci  interface PanoramaPhotoSession extends Session, Focus, AutoExposure, WhiteBalance, ColorEffect {
696861847f8eSopenharmony_ci    /**
696961847f8eSopenharmony_ci     * Subscribes to error events.
697061847f8eSopenharmony_ci     *
697161847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
697261847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
697361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
697461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
697561847f8eSopenharmony_ci     * @systemapi
697661847f8eSopenharmony_ci     * @since 12
697761847f8eSopenharmony_ci     */
697861847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
697961847f8eSopenharmony_ci
698061847f8eSopenharmony_ci    /**
698161847f8eSopenharmony_ci     * Unsubscribes from error events.
698261847f8eSopenharmony_ci     *
698361847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
698461847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
698561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
698661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
698761847f8eSopenharmony_ci     * @systemapi
698861847f8eSopenharmony_ci     * @since 12
698961847f8eSopenharmony_ci     */
699061847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
699161847f8eSopenharmony_ci
699261847f8eSopenharmony_ci    /**
699361847f8eSopenharmony_ci     * Subscribes focus state change event callback.
699461847f8eSopenharmony_ci     *
699561847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
699661847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
699761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
699861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
699961847f8eSopenharmony_ci     * @systemapi
700061847f8eSopenharmony_ci     * @since 12
700161847f8eSopenharmony_ci     */
700261847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
700361847f8eSopenharmony_ci
700461847f8eSopenharmony_ci    /**
700561847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
700661847f8eSopenharmony_ci     *
700761847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
700861847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
700961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
701061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
701161847f8eSopenharmony_ci     * @systemapi
701261847f8eSopenharmony_ci     * @since 12
701361847f8eSopenharmony_ci     */
701461847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
701561847f8eSopenharmony_ci  }
701661847f8eSopenharmony_ci
701761847f8eSopenharmony_ci  /**
701861847f8eSopenharmony_ci   * Fluorescence photo session object.
701961847f8eSopenharmony_ci   *
702061847f8eSopenharmony_ci   * @interface FluorescencePhotoSession
702161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
702261847f8eSopenharmony_ci   * @systemapi
702361847f8eSopenharmony_ci   * @since 12
702461847f8eSopenharmony_ci   */
702561847f8eSopenharmony_ci  interface FluorescencePhotoSession extends Session, AutoExposure, Focus, Zoom {
702661847f8eSopenharmony_ci    /**
702761847f8eSopenharmony_ci     * Subscribes to error events.
702861847f8eSopenharmony_ci     *
702961847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
703061847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
703161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
703261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
703361847f8eSopenharmony_ci     * @systemapi
703461847f8eSopenharmony_ci     * @since 12
703561847f8eSopenharmony_ci     */
703661847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
703761847f8eSopenharmony_ci
703861847f8eSopenharmony_ci    /**
703961847f8eSopenharmony_ci     * Unsubscribes from error events.
704061847f8eSopenharmony_ci     *
704161847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
704261847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
704361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
704461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
704561847f8eSopenharmony_ci     * @systemapi
704661847f8eSopenharmony_ci     * @since 12
704761847f8eSopenharmony_ci     */
704861847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
704961847f8eSopenharmony_ci
705061847f8eSopenharmony_ci    /**
705161847f8eSopenharmony_ci     * Subscribes focus state change event callback.
705261847f8eSopenharmony_ci     *
705361847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
705461847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
705561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
705661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
705761847f8eSopenharmony_ci     * @systemapi
705861847f8eSopenharmony_ci     * @since 12
705961847f8eSopenharmony_ci     */
706061847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
706161847f8eSopenharmony_ci
706261847f8eSopenharmony_ci    /**
706361847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
706461847f8eSopenharmony_ci     *
706561847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
706661847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
706761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
706861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
706961847f8eSopenharmony_ci     * @systemapi
707061847f8eSopenharmony_ci     * @since 12
707161847f8eSopenharmony_ci     */
707261847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
707361847f8eSopenharmony_ci  }
707461847f8eSopenharmony_ci
707561847f8eSopenharmony_ci  /**
707661847f8eSopenharmony_ci   * Photo Functions object.
707761847f8eSopenharmony_ci   *
707861847f8eSopenharmony_ci   * @interface PhotoFunctions
707961847f8eSopenharmony_ci   * @extends FlashQuery, AutoExposureQuery, ManualExposureQuery, FocusQuery, ZoomQuery, BeautyQuery, ColorEffectQuery, ColorManagementQuery, MacroQuery, SceneDetectionQuery
708061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
708161847f8eSopenharmony_ci   * @systemapi
708261847f8eSopenharmony_ci   * @since 12
708361847f8eSopenharmony_ci   */
708461847f8eSopenharmony_ci  interface PhotoFunctions extends FlashQuery, AutoExposureQuery, ManualExposureQuery, FocusQuery, ZoomQuery, BeautyQuery, ColorEffectQuery, ColorManagementQuery, MacroQuery, SceneDetectionQuery {
708561847f8eSopenharmony_ci  }
708661847f8eSopenharmony_ci
708761847f8eSopenharmony_ci  /**
708861847f8eSopenharmony_ci   * Video Functions object.
708961847f8eSopenharmony_ci   *
709061847f8eSopenharmony_ci   * @interface VideoFunctions
709161847f8eSopenharmony_ci   * @extends FlashQuery, AutoExposureQuery, ManualExposureQuery, FocusQuery, ZoomQuery, StabilizationQuery, BeautyQuery, ColorEffectQuery, ColorManagementQuery, MacroQuery, SceneDetectionQuery
709261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
709361847f8eSopenharmony_ci   * @systemapi
709461847f8eSopenharmony_ci   * @since 12
709561847f8eSopenharmony_ci   */
709661847f8eSopenharmony_ci  interface VideoFunctions extends FlashQuery, AutoExposureQuery, ManualExposureQuery, FocusQuery, ZoomQuery, StabilizationQuery, BeautyQuery, ColorEffectQuery, ColorManagementQuery, MacroQuery, SceneDetectionQuery {
709761847f8eSopenharmony_ci  }
709861847f8eSopenharmony_ci
709961847f8eSopenharmony_ci  /**
710061847f8eSopenharmony_ci   * Portrait Photo Functions object.
710161847f8eSopenharmony_ci   *
710261847f8eSopenharmony_ci   * @interface PortraitPhotoFunctions
710361847f8eSopenharmony_ci   * @extends FlashQuery, AutoExposureQuery, FocusQuery, ZoomQuery, BeautyQuery, ColorEffectQuery, ColorManagementQuery, PortraitQuery, ApertureQuery, SceneDetectionQuery
710461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
710561847f8eSopenharmony_ci   * @systemapi
710661847f8eSopenharmony_ci   * @since 12
710761847f8eSopenharmony_ci   */
710861847f8eSopenharmony_ci  interface PortraitPhotoFunctions extends FlashQuery, AutoExposureQuery, FocusQuery, ZoomQuery, BeautyQuery, ColorEffectQuery, ColorManagementQuery, PortraitQuery, ApertureQuery, SceneDetectionQuery {
710961847f8eSopenharmony_ci  }
711061847f8eSopenharmony_ci
711161847f8eSopenharmony_ci  /**
711261847f8eSopenharmony_ci   * Photo Conflict Functions object.
711361847f8eSopenharmony_ci   *
711461847f8eSopenharmony_ci   * @interface PhotoConflictFunctions
711561847f8eSopenharmony_ci   * @extends ZoomQuery, MacroQuery
711661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
711761847f8eSopenharmony_ci   * @systemapi
711861847f8eSopenharmony_ci   * @since 12
711961847f8eSopenharmony_ci   */
712061847f8eSopenharmony_ci  interface PhotoConflictFunctions extends ZoomQuery, MacroQuery {
712161847f8eSopenharmony_ci  }
712261847f8eSopenharmony_ci
712361847f8eSopenharmony_ci  /**
712461847f8eSopenharmony_ci   * Video Conflict Functions object.
712561847f8eSopenharmony_ci   *
712661847f8eSopenharmony_ci   * @interface VideoConflictFunctions
712761847f8eSopenharmony_ci   * @extends ZoomQuery, MacroQuery
712861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
712961847f8eSopenharmony_ci   * @systemapi
713061847f8eSopenharmony_ci   * @since 12
713161847f8eSopenharmony_ci   */
713261847f8eSopenharmony_ci  interface VideoConflictFunctions extends ZoomQuery, MacroQuery {
713361847f8eSopenharmony_ci  }
713461847f8eSopenharmony_ci
713561847f8eSopenharmony_ci  /**
713661847f8eSopenharmony_ci   * Portrait Photo Conflict Functions object.
713761847f8eSopenharmony_ci   *
713861847f8eSopenharmony_ci   * @interface PortraitPhotoFunctions
713961847f8eSopenharmony_ci   * @extends ZoomQuery, PortraitQuery, ApertureQuery
714061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
714161847f8eSopenharmony_ci   * @systemapi
714261847f8eSopenharmony_ci   * @since 12
714361847f8eSopenharmony_ci   */
714461847f8eSopenharmony_ci  interface PortraitPhotoConflictFunctions extends ZoomQuery, PortraitQuery, ApertureQuery {
714561847f8eSopenharmony_ci  }
714661847f8eSopenharmony_ci
714761847f8eSopenharmony_ci  /**
714861847f8eSopenharmony_ci   * Camera output object.
714961847f8eSopenharmony_ci   *
715061847f8eSopenharmony_ci   * @interface CameraOutput
715161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
715261847f8eSopenharmony_ci   * @since 10
715361847f8eSopenharmony_ci   */
715461847f8eSopenharmony_ci  interface CameraOutput {
715561847f8eSopenharmony_ci    /**
715661847f8eSopenharmony_ci     * Release output instance.
715761847f8eSopenharmony_ci     *
715861847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
715961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
716061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
716161847f8eSopenharmony_ci     * @since 10
716261847f8eSopenharmony_ci     */
716361847f8eSopenharmony_ci    release(callback: AsyncCallback<void>): void;
716461847f8eSopenharmony_ci
716561847f8eSopenharmony_ci    /**
716661847f8eSopenharmony_ci     * Release output instance.
716761847f8eSopenharmony_ci     *
716861847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
716961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
717061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
717161847f8eSopenharmony_ci     * @since 10
717261847f8eSopenharmony_ci     */
717361847f8eSopenharmony_ci    release(): Promise<void>;
717461847f8eSopenharmony_ci  }
717561847f8eSopenharmony_ci
717661847f8eSopenharmony_ci  /**
717761847f8eSopenharmony_ci   * SketchStatusData object
717861847f8eSopenharmony_ci   *
717961847f8eSopenharmony_ci   * @typedef SketchStatusData
718061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
718161847f8eSopenharmony_ci   * @systemapi
718261847f8eSopenharmony_ci   * @since 11
718361847f8eSopenharmony_ci   */
718461847f8eSopenharmony_ci  interface SketchStatusData {
718561847f8eSopenharmony_ci    /**
718661847f8eSopenharmony_ci     * Status of the sketch stream.
718761847f8eSopenharmony_ci     * 0 is stop, and 1 is start.
718861847f8eSopenharmony_ci     *
718961847f8eSopenharmony_ci     * @type { number }
719061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
719161847f8eSopenharmony_ci     * @systemapi
719261847f8eSopenharmony_ci     * @since 11
719361847f8eSopenharmony_ci     */
719461847f8eSopenharmony_ci    status: number;
719561847f8eSopenharmony_ci
719661847f8eSopenharmony_ci    /**
719761847f8eSopenharmony_ci     * The zoom ratio of the sketch stream.
719861847f8eSopenharmony_ci     *
719961847f8eSopenharmony_ci     * @type { number }
720061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
720161847f8eSopenharmony_ci     * @systemapi
720261847f8eSopenharmony_ci     * @since 11
720361847f8eSopenharmony_ci     */
720461847f8eSopenharmony_ci    sketchRatio: number;
720561847f8eSopenharmony_ci  }
720661847f8eSopenharmony_ci
720761847f8eSopenharmony_ci  /**
720861847f8eSopenharmony_ci   * Preview output object.
720961847f8eSopenharmony_ci   *
721061847f8eSopenharmony_ci   * @interface PreviewOutput
721161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
721261847f8eSopenharmony_ci   * @since 10
721361847f8eSopenharmony_ci   */
721461847f8eSopenharmony_ci  interface PreviewOutput extends CameraOutput {
721561847f8eSopenharmony_ci    /**
721661847f8eSopenharmony_ci     * Start output instance.
721761847f8eSopenharmony_ci     *
721861847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
721961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
722061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
722161847f8eSopenharmony_ci     * @since 10
722261847f8eSopenharmony_ci     * @deprecated since 11
722361847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#start
722461847f8eSopenharmony_ci     */
722561847f8eSopenharmony_ci    start(callback: AsyncCallback<void>): void;
722661847f8eSopenharmony_ci
722761847f8eSopenharmony_ci    /**
722861847f8eSopenharmony_ci     * Start output instance.
722961847f8eSopenharmony_ci     *
723061847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
723161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
723261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
723361847f8eSopenharmony_ci     * @since 10
723461847f8eSopenharmony_ci     * @deprecated since 11
723561847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#start
723661847f8eSopenharmony_ci     */
723761847f8eSopenharmony_ci    start(): Promise<void>;
723861847f8eSopenharmony_ci
723961847f8eSopenharmony_ci    /**
724061847f8eSopenharmony_ci     * Stop output instance.
724161847f8eSopenharmony_ci     *
724261847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
724361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
724461847f8eSopenharmony_ci     * @since 10
724561847f8eSopenharmony_ci     * @deprecated since 11
724661847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#stop
724761847f8eSopenharmony_ci     */
724861847f8eSopenharmony_ci    stop(callback: AsyncCallback<void>): void;
724961847f8eSopenharmony_ci
725061847f8eSopenharmony_ci    /**
725161847f8eSopenharmony_ci     * Stop output instance.
725261847f8eSopenharmony_ci     *
725361847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
725461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
725561847f8eSopenharmony_ci     * @since 10
725661847f8eSopenharmony_ci     * @deprecated since 11
725761847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.Session#stop
725861847f8eSopenharmony_ci     */
725961847f8eSopenharmony_ci    stop(): Promise<void>;
726061847f8eSopenharmony_ci
726161847f8eSopenharmony_ci    /**
726261847f8eSopenharmony_ci     * Subscribes frame start event callback.
726361847f8eSopenharmony_ci     *
726461847f8eSopenharmony_ci     * @param { 'frameStart' } type - Event type.
726561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
726661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
726761847f8eSopenharmony_ci     * @since 10
726861847f8eSopenharmony_ci     */
726961847f8eSopenharmony_ci    on(type: 'frameStart', callback: AsyncCallback<void>): void;
727061847f8eSopenharmony_ci
727161847f8eSopenharmony_ci    /**
727261847f8eSopenharmony_ci     * Unsubscribes from frame start event callback.
727361847f8eSopenharmony_ci     *
727461847f8eSopenharmony_ci     * @param { 'frameStart' } type - Event type.
727561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
727661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
727761847f8eSopenharmony_ci     * @since 10
727861847f8eSopenharmony_ci     */
727961847f8eSopenharmony_ci    off(type: 'frameStart', callback?: AsyncCallback<void>): void;
728061847f8eSopenharmony_ci
728161847f8eSopenharmony_ci    /**
728261847f8eSopenharmony_ci     * Subscribes frame end event callback.
728361847f8eSopenharmony_ci     *
728461847f8eSopenharmony_ci     * @param { 'frameEnd' } type - Event type.
728561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
728661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
728761847f8eSopenharmony_ci     * @since 10
728861847f8eSopenharmony_ci     */
728961847f8eSopenharmony_ci    on(type: 'frameEnd', callback: AsyncCallback<void>): void;
729061847f8eSopenharmony_ci
729161847f8eSopenharmony_ci    /**
729261847f8eSopenharmony_ci     * Unsubscribes from frame end event callback.
729361847f8eSopenharmony_ci     *
729461847f8eSopenharmony_ci     * @param { 'frameEnd' } type - Event type.
729561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
729661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
729761847f8eSopenharmony_ci     * @since 10
729861847f8eSopenharmony_ci     */
729961847f8eSopenharmony_ci    off(type: 'frameEnd', callback?: AsyncCallback<void>): void;
730061847f8eSopenharmony_ci
730161847f8eSopenharmony_ci    /**
730261847f8eSopenharmony_ci     * Subscribes to error events.
730361847f8eSopenharmony_ci     *
730461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
730561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the preview output errors.
730661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
730761847f8eSopenharmony_ci     * @since 10
730861847f8eSopenharmony_ci     */
730961847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
731061847f8eSopenharmony_ci
731161847f8eSopenharmony_ci    /**
731261847f8eSopenharmony_ci     * Unsubscribes from error events.
731361847f8eSopenharmony_ci     *
731461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
731561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the preview output errors.
731661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
731761847f8eSopenharmony_ci     * @since 10
731861847f8eSopenharmony_ci     */
731961847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
732061847f8eSopenharmony_ci
732161847f8eSopenharmony_ci    /**
732261847f8eSopenharmony_ci     * Get supported frame rates which can be set during session running.
732361847f8eSopenharmony_ci     *
732461847f8eSopenharmony_ci     * @returns { Array<FrameRateRange> } The array of supported frame rate range.
732561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
732661847f8eSopenharmony_ci     * @since 12
732761847f8eSopenharmony_ci     */
732861847f8eSopenharmony_ci    getSupportedFrameRates(): Array<FrameRateRange>
732961847f8eSopenharmony_ci
733061847f8eSopenharmony_ci    /**
733161847f8eSopenharmony_ci     * Set a frame rate range.
733261847f8eSopenharmony_ci     *
733361847f8eSopenharmony_ci     * @param { number } minFps - Minimum frame rate per second.
733461847f8eSopenharmony_ci     * @param { number } maxFps - Maximum frame rate per second.
733561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
733661847f8eSopenharmony_ci     * @throws { BusinessError } 7400110 - Unresolved conflicts with current configurations.
733761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
733861847f8eSopenharmony_ci     * @since 12
733961847f8eSopenharmony_ci     */
734061847f8eSopenharmony_ci    setFrameRate(minFps: number, maxFps: number): void
734161847f8eSopenharmony_ci
734261847f8eSopenharmony_ci    /**
734361847f8eSopenharmony_ci     * Get active frame rate range which has been set before.
734461847f8eSopenharmony_ci     *
734561847f8eSopenharmony_ci     * @returns { FrameRateRange } The active frame rate range.
734661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
734761847f8eSopenharmony_ci     * @since 12
734861847f8eSopenharmony_ci     */
734961847f8eSopenharmony_ci    getActiveFrameRate(): FrameRateRange;
735061847f8eSopenharmony_ci
735161847f8eSopenharmony_ci    /**
735261847f8eSopenharmony_ci     * Gets the preview rotation angle.
735361847f8eSopenharmony_ci     *
735461847f8eSopenharmony_ci     * @param { number } displayRotation - The current display rotation angle.
735561847f8eSopenharmony_ci     * @returns { ImageRotation } The preview rotation angle.
735661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
735761847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
735861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
735961847f8eSopenharmony_ci     * @since 12
736061847f8eSopenharmony_ci     */
736161847f8eSopenharmony_ci    getPreviewRotation(displayRotation: number): ImageRotation;
736261847f8eSopenharmony_ci
736361847f8eSopenharmony_ci     /**
736461847f8eSopenharmony_ci      * Sets the preview rotation angle.
736561847f8eSopenharmony_ci      *
736661847f8eSopenharmony_ci      * @param { ImageRotation } previewRotation - Preview display rotation angle.
736761847f8eSopenharmony_ci      * @param { boolean } isDisplayLocked - TRUE means the display is locked, if not set, the default is FALSE.
736861847f8eSopenharmony_ci      * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
736961847f8eSopenharmony_ci      * @throws { BusinessError } 7400201 - Camera service fatal error.
737061847f8eSopenharmony_ci      * @syscap SystemCapability.Multimedia.Camera.Core
737161847f8eSopenharmony_ci      * @since 12
737261847f8eSopenharmony_ci      */
737361847f8eSopenharmony_ci    setPreviewRotation(previewRotation: ImageRotation, isDisplayLocked?: boolean): void;
737461847f8eSopenharmony_ci
737561847f8eSopenharmony_ci    /**
737661847f8eSopenharmony_ci     * Gets the current preconfig type if you had already call preconfig interface.
737761847f8eSopenharmony_ci     *
737861847f8eSopenharmony_ci     * @returns { Profile } The current preconfig type.
737961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
738061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
738161847f8eSopenharmony_ci     * @since 12
738261847f8eSopenharmony_ci     */
738361847f8eSopenharmony_ci    getActiveProfile(): Profile;
738461847f8eSopenharmony_ci
738561847f8eSopenharmony_ci    /**
738661847f8eSopenharmony_ci     * Adds a deferred surface.
738761847f8eSopenharmony_ci     *
738861847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera photo output.
738961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
739061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
739161847f8eSopenharmony_ci     * @systemapi
739261847f8eSopenharmony_ci     * @since 10
739361847f8eSopenharmony_ci     */
739461847f8eSopenharmony_ci    /**
739561847f8eSopenharmony_ci     * Adds a deferred surface.
739661847f8eSopenharmony_ci     *
739761847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in camera photo output.
739861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
739961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
740061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
740161847f8eSopenharmony_ci     * @systemapi
740261847f8eSopenharmony_ci     * @since 12
740361847f8eSopenharmony_ci     */
740461847f8eSopenharmony_ci    addDeferredSurface(surfaceId: string): void;
740561847f8eSopenharmony_ci
740661847f8eSopenharmony_ci    /**
740761847f8eSopenharmony_ci     * Determine whether camera sketch is supported.
740861847f8eSopenharmony_ci     *
740961847f8eSopenharmony_ci     * @returns { boolean } Is camera sketch supported.
741061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
741161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
741261847f8eSopenharmony_ci     * @systemapi
741361847f8eSopenharmony_ci     * @since 11
741461847f8eSopenharmony_ci     */
741561847f8eSopenharmony_ci    isSketchSupported(): boolean;
741661847f8eSopenharmony_ci
741761847f8eSopenharmony_ci    /**
741861847f8eSopenharmony_ci     * Gets the specific zoom ratio when sketch stream open.
741961847f8eSopenharmony_ci     *
742061847f8eSopenharmony_ci     * @returns { number } The specific zoom ratio of sketch.
742161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
742261847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
742361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
742461847f8eSopenharmony_ci     * @systemapi
742561847f8eSopenharmony_ci     * @since 11
742661847f8eSopenharmony_ci     */
742761847f8eSopenharmony_ci    getSketchRatio(): number;
742861847f8eSopenharmony_ci
742961847f8eSopenharmony_ci    /**
743061847f8eSopenharmony_ci     * Enable sketch for camera.
743161847f8eSopenharmony_ci     *
743261847f8eSopenharmony_ci     * @param { boolean } enabled - enable sketch for camera if TRUE.
743361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
743461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
743561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
743661847f8eSopenharmony_ci     * @systemapi
743761847f8eSopenharmony_ci     * @since 11
743861847f8eSopenharmony_ci     */
743961847f8eSopenharmony_ci    /**
744061847f8eSopenharmony_ci     * Enable sketch for camera.
744161847f8eSopenharmony_ci     *
744261847f8eSopenharmony_ci     * @param { boolean } enabled - enable sketch for camera if TRUE.
744361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
744461847f8eSopenharmony_ci     * @throws { BusinessError } 7400102 - Operation not allowed.
744561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
744661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
744761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
744861847f8eSopenharmony_ci     * @systemapi
744961847f8eSopenharmony_ci     * @since 12
745061847f8eSopenharmony_ci     */
745161847f8eSopenharmony_ci    enableSketch(enabled: boolean): void;
745261847f8eSopenharmony_ci
745361847f8eSopenharmony_ci    /**
745461847f8eSopenharmony_ci     * Attach surface to the sketch stream.
745561847f8eSopenharmony_ci     *
745661847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in sketch stream.
745761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
745861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
745961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
746061847f8eSopenharmony_ci     * @systemapi
746161847f8eSopenharmony_ci     * @since 11
746261847f8eSopenharmony_ci     */
746361847f8eSopenharmony_ci    /**
746461847f8eSopenharmony_ci     * Attach surface to the sketch stream.
746561847f8eSopenharmony_ci     *
746661847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used in sketch stream.
746761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
746861847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
746961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
747061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
747161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
747261847f8eSopenharmony_ci     * @systemapi
747361847f8eSopenharmony_ci     * @since 12
747461847f8eSopenharmony_ci     */
747561847f8eSopenharmony_ci    attachSketchSurface(surfaceId: string): void;
747661847f8eSopenharmony_ci
747761847f8eSopenharmony_ci    /**
747861847f8eSopenharmony_ci     * Subscribes sketch status changed event callback.
747961847f8eSopenharmony_ci     *
748061847f8eSopenharmony_ci     * @param { 'sketchStatusChanged' } type - Event type.
748161847f8eSopenharmony_ci     * @param { AsyncCallback<SketchStatusData> } callback - Callback used to sketch status data.
748261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
748361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
748461847f8eSopenharmony_ci     * @systemapi
748561847f8eSopenharmony_ci     * @since 11
748661847f8eSopenharmony_ci     */
748761847f8eSopenharmony_ci    on(type: 'sketchStatusChanged', callback: AsyncCallback<SketchStatusData>): void;
748861847f8eSopenharmony_ci
748961847f8eSopenharmony_ci    /**
749061847f8eSopenharmony_ci     * Unsubscribes sketch status changed event callback.
749161847f8eSopenharmony_ci     *
749261847f8eSopenharmony_ci     * @param { 'sketchStatusChanged' } type - Event type.
749361847f8eSopenharmony_ci     * @param { AsyncCallback<SketchStatusData> } callback - Callback used to get sketch status data.
749461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
749561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
749661847f8eSopenharmony_ci     * @systemapi
749761847f8eSopenharmony_ci     * @since 11
749861847f8eSopenharmony_ci     */
749961847f8eSopenharmony_ci    off(type: 'sketchStatusChanged', callback?: AsyncCallback<SketchStatusData>): void;
750061847f8eSopenharmony_ci  }
750161847f8eSopenharmony_ci
750261847f8eSopenharmony_ci  /**
750361847f8eSopenharmony_ci   * Enum for effect suggestion.
750461847f8eSopenharmony_ci   *
750561847f8eSopenharmony_ci   * @enum { number }
750661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
750761847f8eSopenharmony_ci   * @systemapi
750861847f8eSopenharmony_ci   * @since 12
750961847f8eSopenharmony_ci   */
751061847f8eSopenharmony_ci  enum EffectSuggestionType {
751161847f8eSopenharmony_ci    /**
751261847f8eSopenharmony_ci     * None.
751361847f8eSopenharmony_ci     *
751461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
751561847f8eSopenharmony_ci     * @systemapi
751661847f8eSopenharmony_ci     * @since 12
751761847f8eSopenharmony_ci     */
751861847f8eSopenharmony_ci    EFFECT_SUGGESTION_NONE = 0,
751961847f8eSopenharmony_ci    /**
752061847f8eSopenharmony_ci     * Portrait.
752161847f8eSopenharmony_ci     *
752261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
752361847f8eSopenharmony_ci     * @systemapi
752461847f8eSopenharmony_ci     * @since 12
752561847f8eSopenharmony_ci     */
752661847f8eSopenharmony_ci    EFFECT_SUGGESTION_PORTRAIT = 1,
752761847f8eSopenharmony_ci    /**
752861847f8eSopenharmony_ci     * Food.
752961847f8eSopenharmony_ci     *
753061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
753161847f8eSopenharmony_ci     * @systemapi
753261847f8eSopenharmony_ci     * @since 12
753361847f8eSopenharmony_ci     */
753461847f8eSopenharmony_ci    EFFECT_SUGGESTION_FOOD = 2,
753561847f8eSopenharmony_ci  
753661847f8eSopenharmony_ci    /**
753761847f8eSopenharmony_ci     * Sky.
753861847f8eSopenharmony_ci     *
753961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
754061847f8eSopenharmony_ci     * @systemapi
754161847f8eSopenharmony_ci     * @since 12
754261847f8eSopenharmony_ci     */
754361847f8eSopenharmony_ci    EFFECT_SUGGESTION_SKY = 3,
754461847f8eSopenharmony_ci
754561847f8eSopenharmony_ci    /**
754661847f8eSopenharmony_ci     * Sunrise and sunset.
754761847f8eSopenharmony_ci     *
754861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
754961847f8eSopenharmony_ci     * @systemapi
755061847f8eSopenharmony_ci     * @since 12
755161847f8eSopenharmony_ci     */
755261847f8eSopenharmony_ci    EFFECT_SUGGESTION_SUNRISE_SUNSET = 4
755361847f8eSopenharmony_ci  }
755461847f8eSopenharmony_ci
755561847f8eSopenharmony_ci  /**
755661847f8eSopenharmony_ci   * Effect suggestion status
755761847f8eSopenharmony_ci   *
755861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
755961847f8eSopenharmony_ci   * @systemapi
756061847f8eSopenharmony_ci   * @since 12
756161847f8eSopenharmony_ci   */
756261847f8eSopenharmony_ci  class EffectSuggestionStatus {
756361847f8eSopenharmony_ci    /**
756461847f8eSopenharmony_ci     * Effect Suggestion type.
756561847f8eSopenharmony_ci     *
756661847f8eSopenharmony_ci     * @type { EffectSuggestionType }
756761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
756861847f8eSopenharmony_ci     * @systemapi
756961847f8eSopenharmony_ci     * @since 12
757061847f8eSopenharmony_ci     */
757161847f8eSopenharmony_ci    type: EffectSuggestionType;
757261847f8eSopenharmony_ci    /**
757361847f8eSopenharmony_ci     * Effect Suggestion type status.
757461847f8eSopenharmony_ci     *
757561847f8eSopenharmony_ci     * @type { boolean }
757661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
757761847f8eSopenharmony_ci     * @systemapi
757861847f8eSopenharmony_ci     * @since 12
757961847f8eSopenharmony_ci     */
758061847f8eSopenharmony_ci    status: boolean;
758161847f8eSopenharmony_ci  }
758261847f8eSopenharmony_ci
758361847f8eSopenharmony_ci  /**
758461847f8eSopenharmony_ci   * Enumerates the image rotation angles.
758561847f8eSopenharmony_ci   *
758661847f8eSopenharmony_ci   * @enum { number }
758761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
758861847f8eSopenharmony_ci   * @since 10
758961847f8eSopenharmony_ci   */
759061847f8eSopenharmony_ci  enum ImageRotation {
759161847f8eSopenharmony_ci    /**
759261847f8eSopenharmony_ci     * The capture image rotates 0 degrees.
759361847f8eSopenharmony_ci     *
759461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
759561847f8eSopenharmony_ci     * @since 10
759661847f8eSopenharmony_ci     */
759761847f8eSopenharmony_ci    ROTATION_0 = 0,
759861847f8eSopenharmony_ci
759961847f8eSopenharmony_ci    /**
760061847f8eSopenharmony_ci     * The capture image rotates 90 degrees.
760161847f8eSopenharmony_ci     *
760261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
760361847f8eSopenharmony_ci     * @since 10
760461847f8eSopenharmony_ci     */
760561847f8eSopenharmony_ci    ROTATION_90 = 90,
760661847f8eSopenharmony_ci
760761847f8eSopenharmony_ci    /**
760861847f8eSopenharmony_ci     * The capture image rotates 180 degrees.
760961847f8eSopenharmony_ci     *
761061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
761161847f8eSopenharmony_ci     * @since 10
761261847f8eSopenharmony_ci     */
761361847f8eSopenharmony_ci    ROTATION_180 = 180,
761461847f8eSopenharmony_ci
761561847f8eSopenharmony_ci    /**
761661847f8eSopenharmony_ci     * The capture image rotates 270 degrees.
761761847f8eSopenharmony_ci     *
761861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
761961847f8eSopenharmony_ci     * @since 10
762061847f8eSopenharmony_ci     */
762161847f8eSopenharmony_ci    ROTATION_270 = 270
762261847f8eSopenharmony_ci  }
762361847f8eSopenharmony_ci
762461847f8eSopenharmony_ci  /**
762561847f8eSopenharmony_ci   * Photo capture location
762661847f8eSopenharmony_ci   *
762761847f8eSopenharmony_ci   * @typedef Location
762861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
762961847f8eSopenharmony_ci   * @since 10
763061847f8eSopenharmony_ci   */
763161847f8eSopenharmony_ci  interface Location {
763261847f8eSopenharmony_ci    /**
763361847f8eSopenharmony_ci     * Latitude.
763461847f8eSopenharmony_ci     *
763561847f8eSopenharmony_ci     * @type { number }
763661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
763761847f8eSopenharmony_ci     * @since 10
763861847f8eSopenharmony_ci     */
763961847f8eSopenharmony_ci    latitude: number;
764061847f8eSopenharmony_ci
764161847f8eSopenharmony_ci    /**
764261847f8eSopenharmony_ci     * Longitude.
764361847f8eSopenharmony_ci     *
764461847f8eSopenharmony_ci     * @type { number }
764561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
764661847f8eSopenharmony_ci     * @since 10
764761847f8eSopenharmony_ci     */
764861847f8eSopenharmony_ci    longitude: number;
764961847f8eSopenharmony_ci
765061847f8eSopenharmony_ci    /**
765161847f8eSopenharmony_ci     * Altitude.
765261847f8eSopenharmony_ci     *
765361847f8eSopenharmony_ci     * @type { number }
765461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
765561847f8eSopenharmony_ci     * @since 10
765661847f8eSopenharmony_ci     */
765761847f8eSopenharmony_ci    altitude: number;
765861847f8eSopenharmony_ci  }
765961847f8eSopenharmony_ci
766061847f8eSopenharmony_ci  /**
766161847f8eSopenharmony_ci   * Enumerates the image quality levels.
766261847f8eSopenharmony_ci   *
766361847f8eSopenharmony_ci   * @enum { number }
766461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
766561847f8eSopenharmony_ci   * @since 10
766661847f8eSopenharmony_ci   */
766761847f8eSopenharmony_ci  enum QualityLevel {
766861847f8eSopenharmony_ci    /**
766961847f8eSopenharmony_ci     * High image quality.
767061847f8eSopenharmony_ci     *
767161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
767261847f8eSopenharmony_ci     * @since 10
767361847f8eSopenharmony_ci     */
767461847f8eSopenharmony_ci    QUALITY_LEVEL_HIGH = 0,
767561847f8eSopenharmony_ci
767661847f8eSopenharmony_ci    /**
767761847f8eSopenharmony_ci     * Medium image quality.
767861847f8eSopenharmony_ci     *
767961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
768061847f8eSopenharmony_ci     * @since 10
768161847f8eSopenharmony_ci     */
768261847f8eSopenharmony_ci    QUALITY_LEVEL_MEDIUM = 1,
768361847f8eSopenharmony_ci
768461847f8eSopenharmony_ci    /**
768561847f8eSopenharmony_ci     * Low image quality.
768661847f8eSopenharmony_ci     *
768761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
768861847f8eSopenharmony_ci     * @since 10
768961847f8eSopenharmony_ci     */
769061847f8eSopenharmony_ci    QUALITY_LEVEL_LOW = 2
769161847f8eSopenharmony_ci  }
769261847f8eSopenharmony_ci
769361847f8eSopenharmony_ci  /**
769461847f8eSopenharmony_ci   * Photo capture options to set.
769561847f8eSopenharmony_ci   *
769661847f8eSopenharmony_ci   * @typedef PhotoCaptureSetting
769761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
769861847f8eSopenharmony_ci   * @since 10
769961847f8eSopenharmony_ci   */
770061847f8eSopenharmony_ci  interface PhotoCaptureSetting {
770161847f8eSopenharmony_ci    /**
770261847f8eSopenharmony_ci     * Photo image quality.
770361847f8eSopenharmony_ci     *
770461847f8eSopenharmony_ci     * @type { ?QualityLevel }
770561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
770661847f8eSopenharmony_ci     * @since 10
770761847f8eSopenharmony_ci     */
770861847f8eSopenharmony_ci    quality?: QualityLevel;
770961847f8eSopenharmony_ci
771061847f8eSopenharmony_ci    /**
771161847f8eSopenharmony_ci     * Photo rotation.
771261847f8eSopenharmony_ci     *
771361847f8eSopenharmony_ci     * @type { ?ImageRotation }
771461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
771561847f8eSopenharmony_ci     * @since 10
771661847f8eSopenharmony_ci     */
771761847f8eSopenharmony_ci    rotation?: ImageRotation;
771861847f8eSopenharmony_ci
771961847f8eSopenharmony_ci    /**
772061847f8eSopenharmony_ci     * Photo location.
772161847f8eSopenharmony_ci     *
772261847f8eSopenharmony_ci     * @type { ?Location }
772361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
772461847f8eSopenharmony_ci     * @since 10
772561847f8eSopenharmony_ci     */
772661847f8eSopenharmony_ci    location?: Location;
772761847f8eSopenharmony_ci
772861847f8eSopenharmony_ci    /**
772961847f8eSopenharmony_ci     * Set the mirror photo function switch, default to false.
773061847f8eSopenharmony_ci     *
773161847f8eSopenharmony_ci     * @type { ?boolean }
773261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
773361847f8eSopenharmony_ci     * @since 10
773461847f8eSopenharmony_ci     */
773561847f8eSopenharmony_ci    mirror?: boolean;
773661847f8eSopenharmony_ci  }
773761847f8eSopenharmony_ci
773861847f8eSopenharmony_ci  /**
773961847f8eSopenharmony_ci   * Enumerates the delivery image types.
774061847f8eSopenharmony_ci   *
774161847f8eSopenharmony_ci   * @enum { number }
774261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
774361847f8eSopenharmony_ci   * @systemapi
774461847f8eSopenharmony_ci   * @since 11
774561847f8eSopenharmony_ci   */
774661847f8eSopenharmony_ci  enum DeferredDeliveryImageType {
774761847f8eSopenharmony_ci    /**
774861847f8eSopenharmony_ci     * Undefer image delivery.
774961847f8eSopenharmony_ci     *
775061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
775161847f8eSopenharmony_ci     * @systemapi
775261847f8eSopenharmony_ci     * @since 11
775361847f8eSopenharmony_ci     */
775461847f8eSopenharmony_ci    NONE = 0,
775561847f8eSopenharmony_ci
775661847f8eSopenharmony_ci    /**
775761847f8eSopenharmony_ci     * Defer photo delivery when capturing photos.
775861847f8eSopenharmony_ci     *
775961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
776061847f8eSopenharmony_ci     * @systemapi
776161847f8eSopenharmony_ci     * @since 11
776261847f8eSopenharmony_ci     */
776361847f8eSopenharmony_ci    PHOTO = 1,
776461847f8eSopenharmony_ci
776561847f8eSopenharmony_ci    /**
776661847f8eSopenharmony_ci     * Defer video delivery when capturing videos.
776761847f8eSopenharmony_ci     *
776861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
776961847f8eSopenharmony_ci     * @systemapi
777061847f8eSopenharmony_ci     * @since 11
777161847f8eSopenharmony_ci     */
777261847f8eSopenharmony_ci    VIDEO = 2
777361847f8eSopenharmony_ci  }
777461847f8eSopenharmony_ci
777561847f8eSopenharmony_ci  /**
777661847f8eSopenharmony_ci   * Photo object
777761847f8eSopenharmony_ci   *
777861847f8eSopenharmony_ci   * @typedef Photo
777961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
778061847f8eSopenharmony_ci   * @since 11
778161847f8eSopenharmony_ci   */
778261847f8eSopenharmony_ci  interface Photo {
778361847f8eSopenharmony_ci    /**
778461847f8eSopenharmony_ci     * Main image.
778561847f8eSopenharmony_ci     *
778661847f8eSopenharmony_ci     * @type { image.Image }
778761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
778861847f8eSopenharmony_ci     * @since 11
778961847f8eSopenharmony_ci     */
779061847f8eSopenharmony_ci    main: image.Image;
779161847f8eSopenharmony_ci
779261847f8eSopenharmony_ci    /**
779361847f8eSopenharmony_ci     * Raw image.
779461847f8eSopenharmony_ci     *
779561847f8eSopenharmony_ci     * @type { ?image.Image }
779661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
779761847f8eSopenharmony_ci     * @systemapi
779861847f8eSopenharmony_ci     * @since 12
779961847f8eSopenharmony_ci     */
780061847f8eSopenharmony_ci    raw?: image.Image;
780161847f8eSopenharmony_ci
780261847f8eSopenharmony_ci    /**
780361847f8eSopenharmony_ci     * Depth data.
780461847f8eSopenharmony_ci     *
780561847f8eSopenharmony_ci     * @type { DepthData }
780661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
780761847f8eSopenharmony_ci     * @systemapi
780861847f8eSopenharmony_ci     * @since 13
780961847f8eSopenharmony_ci     */
781061847f8eSopenharmony_ci    depthData?: DepthData;
781161847f8eSopenharmony_ci
781261847f8eSopenharmony_ci    /**
781361847f8eSopenharmony_ci     * Release Photo object.
781461847f8eSopenharmony_ci     *
781561847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
781661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
781761847f8eSopenharmony_ci     * @since 11
781861847f8eSopenharmony_ci     */
781961847f8eSopenharmony_ci    release(): Promise<void>;
782061847f8eSopenharmony_ci  }
782161847f8eSopenharmony_ci
782261847f8eSopenharmony_ci  /**
782361847f8eSopenharmony_ci   * DeferredPhotoProxy object
782461847f8eSopenharmony_ci   *
782561847f8eSopenharmony_ci   * @typedef DeferredPhotoProxy
782661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
782761847f8eSopenharmony_ci   * @systemapi
782861847f8eSopenharmony_ci   * @since 11
782961847f8eSopenharmony_ci   */
783061847f8eSopenharmony_ci  interface DeferredPhotoProxy {
783161847f8eSopenharmony_ci    /**
783261847f8eSopenharmony_ci     * Thumbnail image.
783361847f8eSopenharmony_ci     *
783461847f8eSopenharmony_ci     * @returns { Promise<image.PixelMap> } Promise used to return the result.
783561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
783661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
783761847f8eSopenharmony_ci     * @systemapi
783861847f8eSopenharmony_ci     * @since 11
783961847f8eSopenharmony_ci     */
784061847f8eSopenharmony_ci    getThumbnail(): Promise<image.PixelMap>;
784161847f8eSopenharmony_ci
784261847f8eSopenharmony_ci    /**
784361847f8eSopenharmony_ci     * Release DeferredPhotoProxy object.
784461847f8eSopenharmony_ci     *
784561847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
784661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
784761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
784861847f8eSopenharmony_ci     * @systemapi
784961847f8eSopenharmony_ci     * @since 11
785061847f8eSopenharmony_ci     */
785161847f8eSopenharmony_ci    release(): Promise<void>;
785261847f8eSopenharmony_ci  }
785361847f8eSopenharmony_ci
785461847f8eSopenharmony_ci  /**
785561847f8eSopenharmony_ci   * Enumerates the camera video codec type.
785661847f8eSopenharmony_ci   *
785761847f8eSopenharmony_ci   * @enum { number }
785861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
785961847f8eSopenharmony_ci   * @since 13
786061847f8eSopenharmony_ci   */
786161847f8eSopenharmony_ci  enum VideoCodecType {
786261847f8eSopenharmony_ci    /**
786361847f8eSopenharmony_ci     * Codec type AVC.
786461847f8eSopenharmony_ci     *
786561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
786661847f8eSopenharmony_ci     * @since 13
786761847f8eSopenharmony_ci     */
786861847f8eSopenharmony_ci    AVC = 0,
786961847f8eSopenharmony_ci
787061847f8eSopenharmony_ci    /**
787161847f8eSopenharmony_ci     * Codec type HEVC.
787261847f8eSopenharmony_ci     *
787361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
787461847f8eSopenharmony_ci     * @since 13
787561847f8eSopenharmony_ci     */
787661847f8eSopenharmony_ci    HEVC = 1
787761847f8eSopenharmony_ci  }
787861847f8eSopenharmony_ci
787961847f8eSopenharmony_ci  /**
788061847f8eSopenharmony_ci   * Photo output object.
788161847f8eSopenharmony_ci   *
788261847f8eSopenharmony_ci   * @interface PhotoOutput
788361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
788461847f8eSopenharmony_ci   * @since 10
788561847f8eSopenharmony_ci   */
788661847f8eSopenharmony_ci  interface PhotoOutput extends CameraOutput {
788761847f8eSopenharmony_ci    /**
788861847f8eSopenharmony_ci     * Start capture output.
788961847f8eSopenharmony_ci     *
789061847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
789161847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
789261847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
789361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
789461847f8eSopenharmony_ci     * @since 10
789561847f8eSopenharmony_ci     */
789661847f8eSopenharmony_ci    capture(callback: AsyncCallback<void>): void;
789761847f8eSopenharmony_ci
789861847f8eSopenharmony_ci    /**
789961847f8eSopenharmony_ci     * Start capture output.
790061847f8eSopenharmony_ci     *
790161847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
790261847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
790361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
790461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
790561847f8eSopenharmony_ci     * @since 10
790661847f8eSopenharmony_ci     */
790761847f8eSopenharmony_ci    capture(): Promise<void>;
790861847f8eSopenharmony_ci
790961847f8eSopenharmony_ci    /**
791061847f8eSopenharmony_ci     * Start capture output.
791161847f8eSopenharmony_ci     *
791261847f8eSopenharmony_ci     * @param { PhotoCaptureSetting } setting - Photo capture settings.
791361847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
791461847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
791561847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
791661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
791761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
791861847f8eSopenharmony_ci     * @since 10
791961847f8eSopenharmony_ci     */
792061847f8eSopenharmony_ci    capture(setting: PhotoCaptureSetting, callback: AsyncCallback<void>): void;
792161847f8eSopenharmony_ci
792261847f8eSopenharmony_ci    /**
792361847f8eSopenharmony_ci     * Start capture output.
792461847f8eSopenharmony_ci     *
792561847f8eSopenharmony_ci     * @param { PhotoCaptureSetting } setting - Photo capture settings.
792661847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
792761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
792861847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
792961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
793061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
793161847f8eSopenharmony_ci     * @since 10
793261847f8eSopenharmony_ci     */
793361847f8eSopenharmony_ci    /**
793461847f8eSopenharmony_ci     * Start capture output.
793561847f8eSopenharmony_ci     * Remove optional param.
793661847f8eSopenharmony_ci     *
793761847f8eSopenharmony_ci     * @param { PhotoCaptureSetting } setting - Photo capture settings.
793861847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
793961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
794061847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
794161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
794261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
794361847f8eSopenharmony_ci     * @since 11
794461847f8eSopenharmony_ci     */
794561847f8eSopenharmony_ci    capture(setting: PhotoCaptureSetting): Promise<void>;
794661847f8eSopenharmony_ci
794761847f8eSopenharmony_ci    /**
794861847f8eSopenharmony_ci     * Start burst capture.
794961847f8eSopenharmony_ci     *
795061847f8eSopenharmony_ci     * @param { PhotoCaptureSetting } setting - Photo capture settings.
795161847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
795261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
795361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
795461847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
795561847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
795661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
795761847f8eSopenharmony_ci     * @systemapi
795861847f8eSopenharmony_ci     * @since 12
795961847f8eSopenharmony_ci     */
796061847f8eSopenharmony_ci    burstCapture(setting: PhotoCaptureSetting): Promise<void>;
796161847f8eSopenharmony_ci
796261847f8eSopenharmony_ci    /**
796361847f8eSopenharmony_ci     * Confirm capture in Night mode or end burst capture.
796461847f8eSopenharmony_ci     *
796561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
796661847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
796761847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
796861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
796961847f8eSopenharmony_ci     * @systemapi
797061847f8eSopenharmony_ci     * @since 11
797161847f8eSopenharmony_ci     */
797261847f8eSopenharmony_ci    confirmCapture();
797361847f8eSopenharmony_ci
797461847f8eSopenharmony_ci    /**
797561847f8eSopenharmony_ci     * Confirm if the raw image delivery is supported
797661847f8eSopenharmony_ci     *
797761847f8eSopenharmony_ci     * @returns { boolean } TRUE if the type of delivery image is support.
797861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
797961847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
798061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
798161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
798261847f8eSopenharmony_ci     * @systemapi
798361847f8eSopenharmony_ci     * @since 13
798461847f8eSopenharmony_ci     */
798561847f8eSopenharmony_ci    isRawDeliverySupported(): boolean;
798661847f8eSopenharmony_ci  
798761847f8eSopenharmony_ci    /**
798861847f8eSopenharmony_ci     * Enable raw image image delivery.
798961847f8eSopenharmony_ci     *
799061847f8eSopenharmony_ci     * @param { boolean } enabled - Target state for raw image delivery.
799161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
799261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
799361847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
799461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
799561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
799661847f8eSopenharmony_ci     * @systemapi
799761847f8eSopenharmony_ci     * @since 13
799861847f8eSopenharmony_ci     */
799961847f8eSopenharmony_ci    enableRawDelivery(enabled: boolean): void;
800061847f8eSopenharmony_ci
800161847f8eSopenharmony_ci    /**
800261847f8eSopenharmony_ci     * Confirm if the deferred image delivery supported in the specific device.
800361847f8eSopenharmony_ci     *
800461847f8eSopenharmony_ci     * @param { DeferredDeliveryImageType } type - Type of delivery image.
800561847f8eSopenharmony_ci     * @returns { boolean } TRUE if the type of delivery image is support.
800661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
800761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
800861847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
800961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
801061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
801161847f8eSopenharmony_ci     * @systemapi
801261847f8eSopenharmony_ci     * @since 11
801361847f8eSopenharmony_ci     */
801461847f8eSopenharmony_ci    isDeferredImageDeliverySupported(type: DeferredDeliveryImageType): boolean;
801561847f8eSopenharmony_ci
801661847f8eSopenharmony_ci    /**
801761847f8eSopenharmony_ci     * Confirm if the deferred image delivery enabled.
801861847f8eSopenharmony_ci     *
801961847f8eSopenharmony_ci     * @param { DeferredDeliveryImageType } type - Type of delivery image.
802061847f8eSopenharmony_ci     * @returns { boolean } TRUE if the type of delivery image is enable.
802161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
802261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
802361847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
802461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
802561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
802661847f8eSopenharmony_ci     * @systemapi
802761847f8eSopenharmony_ci     * @since 11
802861847f8eSopenharmony_ci     */
802961847f8eSopenharmony_ci    isDeferredImageDeliveryEnabled(type: DeferredDeliveryImageType): boolean;
803061847f8eSopenharmony_ci
803161847f8eSopenharmony_ci    /**
803261847f8eSopenharmony_ci     * Sets the image type for deferred image delivery.
803361847f8eSopenharmony_ci     *
803461847f8eSopenharmony_ci     * @param { DeferredDeliveryImageType } type - Type of delivery image.
803561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
803661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
803761847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
803861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
803961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
804061847f8eSopenharmony_ci     * @systemapi
804161847f8eSopenharmony_ci     * @since 11
804261847f8eSopenharmony_ci     */
804361847f8eSopenharmony_ci    deferImageDelivery(type: DeferredDeliveryImageType): void;
804461847f8eSopenharmony_ci
804561847f8eSopenharmony_ci    /**
804661847f8eSopenharmony_ci     * Check if the depth data delivery is supported.
804761847f8eSopenharmony_ci     *
804861847f8eSopenharmony_ci     * @returns { boolean } TRUE if the type of delivery image is enabled.
804961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
805061847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
805161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
805261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
805361847f8eSopenharmony_ci     * @systemapi
805461847f8eSopenharmony_ci     * @since 13
805561847f8eSopenharmony_ci     */
805661847f8eSopenharmony_ci    isDepthDataDeliverySupported(): boolean;
805761847f8eSopenharmony_ci
805861847f8eSopenharmony_ci    /**
805961847f8eSopenharmony_ci     * Enable depth data delivery.
806061847f8eSopenharmony_ci     *
806161847f8eSopenharmony_ci     * @param { boolean } enabled - Target state for depth data delivery.
806261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
806361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
806461847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - Session not running.
806561847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
806661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
806761847f8eSopenharmony_ci     * @systemapi
806861847f8eSopenharmony_ci     * @since 13
806961847f8eSopenharmony_ci     */
807061847f8eSopenharmony_ci    enableDepthDataDelivery(enabled: boolean): void;
807161847f8eSopenharmony_ci
807261847f8eSopenharmony_ci    /**
807361847f8eSopenharmony_ci     * Get supported moving photo video codec types.
807461847f8eSopenharmony_ci     *
807561847f8eSopenharmony_ci     * @returns { Array<VideoCodecType> } An array of supported video codec types for moving photo.
807661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
807761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
807861847f8eSopenharmony_ci     * @since 13
807961847f8eSopenharmony_ci     */
808061847f8eSopenharmony_ci    getSupportedMovingPhotoVideoCodecTypes(): Array<VideoCodecType>;
808161847f8eSopenharmony_ci
808261847f8eSopenharmony_ci    /**
808361847f8eSopenharmony_ci     * Sets codec type for moving photo, default to AVC.
808461847f8eSopenharmony_ci     *
808561847f8eSopenharmony_ci     * @param { VideoCodecType } codecType - Codec type for moving photo.
808661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
808761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
808861847f8eSopenharmony_ci     * @since 13
808961847f8eSopenharmony_ci     */
809061847f8eSopenharmony_ci    setMovingPhotoVideoCodecType(codecType: VideoCodecType): void;
809161847f8eSopenharmony_ci
809261847f8eSopenharmony_ci    /**
809361847f8eSopenharmony_ci     * Subscribes photo available event callback.
809461847f8eSopenharmony_ci     *
809561847f8eSopenharmony_ci     * @param { 'photoAvailable' } type - Event type.
809661847f8eSopenharmony_ci     * @param { AsyncCallback<Photo> } callback - Callback used to get the Photo.
809761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
809861847f8eSopenharmony_ci     * @since 11
809961847f8eSopenharmony_ci     */
810061847f8eSopenharmony_ci    on(type: 'photoAvailable', callback: AsyncCallback<Photo>): void;
810161847f8eSopenharmony_ci
810261847f8eSopenharmony_ci    /**
810361847f8eSopenharmony_ci     * Unsubscribes photo available event callback.
810461847f8eSopenharmony_ci     *
810561847f8eSopenharmony_ci     * @param { 'photoAvailable' } type - Event type.
810661847f8eSopenharmony_ci     * @param { AsyncCallback<Photo> } callback - Callback used to get the Photo.
810761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
810861847f8eSopenharmony_ci     * @since 11
810961847f8eSopenharmony_ci     */
811061847f8eSopenharmony_ci    off(type: 'photoAvailable', callback?: AsyncCallback<Photo>): void;
811161847f8eSopenharmony_ci
811261847f8eSopenharmony_ci    /**
811361847f8eSopenharmony_ci     * Subscribes deferred photo proxy available event callback.
811461847f8eSopenharmony_ci     *
811561847f8eSopenharmony_ci     * @param { 'deferredPhotoProxyAvailable' } type - Event type.
811661847f8eSopenharmony_ci     * @param { AsyncCallback<DeferredPhotoProxy> } callback - Callback used to get the DeferredPhotoProxy.
811761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
811861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
811961847f8eSopenharmony_ci     * @systemapi
812061847f8eSopenharmony_ci     * @since 11
812161847f8eSopenharmony_ci     */
812261847f8eSopenharmony_ci    on(type: 'deferredPhotoProxyAvailable', callback: AsyncCallback<DeferredPhotoProxy>): void;
812361847f8eSopenharmony_ci
812461847f8eSopenharmony_ci    /**
812561847f8eSopenharmony_ci     * Unsubscribes deferred photo proxy available event callback.
812661847f8eSopenharmony_ci     *
812761847f8eSopenharmony_ci     * @param { 'deferredPhotoProxyAvailable' } type - Event type.
812861847f8eSopenharmony_ci     * @param { AsyncCallback<DeferredPhotoProxy> } callback - Callback used to get the DeferredPhotoProxy.
812961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
813061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
813161847f8eSopenharmony_ci     * @systemapi
813261847f8eSopenharmony_ci     * @since 11
813361847f8eSopenharmony_ci     */
813461847f8eSopenharmony_ci    off(type: 'deferredPhotoProxyAvailable', callback?: AsyncCallback<DeferredPhotoProxy>): void;
813561847f8eSopenharmony_ci
813661847f8eSopenharmony_ci    /**
813761847f8eSopenharmony_ci     * Subscribes photo asset event callback.
813861847f8eSopenharmony_ci     *
813961847f8eSopenharmony_ci     * @param { 'photoAssetAvailable' } type - Event type.
814061847f8eSopenharmony_ci     * @param { AsyncCallback<photoAccessHelper.PhotoAsset> } callback - Callback used to get the asset.
814161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
814261847f8eSopenharmony_ci     * @since 12
814361847f8eSopenharmony_ci     */
814461847f8eSopenharmony_ci    on(type: 'photoAssetAvailable', callback: AsyncCallback<photoAccessHelper.PhotoAsset>): void;
814561847f8eSopenharmony_ci
814661847f8eSopenharmony_ci    /**
814761847f8eSopenharmony_ci     * Unsubscribes photo asset event callback.
814861847f8eSopenharmony_ci     *
814961847f8eSopenharmony_ci     * @param { 'photoAssetAvailable' } type - Event type.
815061847f8eSopenharmony_ci     * @param { AsyncCallback<photoAccessHelper.PhotoAsset> } callback - Callback used to get the asset.
815161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
815261847f8eSopenharmony_ci     * @since 12
815361847f8eSopenharmony_ci     */
815461847f8eSopenharmony_ci     off(type: 'photoAssetAvailable', callback?: AsyncCallback<photoAccessHelper.PhotoAsset>): void;
815561847f8eSopenharmony_ci
815661847f8eSopenharmony_ci    /**
815761847f8eSopenharmony_ci     * Check whether to support mirror photo.
815861847f8eSopenharmony_ci     *
815961847f8eSopenharmony_ci     * @returns { boolean } Is the mirror supported.
816061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
816161847f8eSopenharmony_ci     * @since 10
816261847f8eSopenharmony_ci     */
816361847f8eSopenharmony_ci    isMirrorSupported(): boolean;
816461847f8eSopenharmony_ci
816561847f8eSopenharmony_ci    /**
816661847f8eSopenharmony_ci     * Enable mirror for photo capture.
816761847f8eSopenharmony_ci     *
816861847f8eSopenharmony_ci     * @param { boolean } enabled - enable photo mirror if TRUE.
816961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
817061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
817161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
817261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
817361847f8eSopenharmony_ci     * @since 13
817461847f8eSopenharmony_ci     */
817561847f8eSopenharmony_ci    enableMirror(enabled: boolean): void;
817661847f8eSopenharmony_ci
817761847f8eSopenharmony_ci    /**
817861847f8eSopenharmony_ci     * Subscribes capture start event callback.
817961847f8eSopenharmony_ci     *
818061847f8eSopenharmony_ci     * @param { 'captureStart' } type - Event type.
818161847f8eSopenharmony_ci     * @param { AsyncCallback<number> } callback - Callback used to get the capture ID.
818261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
818361847f8eSopenharmony_ci     * @since 10
818461847f8eSopenharmony_ci     * @deprecated since 11
818561847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.PhotoOutput#captureStartWithInfo
818661847f8eSopenharmony_ci     */
818761847f8eSopenharmony_ci    on(type: 'captureStart', callback: AsyncCallback<number>): void;
818861847f8eSopenharmony_ci
818961847f8eSopenharmony_ci    /**
819061847f8eSopenharmony_ci     * Unsubscribes from capture start event callback.
819161847f8eSopenharmony_ci     *
819261847f8eSopenharmony_ci     * @param { 'captureStart' } type - Event type.
819361847f8eSopenharmony_ci     * @param { AsyncCallback<number> } callback - Callback used to get the capture ID.
819461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
819561847f8eSopenharmony_ci     * @since 10
819661847f8eSopenharmony_ci     * @deprecated since 11
819761847f8eSopenharmony_ci     * @useinstead ohos.multimedia.camera.PhotoOutput#captureStartWithInfo
819861847f8eSopenharmony_ci     */
819961847f8eSopenharmony_ci    off(type: 'captureStart', callback?: AsyncCallback<number>): void;
820061847f8eSopenharmony_ci
820161847f8eSopenharmony_ci    /**
820261847f8eSopenharmony_ci     * Subscribes capture start event callback.
820361847f8eSopenharmony_ci     *
820461847f8eSopenharmony_ci     * @param { 'captureStartWithInfo' } type - Event type.
820561847f8eSopenharmony_ci     * @param { AsyncCallback<CaptureStartInfo> } callback - Callback used to get the capture start info.
820661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
820761847f8eSopenharmony_ci     * @since 11
820861847f8eSopenharmony_ci     */
820961847f8eSopenharmony_ci    on(type: 'captureStartWithInfo', callback: AsyncCallback<CaptureStartInfo>): void;
821061847f8eSopenharmony_ci
821161847f8eSopenharmony_ci    /**
821261847f8eSopenharmony_ci     * Unsubscribes from capture start event callback.
821361847f8eSopenharmony_ci     *
821461847f8eSopenharmony_ci     * @param { 'captureStartWithInfo' } type - Event type.
821561847f8eSopenharmony_ci     * @param { AsyncCallback<CaptureStartInfo> } callback - Callback used to get the capture start info.
821661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
821761847f8eSopenharmony_ci     * @since 11
821861847f8eSopenharmony_ci     */
821961847f8eSopenharmony_ci    off(type: 'captureStartWithInfo', callback?: AsyncCallback<CaptureStartInfo>): void;
822061847f8eSopenharmony_ci
822161847f8eSopenharmony_ci    /**
822261847f8eSopenharmony_ci     * Subscribes frame shutter event callback.
822361847f8eSopenharmony_ci     *
822461847f8eSopenharmony_ci     * @param { 'frameShutter' } type - Event type.
822561847f8eSopenharmony_ci     * @param { AsyncCallback<FrameShutterInfo> } callback - Callback used to get the frame shutter information.
822661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
822761847f8eSopenharmony_ci     * @since 10
822861847f8eSopenharmony_ci     */
822961847f8eSopenharmony_ci    on(type: 'frameShutter', callback: AsyncCallback<FrameShutterInfo>): void;
823061847f8eSopenharmony_ci
823161847f8eSopenharmony_ci    /**
823261847f8eSopenharmony_ci     * Unsubscribes from frame shutter event callback.
823361847f8eSopenharmony_ci     *
823461847f8eSopenharmony_ci     * @param { 'frameShutter' } type - Event type.
823561847f8eSopenharmony_ci     * @param { AsyncCallback<FrameShutterInfo> } callback - Callback used to get the frame shutter information.
823661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
823761847f8eSopenharmony_ci     * @since 10
823861847f8eSopenharmony_ci     */
823961847f8eSopenharmony_ci    off(type: 'frameShutter', callback?: AsyncCallback<FrameShutterInfo>): void;
824061847f8eSopenharmony_ci
824161847f8eSopenharmony_ci    /**
824261847f8eSopenharmony_ci     * Subscribes frame shutter end event callback.
824361847f8eSopenharmony_ci     *
824461847f8eSopenharmony_ci     * @param { 'frameShutterEnd' } type - Event type.
824561847f8eSopenharmony_ci     * @param { AsyncCallback<FrameShutterEndInfo> } callback - Callback used to get the frame shutter end information.
824661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
824761847f8eSopenharmony_ci     * @since 12
824861847f8eSopenharmony_ci     */
824961847f8eSopenharmony_ci    on(type: 'frameShutterEnd', callback: AsyncCallback<FrameShutterEndInfo>): void;
825061847f8eSopenharmony_ci
825161847f8eSopenharmony_ci    /**
825261847f8eSopenharmony_ci     * Unsubscribes from frame shutter end event callback.
825361847f8eSopenharmony_ci     *
825461847f8eSopenharmony_ci     * @param { 'frameShutterEnd' } type - Event type.
825561847f8eSopenharmony_ci     * @param { AsyncCallback<FrameShutterEndInfo> } callback - Callback used to get the frame shutter end information.
825661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
825761847f8eSopenharmony_ci     * @since 12
825861847f8eSopenharmony_ci     */
825961847f8eSopenharmony_ci    off(type: 'frameShutterEnd', callback?: AsyncCallback<FrameShutterEndInfo>): void;
826061847f8eSopenharmony_ci
826161847f8eSopenharmony_ci    /**
826261847f8eSopenharmony_ci     * Subscribes capture end event callback.
826361847f8eSopenharmony_ci     *
826461847f8eSopenharmony_ci     * @param { 'captureEnd' } type - Event type.
826561847f8eSopenharmony_ci     * @param { AsyncCallback<CaptureEndInfo> } callback - Callback used to get the capture end information.
826661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
826761847f8eSopenharmony_ci     * @since 10
826861847f8eSopenharmony_ci     */
826961847f8eSopenharmony_ci    on(type: 'captureEnd', callback: AsyncCallback<CaptureEndInfo>): void;
827061847f8eSopenharmony_ci
827161847f8eSopenharmony_ci    /**
827261847f8eSopenharmony_ci     * Unsubscribes from capture end event callback.
827361847f8eSopenharmony_ci     *
827461847f8eSopenharmony_ci     * @param { 'captureEnd' } type - Event type.
827561847f8eSopenharmony_ci     * @param { AsyncCallback<CaptureEndInfo> } callback - Callback used to get the capture end information.
827661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
827761847f8eSopenharmony_ci     * @since 10
827861847f8eSopenharmony_ci     */
827961847f8eSopenharmony_ci    off(type: 'captureEnd', callback?: AsyncCallback<CaptureEndInfo>): void;
828061847f8eSopenharmony_ci
828161847f8eSopenharmony_ci    /**
828261847f8eSopenharmony_ci     * Subscribes capture ready event callback. After receiving the callback, can proceed to the next capture
828361847f8eSopenharmony_ci     *
828461847f8eSopenharmony_ci     * @param { 'captureReady' } type - Event type.
828561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to notice capture ready.
828661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
828761847f8eSopenharmony_ci     * @since 12
828861847f8eSopenharmony_ci     */
828961847f8eSopenharmony_ci    on(type: 'captureReady', callback: AsyncCallback<void>): void;
829061847f8eSopenharmony_ci
829161847f8eSopenharmony_ci    /**
829261847f8eSopenharmony_ci     * Unsubscribes from capture ready event callback.
829361847f8eSopenharmony_ci     *
829461847f8eSopenharmony_ci     * @param { 'captureReady' } type - Event type.
829561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to notice capture ready.
829661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
829761847f8eSopenharmony_ci     * @since 12
829861847f8eSopenharmony_ci     */
829961847f8eSopenharmony_ci    off(type: 'captureReady', callback?: AsyncCallback<void>): void;
830061847f8eSopenharmony_ci
830161847f8eSopenharmony_ci    /**
830261847f8eSopenharmony_ci     * Subscribes estimated capture duration event callback.
830361847f8eSopenharmony_ci     *
830461847f8eSopenharmony_ci     * @param { 'estimatedCaptureDuration' } type - Event type.
830561847f8eSopenharmony_ci     * @param { AsyncCallback<number> } callback - Callback used to notify the estimated capture duration (in milliseconds).
830661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
830761847f8eSopenharmony_ci     * @since 12
830861847f8eSopenharmony_ci     */
830961847f8eSopenharmony_ci    on(type: 'estimatedCaptureDuration', callback: AsyncCallback<number>): void;
831061847f8eSopenharmony_ci
831161847f8eSopenharmony_ci    /**
831261847f8eSopenharmony_ci     * Unsubscribes from estimated capture duration event callback.
831361847f8eSopenharmony_ci     *
831461847f8eSopenharmony_ci     * @param { 'estimatedCaptureDuration' } type - Event type.
831561847f8eSopenharmony_ci     * @param { AsyncCallback<number> } callback - Callback used to notify the estimated capture duration (in milliseconds).
831661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
831761847f8eSopenharmony_ci     * @since 12
831861847f8eSopenharmony_ci     */
831961847f8eSopenharmony_ci    off(type: 'estimatedCaptureDuration', callback?: AsyncCallback<number>): void;
832061847f8eSopenharmony_ci
832161847f8eSopenharmony_ci    /**
832261847f8eSopenharmony_ci     * Subscribes to error events.
832361847f8eSopenharmony_ci     *
832461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
832561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the photo output errors.
832661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
832761847f8eSopenharmony_ci     * @since 10
832861847f8eSopenharmony_ci     */
832961847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
833061847f8eSopenharmony_ci
833161847f8eSopenharmony_ci    /**
833261847f8eSopenharmony_ci     * Unsubscribes from error events.
833361847f8eSopenharmony_ci     *
833461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
833561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the photo output errors.
833661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
833761847f8eSopenharmony_ci     * @since 10
833861847f8eSopenharmony_ci     */
833961847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
834061847f8eSopenharmony_ci
834161847f8eSopenharmony_ci    /**
834261847f8eSopenharmony_ci     * Gets the current preconfig type if you had already call preconfig interface.
834361847f8eSopenharmony_ci     *
834461847f8eSopenharmony_ci     * @returns { Profile } The current preconfig type.
834561847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
834661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
834761847f8eSopenharmony_ci     * @since 12
834861847f8eSopenharmony_ci     */
834961847f8eSopenharmony_ci    getActiveProfile(): Profile;
835061847f8eSopenharmony_ci
835161847f8eSopenharmony_ci    /**
835261847f8eSopenharmony_ci     * Checks whether PhotoOutput supports quick thumbnail.
835361847f8eSopenharmony_ci     * This method is valid after Session.addInput() and Session.addOutput(photoOutput) are called.
835461847f8eSopenharmony_ci     *
835561847f8eSopenharmony_ci     * @returns { boolean } Whether quick thumbnail is supported.
835661847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - session is not running.
835761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
835861847f8eSopenharmony_ci     * @systemapi
835961847f8eSopenharmony_ci     * @since 10
836061847f8eSopenharmony_ci     */
836161847f8eSopenharmony_ci    /**
836261847f8eSopenharmony_ci     * Checks whether PhotoOutput supports quick thumbnail.
836361847f8eSopenharmony_ci     * This method is valid after Session.addInput() and Session.addOutput(photoOutput) are called.
836461847f8eSopenharmony_ci     *
836561847f8eSopenharmony_ci     * @returns { boolean } Whether quick thumbnail is supported.
836661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
836761847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - session is not running.
836861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
836961847f8eSopenharmony_ci     * @systemapi
837061847f8eSopenharmony_ci     * @since 12
837161847f8eSopenharmony_ci     */
837261847f8eSopenharmony_ci    isQuickThumbnailSupported(): boolean;
837361847f8eSopenharmony_ci
837461847f8eSopenharmony_ci    /**
837561847f8eSopenharmony_ci     * Enables or disables quick thumbnail.
837661847f8eSopenharmony_ci     * The method must be called after Session.addInput() and Session.addOutput(photoOutput) are called.
837761847f8eSopenharmony_ci     * To avoid stream reconfiguration and performance loss,
837861847f8eSopenharmony_ci     * you are advised to call the method before Session.commitConfig().
837961847f8eSopenharmony_ci     * 
838061847f8eSopenharmony_ci     * @param { boolean } enabled - The value TRUE means to enable quick thumbnail, and FALSE means the opposite.
838161847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - session is not running.
838261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
838361847f8eSopenharmony_ci     * @systemapi
838461847f8eSopenharmony_ci     * @since 10
838561847f8eSopenharmony_ci     */
838661847f8eSopenharmony_ci    /**
838761847f8eSopenharmony_ci     * Enables or disables quick thumbnail.
838861847f8eSopenharmony_ci     * The method must be called after Session.addInput() and Session.addOutput(photoOutput) are called.
838961847f8eSopenharmony_ci     * To avoid stream reconfiguration and performance loss,
839061847f8eSopenharmony_ci     * you are advised to call the method before Session.commitConfig().
839161847f8eSopenharmony_ci     * 
839261847f8eSopenharmony_ci     * @param { boolean } enabled - The value TRUE means to enable quick thumbnail, and FALSE means the opposite.
839361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
839461847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
839561847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - session is not running.
839661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
839761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
839861847f8eSopenharmony_ci     * @systemapi
839961847f8eSopenharmony_ci     * @since 12
840061847f8eSopenharmony_ci     */
840161847f8eSopenharmony_ci    enableQuickThumbnail(enabled: boolean): void;
840261847f8eSopenharmony_ci
840361847f8eSopenharmony_ci    /**
840461847f8eSopenharmony_ci     * Subscribes to camera thumbnail events.
840561847f8eSopenharmony_ci     * This method is valid only after enableQuickThumbnail(true) is called.
840661847f8eSopenharmony_ci     *
840761847f8eSopenharmony_ci     * @param { 'quickThumbnail' } type - Event type.
840861847f8eSopenharmony_ci     * @param { AsyncCallback<image.PixelMap> } callback - Callback used to get the quick thumbnail.
840961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
841061847f8eSopenharmony_ci     * @systemapi
841161847f8eSopenharmony_ci     * @since 10
841261847f8eSopenharmony_ci     */
841361847f8eSopenharmony_ci    on(type: 'quickThumbnail', callback: AsyncCallback<image.PixelMap>): void;
841461847f8eSopenharmony_ci
841561847f8eSopenharmony_ci    /**
841661847f8eSopenharmony_ci     * Unsubscribes from camera thumbnail events.
841761847f8eSopenharmony_ci     * This method is valid only after enableQuickThumbnail(true) is called.
841861847f8eSopenharmony_ci     *
841961847f8eSopenharmony_ci     * @param { 'quickThumbnail' } type - Event type.
842061847f8eSopenharmony_ci     * @param { AsyncCallback<image.PixelMap> } callback - Callback used to get the quick thumbnail.
842161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
842261847f8eSopenharmony_ci     * @systemapi
842361847f8eSopenharmony_ci     * @since 10
842461847f8eSopenharmony_ci     */
842561847f8eSopenharmony_ci    off(type: 'quickThumbnail', callback?: AsyncCallback<image.PixelMap>): void;
842661847f8eSopenharmony_ci
842761847f8eSopenharmony_ci    /**
842861847f8eSopenharmony_ci     * Confirm if the auto high quality photo supported.
842961847f8eSopenharmony_ci     *
843061847f8eSopenharmony_ci     * @returns { boolean } TRUE if the auto high quality photo is supported.
843161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
843261847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - session is not running.
843361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
843461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
843561847f8eSopenharmony_ci     * @systemapi
843661847f8eSopenharmony_ci     * @since 12
843761847f8eSopenharmony_ci     */
843861847f8eSopenharmony_ci    isAutoHighQualityPhotoSupported(): boolean;
843961847f8eSopenharmony_ci
844061847f8eSopenharmony_ci    /**
844161847f8eSopenharmony_ci     * Enable auto high quality photo.
844261847f8eSopenharmony_ci     *
844361847f8eSopenharmony_ci     * @param { boolean } enabled - Target state for auto high quality photo.
844461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
844561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
844661847f8eSopenharmony_ci     * @throws { BusinessError } 7400104 - session is not running.
844761847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
844861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
844961847f8eSopenharmony_ci     * @systemapi
845061847f8eSopenharmony_ci     * @since 12
845161847f8eSopenharmony_ci     */
845261847f8eSopenharmony_ci    enableAutoHighQualityPhoto(enabled: boolean): void;
845361847f8eSopenharmony_ci
845461847f8eSopenharmony_ci    /**
845561847f8eSopenharmony_ci     * Confirm if the auto cloud image enhancement is supported.
845661847f8eSopenharmony_ci     *
845761847f8eSopenharmony_ci     * @returns { boolean } TRUE if the auto cloud image enhancement is supported.
845861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
845961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
846061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
846161847f8eSopenharmony_ci     * @systemapi
846261847f8eSopenharmony_ci     * @since 13
846361847f8eSopenharmony_ci     */
846461847f8eSopenharmony_ci     isAutoCloudImageEnhancementSupported(): boolean;
846561847f8eSopenharmony_ci
846661847f8eSopenharmony_ci    /**
846761847f8eSopenharmony_ci     * Enable auto cloud image enhancement
846861847f8eSopenharmony_ci     *
846961847f8eSopenharmony_ci     * @param { boolean } enabled - Target state for auto cloud image enhancement.
847061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
847161847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
847261847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
847361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
847461847f8eSopenharmony_ci     * @systemapi
847561847f8eSopenharmony_ci     * @since 13
847661847f8eSopenharmony_ci     */
847761847f8eSopenharmony_ci     enableAutoCloudImageEnhancement(enabled: boolean): void;
847861847f8eSopenharmony_ci
847961847f8eSopenharmony_ci    /**
848061847f8eSopenharmony_ci     * Confirm if moving photo supported.
848161847f8eSopenharmony_ci     *
848261847f8eSopenharmony_ci     * @returns { boolean } TRUE if the moving photo is supported.
848361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
848461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
848561847f8eSopenharmony_ci     * @since 12
848661847f8eSopenharmony_ci     */
848761847f8eSopenharmony_ci    isMovingPhotoSupported(): boolean;
848861847f8eSopenharmony_ci
848961847f8eSopenharmony_ci    /**
849061847f8eSopenharmony_ci     * Enable moving photo.
849161847f8eSopenharmony_ci     *
849261847f8eSopenharmony_ci     * @permission ohos.permission.MICROPHONE
849361847f8eSopenharmony_ci     * @param { boolean } enabled - Target state for moving photo.
849461847f8eSopenharmony_ci     * @throws { BusinessError } 201 - permission denied.
849561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
849661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
849761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
849861847f8eSopenharmony_ci     * @since 12
849961847f8eSopenharmony_ci     */
850061847f8eSopenharmony_ci    enableMovingPhoto(enabled: boolean): void;
850161847f8eSopenharmony_ci
850261847f8eSopenharmony_ci    /**
850361847f8eSopenharmony_ci     * Gets the photo rotation angle.
850461847f8eSopenharmony_ci     *
850561847f8eSopenharmony_ci     * @param { number } deviceDegree - The current device rotation degree.
850661847f8eSopenharmony_ci     * @returns { ImageRotation } The photo rotation angle.
850761847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
850861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
850961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
851061847f8eSopenharmony_ci     * @since 12
851161847f8eSopenharmony_ci     */
851261847f8eSopenharmony_ci    getPhotoRotation(deviceDegree: number): ImageRotation;
851361847f8eSopenharmony_ci  }
851461847f8eSopenharmony_ci
851561847f8eSopenharmony_ci  /**
851661847f8eSopenharmony_ci   * Frame shutter callback info.
851761847f8eSopenharmony_ci   *
851861847f8eSopenharmony_ci   * @typedef FrameShutterInfo
851961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
852061847f8eSopenharmony_ci   * @since 10
852161847f8eSopenharmony_ci   */
852261847f8eSopenharmony_ci  interface FrameShutterInfo {
852361847f8eSopenharmony_ci    /**
852461847f8eSopenharmony_ci     * Capture id.
852561847f8eSopenharmony_ci     *
852661847f8eSopenharmony_ci     * @type { number }
852761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
852861847f8eSopenharmony_ci     * @since 10
852961847f8eSopenharmony_ci     */
853061847f8eSopenharmony_ci    captureId: number;
853161847f8eSopenharmony_ci    /**
853261847f8eSopenharmony_ci     * Timestamp for frame.
853361847f8eSopenharmony_ci     *
853461847f8eSopenharmony_ci     * @type { number }
853561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
853661847f8eSopenharmony_ci     * @since 10
853761847f8eSopenharmony_ci     */
853861847f8eSopenharmony_ci    timestamp: number;
853961847f8eSopenharmony_ci  }
854061847f8eSopenharmony_ci
854161847f8eSopenharmony_ci  /**
854261847f8eSopenharmony_ci   * Frame shutter end callback info.
854361847f8eSopenharmony_ci   *
854461847f8eSopenharmony_ci   * @typedef FrameShutterEndInfo
854561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
854661847f8eSopenharmony_ci   * @since 12
854761847f8eSopenharmony_ci   */
854861847f8eSopenharmony_ci  interface FrameShutterEndInfo {
854961847f8eSopenharmony_ci    /**
855061847f8eSopenharmony_ci     * Capture id.
855161847f8eSopenharmony_ci     *
855261847f8eSopenharmony_ci     * @type { number }
855361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
855461847f8eSopenharmony_ci     * @since 12
855561847f8eSopenharmony_ci     */
855661847f8eSopenharmony_ci    captureId: number;
855761847f8eSopenharmony_ci  }
855861847f8eSopenharmony_ci
855961847f8eSopenharmony_ci  /**
856061847f8eSopenharmony_ci   * Capture start info.
856161847f8eSopenharmony_ci   *
856261847f8eSopenharmony_ci   * @typedef CaptureStartInfo
856361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
856461847f8eSopenharmony_ci   * @since 11
856561847f8eSopenharmony_ci   */
856661847f8eSopenharmony_ci  interface CaptureStartInfo {
856761847f8eSopenharmony_ci    /**
856861847f8eSopenharmony_ci     * Capture id.
856961847f8eSopenharmony_ci     *
857061847f8eSopenharmony_ci     * @type { number }
857161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
857261847f8eSopenharmony_ci     * @since 11
857361847f8eSopenharmony_ci     */
857461847f8eSopenharmony_ci    captureId: number;
857561847f8eSopenharmony_ci    /**
857661847f8eSopenharmony_ci     * Time(in milliseconds) is the shutter time for the photo.
857761847f8eSopenharmony_ci     *
857861847f8eSopenharmony_ci     * @type { number }
857961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
858061847f8eSopenharmony_ci     * @since 11
858161847f8eSopenharmony_ci     */
858261847f8eSopenharmony_ci    time: number;
858361847f8eSopenharmony_ci  }
858461847f8eSopenharmony_ci
858561847f8eSopenharmony_ci  /**
858661847f8eSopenharmony_ci   * Capture end info.
858761847f8eSopenharmony_ci   *
858861847f8eSopenharmony_ci   * @typedef CaptureEndInfo
858961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
859061847f8eSopenharmony_ci   * @since 10
859161847f8eSopenharmony_ci   */
859261847f8eSopenharmony_ci  interface CaptureEndInfo {
859361847f8eSopenharmony_ci    /**
859461847f8eSopenharmony_ci     * Capture id.
859561847f8eSopenharmony_ci     *
859661847f8eSopenharmony_ci     * @type { number }
859761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
859861847f8eSopenharmony_ci     * @since 10
859961847f8eSopenharmony_ci     */
860061847f8eSopenharmony_ci    captureId: number;
860161847f8eSopenharmony_ci    /**
860261847f8eSopenharmony_ci     * Frame count.
860361847f8eSopenharmony_ci     *
860461847f8eSopenharmony_ci     * @type { number }
860561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
860661847f8eSopenharmony_ci     * @since 10
860761847f8eSopenharmony_ci     */
860861847f8eSopenharmony_ci    frameCount: number;
860961847f8eSopenharmony_ci  }
861061847f8eSopenharmony_ci
861161847f8eSopenharmony_ci  /**
861261847f8eSopenharmony_ci   * Deferred video enhancement info.
861361847f8eSopenharmony_ci   *
861461847f8eSopenharmony_ci   * @typedef DeferredVideoEnhancementInfo
861561847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
861661847f8eSopenharmony_ci   * @systemapi
861761847f8eSopenharmony_ci   * @since 13
861861847f8eSopenharmony_ci   */
861961847f8eSopenharmony_ci  interface DeferredVideoEnhancementInfo {
862061847f8eSopenharmony_ci    /**
862161847f8eSopenharmony_ci     * Check whether deferred video enhancement available.
862261847f8eSopenharmony_ci     *
862361847f8eSopenharmony_ci     * @type { boolean }
862461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
862561847f8eSopenharmony_ci     * @systemapi
862661847f8eSopenharmony_ci     * @since 13
862761847f8eSopenharmony_ci     * @readonly
862861847f8eSopenharmony_ci     */
862961847f8eSopenharmony_ci    readonly isDeferredVideoEnhancementAvailable: boolean;
863061847f8eSopenharmony_ci    /**
863161847f8eSopenharmony_ci     * Video identifier.
863261847f8eSopenharmony_ci     *
863361847f8eSopenharmony_ci     * @type { ?string }
863461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
863561847f8eSopenharmony_ci     * @systemapi
863661847f8eSopenharmony_ci     * @since 13
863761847f8eSopenharmony_ci     * @readonly
863861847f8eSopenharmony_ci     */
863961847f8eSopenharmony_ci    readonly videoId?: string;
864061847f8eSopenharmony_ci  }
864161847f8eSopenharmony_ci
864261847f8eSopenharmony_ci  /**
864361847f8eSopenharmony_ci   * Video output object.
864461847f8eSopenharmony_ci   *
864561847f8eSopenharmony_ci   * @interface VideoOutput
864661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
864761847f8eSopenharmony_ci   * @since 10
864861847f8eSopenharmony_ci   */
864961847f8eSopenharmony_ci  interface VideoOutput extends CameraOutput {
865061847f8eSopenharmony_ci    /**
865161847f8eSopenharmony_ci     * Start video output.
865261847f8eSopenharmony_ci     *
865361847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
865461847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
865561847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
865661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
865761847f8eSopenharmony_ci     * @since 10
865861847f8eSopenharmony_ci     */
865961847f8eSopenharmony_ci    start(callback: AsyncCallback<void>): void;
866061847f8eSopenharmony_ci
866161847f8eSopenharmony_ci    /**
866261847f8eSopenharmony_ci     * Start video output.
866361847f8eSopenharmony_ci     *
866461847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
866561847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
866661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
866761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
866861847f8eSopenharmony_ci     * @since 10
866961847f8eSopenharmony_ci     */
867061847f8eSopenharmony_ci    start(): Promise<void>;
867161847f8eSopenharmony_ci
867261847f8eSopenharmony_ci    /**
867361847f8eSopenharmony_ci     * Stop video output.
867461847f8eSopenharmony_ci     *
867561847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
867661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
867761847f8eSopenharmony_ci     * @since 10
867861847f8eSopenharmony_ci     */
867961847f8eSopenharmony_ci    stop(callback: AsyncCallback<void>): void;
868061847f8eSopenharmony_ci
868161847f8eSopenharmony_ci    /**
868261847f8eSopenharmony_ci     * Stop video output.
868361847f8eSopenharmony_ci     *
868461847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
868561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
868661847f8eSopenharmony_ci     * @since 10
868761847f8eSopenharmony_ci     */
868861847f8eSopenharmony_ci    stop(): Promise<void>;
868961847f8eSopenharmony_ci
869061847f8eSopenharmony_ci    /**
869161847f8eSopenharmony_ci     * Determine whether video mirror is supported.
869261847f8eSopenharmony_ci     *
869361847f8eSopenharmony_ci     * @returns { boolean } Is video mirror supported.
869461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
869561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
869661847f8eSopenharmony_ci     * @systemapi
869761847f8eSopenharmony_ci     * @since 12
869861847f8eSopenharmony_ci     */
869961847f8eSopenharmony_ci    isMirrorSupported(): boolean;
870061847f8eSopenharmony_ci
870161847f8eSopenharmony_ci    /**
870261847f8eSopenharmony_ci     * Enable mirror for video capture.
870361847f8eSopenharmony_ci     *
870461847f8eSopenharmony_ci     * @param { boolean } enabled - enable video mirror if TRUE.
870561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
870661847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
870761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
870861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
870961847f8eSopenharmony_ci     * @systemapi
871061847f8eSopenharmony_ci     * @since 12
871161847f8eSopenharmony_ci     */
871261847f8eSopenharmony_ci    enableMirror(enabled: boolean): void;
871361847f8eSopenharmony_ci
871461847f8eSopenharmony_ci    /**
871561847f8eSopenharmony_ci     * Get supported frame rates which can be set during session running.
871661847f8eSopenharmony_ci     *
871761847f8eSopenharmony_ci     * @returns { Array<FrameRateRange> } The array of supported frame rate range.
871861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
871961847f8eSopenharmony_ci     * @since 12
872061847f8eSopenharmony_ci     */
872161847f8eSopenharmony_ci    getSupportedFrameRates(): Array<FrameRateRange>
872261847f8eSopenharmony_ci
872361847f8eSopenharmony_ci    /**
872461847f8eSopenharmony_ci     * Set a frame rate range.
872561847f8eSopenharmony_ci     *
872661847f8eSopenharmony_ci     * @param { number } minFps - Minimum frame rate per second.
872761847f8eSopenharmony_ci     * @param { number } maxFps - Maximum frame rate per second.
872861847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
872961847f8eSopenharmony_ci     * @throws { BusinessError } 7400110 - Unresolved conflicts with current configurations.
873061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
873161847f8eSopenharmony_ci     * @since 12
873261847f8eSopenharmony_ci     */
873361847f8eSopenharmony_ci    setFrameRate(minFps: number, maxFps: number): void
873461847f8eSopenharmony_ci
873561847f8eSopenharmony_ci    /**
873661847f8eSopenharmony_ci     * Get active frame rate range which has been set before.
873761847f8eSopenharmony_ci     *
873861847f8eSopenharmony_ci     * @returns { FrameRateRange } The active frame rate range.
873961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
874061847f8eSopenharmony_ci     * @since 12
874161847f8eSopenharmony_ci     */
874261847f8eSopenharmony_ci    getActiveFrameRate(): FrameRateRange;
874361847f8eSopenharmony_ci
874461847f8eSopenharmony_ci    /**
874561847f8eSopenharmony_ci     * Gets the video rotation angle.
874661847f8eSopenharmony_ci     *
874761847f8eSopenharmony_ci     * @param { number } deviceDegree - The current device rotation degree.
874861847f8eSopenharmony_ci     * @returns { ImageRotation } The video rotation angle.
874961847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
875061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
875161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
875261847f8eSopenharmony_ci     * @since 12
875361847f8eSopenharmony_ci     */
875461847f8eSopenharmony_ci    getVideoRotation(deviceDegree: number): ImageRotation;
875561847f8eSopenharmony_ci
875661847f8eSopenharmony_ci    /**
875761847f8eSopenharmony_ci     * Confirm if auto deferred video enhancement is supported in the specific device.
875861847f8eSopenharmony_ci     *
875961847f8eSopenharmony_ci     * @returns { boolean } TRUE if auto deferred video enhancement is supported.
876061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
876161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
876261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
876361847f8eSopenharmony_ci     * @systemapi
876461847f8eSopenharmony_ci     * @since 13
876561847f8eSopenharmony_ci     */
876661847f8eSopenharmony_ci    isAutoDeferredVideoEnhancementSupported(): boolean;
876761847f8eSopenharmony_ci
876861847f8eSopenharmony_ci    /**
876961847f8eSopenharmony_ci     * Confirm if auto deferred video enhancement is enabled.
877061847f8eSopenharmony_ci     *
877161847f8eSopenharmony_ci     * @returns { boolean } TRUE if auto deferred video enhancement is enabled.
877261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
877361847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
877461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
877561847f8eSopenharmony_ci     * @systemapi
877661847f8eSopenharmony_ci     * @since 13
877761847f8eSopenharmony_ci     */
877861847f8eSopenharmony_ci    isAutoDeferredVideoEnhancementEnabled(): boolean;
877961847f8eSopenharmony_ci
878061847f8eSopenharmony_ci    /**
878161847f8eSopenharmony_ci     * Enable auto deferred video enhancement if needed.
878261847f8eSopenharmony_ci     *
878361847f8eSopenharmony_ci     * @param { boolean } enabled - Status of auto deferred video enhancement.
878461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
878561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
878661847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
878761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
878861847f8eSopenharmony_ci     * @systemapi
878961847f8eSopenharmony_ci     * @since 13
879061847f8eSopenharmony_ci     */
879161847f8eSopenharmony_ci    enableAutoDeferredVideoEnhancement(enabled: boolean): void;
879261847f8eSopenharmony_ci
879361847f8eSopenharmony_ci    /**
879461847f8eSopenharmony_ci     * Subscribes deferred video enhancement info callback.
879561847f8eSopenharmony_ci     *
879661847f8eSopenharmony_ci     * @param { 'deferredVideoEnhancementInfo' } type - Event type.
879761847f8eSopenharmony_ci     * @param { AsyncCallback<DeferredVideoEnhanceInfo> } callback - Callback used to return the result.
879861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
879961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
880061847f8eSopenharmony_ci     * @systemapi
880161847f8eSopenharmony_ci     * @since 13
880261847f8eSopenharmony_ci     */
880361847f8eSopenharmony_ci    on(type: 'deferredVideoEnhancementInfo', callback: AsyncCallback<DeferredVideoEnhancementInfo>): void;
880461847f8eSopenharmony_ci
880561847f8eSopenharmony_ci    /**
880661847f8eSopenharmony_ci     * Unsubscribes from deferred video enhancement info callback.
880761847f8eSopenharmony_ci     *
880861847f8eSopenharmony_ci     * @param { 'deferredVideoEnhancementInfo' } type - Event type.
880961847f8eSopenharmony_ci     * @param { AsyncCallback<DeferredVideoEnhancementInfo> } callback - Callback used to return the result.
881061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
881161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
881261847f8eSopenharmony_ci     * @systemapi
881361847f8eSopenharmony_ci     * @since 13
881461847f8eSopenharmony_ci     */
881561847f8eSopenharmony_ci    off(type: 'deferredVideoEnhancementInfo', callback?: AsyncCallback<DeferredVideoEnhancementInfo>): void;
881661847f8eSopenharmony_ci
881761847f8eSopenharmony_ci    /**
881861847f8eSopenharmony_ci     * Subscribes frame start event callback.
881961847f8eSopenharmony_ci     *
882061847f8eSopenharmony_ci     * @param { 'frameStart' } type - Event type.
882161847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
882261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
882361847f8eSopenharmony_ci     * @since 10
882461847f8eSopenharmony_ci     */
882561847f8eSopenharmony_ci    on(type: 'frameStart', callback: AsyncCallback<void>): void;
882661847f8eSopenharmony_ci
882761847f8eSopenharmony_ci    /**
882861847f8eSopenharmony_ci     * Unsubscribes from frame start event callback.
882961847f8eSopenharmony_ci     *
883061847f8eSopenharmony_ci     * @param { 'frameStart' } type - Event type.
883161847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
883261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
883361847f8eSopenharmony_ci     * @since 10
883461847f8eSopenharmony_ci     */
883561847f8eSopenharmony_ci    off(type: 'frameStart', callback?: AsyncCallback<void>): void;
883661847f8eSopenharmony_ci
883761847f8eSopenharmony_ci    /**
883861847f8eSopenharmony_ci     * Subscribes frame end event callback.
883961847f8eSopenharmony_ci     *
884061847f8eSopenharmony_ci     * @param { 'frameEnd' } type - Event type.
884161847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
884261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
884361847f8eSopenharmony_ci     * @since 10
884461847f8eSopenharmony_ci     */
884561847f8eSopenharmony_ci    on(type: 'frameEnd', callback: AsyncCallback<void>): void;
884661847f8eSopenharmony_ci
884761847f8eSopenharmony_ci    /**
884861847f8eSopenharmony_ci     * Unsubscribes from frame end event callback.
884961847f8eSopenharmony_ci     *
885061847f8eSopenharmony_ci     * @param { 'frameEnd' } type - Event type.
885161847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
885261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
885361847f8eSopenharmony_ci     * @since 10
885461847f8eSopenharmony_ci     */
885561847f8eSopenharmony_ci    off(type: 'frameEnd', callback?: AsyncCallback<void>): void;
885661847f8eSopenharmony_ci
885761847f8eSopenharmony_ci    /**
885861847f8eSopenharmony_ci     * Subscribes to error events.
885961847f8eSopenharmony_ci     *
886061847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
886161847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the video output errors.
886261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
886361847f8eSopenharmony_ci     * @since 10
886461847f8eSopenharmony_ci     */
886561847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
886661847f8eSopenharmony_ci
886761847f8eSopenharmony_ci    /**
886861847f8eSopenharmony_ci     * Unsubscribes from error events.
886961847f8eSopenharmony_ci     *
887061847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
887161847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the video output errors.
887261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
887361847f8eSopenharmony_ci     * @since 10
887461847f8eSopenharmony_ci     */
887561847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
887661847f8eSopenharmony_ci
887761847f8eSopenharmony_ci    /**
887861847f8eSopenharmony_ci     * Gets the current preconfig type if you had already call preconfig interface.
887961847f8eSopenharmony_ci     *
888061847f8eSopenharmony_ci     * @returns { VideoProfile } The current preconfig type.
888161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
888261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
888361847f8eSopenharmony_ci     * @since 12
888461847f8eSopenharmony_ci     */
888561847f8eSopenharmony_ci    getActiveProfile(): VideoProfile;
888661847f8eSopenharmony_ci
888761847f8eSopenharmony_ci    /**
888861847f8eSopenharmony_ci     * Get supported video meta types.
888961847f8eSopenharmony_ci     * @returns { Array<VideoMetaType> } The array of supported video meta type.
889061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
889161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
889261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
889361847f8eSopenharmony_ci     * @systemapi
889461847f8eSopenharmony_ci     * @since 12
889561847f8eSopenharmony_ci     */
889661847f8eSopenharmony_ci    getSupportedVideoMetaTypes(): Array<VideoMetaType>;
889761847f8eSopenharmony_ci
889861847f8eSopenharmony_ci    /**
889961847f8eSopenharmony_ci     * Attach a meta surface to VideoOutput.
890061847f8eSopenharmony_ci     * @param { string } surfaceId - Surface object id used for receiving meta infos.
890161847f8eSopenharmony_ci     * @param { VideoMetaType } type - Video meta type.
890261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
890361847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
890461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
890561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
890661847f8eSopenharmony_ci     * @systemapi
890761847f8eSopenharmony_ci     * @since 12
890861847f8eSopenharmony_ci     */
890961847f8eSopenharmony_ci    attachMetaSurface(surfaceId: string, type: VideoMetaType): void;
891061847f8eSopenharmony_ci  }
891161847f8eSopenharmony_ci
891261847f8eSopenharmony_ci  /**
891361847f8eSopenharmony_ci   * Video meta type.
891461847f8eSopenharmony_ci   *
891561847f8eSopenharmony_ci   * @enum { number }
891661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
891761847f8eSopenharmony_ci   * @systemapi
891861847f8eSopenharmony_ci   * @since 12
891961847f8eSopenharmony_ci   */
892061847f8eSopenharmony_ci  enum VideoMetaType {
892161847f8eSopenharmony_ci    /**
892261847f8eSopenharmony_ci     * Video meta type for storing maker info.
892361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
892461847f8eSopenharmony_ci     * @systemapi
892561847f8eSopenharmony_ci     * @since 12
892661847f8eSopenharmony_ci     */
892761847f8eSopenharmony_ci    VIDEO_META_MAKER_INFO = 0,
892861847f8eSopenharmony_ci  }
892961847f8eSopenharmony_ci
893061847f8eSopenharmony_ci  /**
893161847f8eSopenharmony_ci   * Metadata object type.
893261847f8eSopenharmony_ci   *
893361847f8eSopenharmony_ci   * @enum { number }
893461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
893561847f8eSopenharmony_ci   * @since 10
893661847f8eSopenharmony_ci   */
893761847f8eSopenharmony_ci  enum MetadataObjectType {
893861847f8eSopenharmony_ci    /**
893961847f8eSopenharmony_ci     * Face detection type.
894061847f8eSopenharmony_ci     *
894161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
894261847f8eSopenharmony_ci     * @since 10
894361847f8eSopenharmony_ci     */
894461847f8eSopenharmony_ci    FACE_DETECTION = 0,
894561847f8eSopenharmony_ci
894661847f8eSopenharmony_ci    /**
894761847f8eSopenharmony_ci     * Human body detection type.
894861847f8eSopenharmony_ci     *
894961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
895061847f8eSopenharmony_ci     * @systemapi
895161847f8eSopenharmony_ci     * @since 13
895261847f8eSopenharmony_ci     */
895361847f8eSopenharmony_ci    HUMAN_BODY = 1,
895461847f8eSopenharmony_ci
895561847f8eSopenharmony_ci    /**
895661847f8eSopenharmony_ci     * Cat face detection type.
895761847f8eSopenharmony_ci     *
895861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
895961847f8eSopenharmony_ci     * @systemapi
896061847f8eSopenharmony_ci     * @since 13
896161847f8eSopenharmony_ci     */
896261847f8eSopenharmony_ci    CAT_FACE = 2,
896361847f8eSopenharmony_ci
896461847f8eSopenharmony_ci    /**
896561847f8eSopenharmony_ci     * Cat body detection type.
896661847f8eSopenharmony_ci     *
896761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
896861847f8eSopenharmony_ci     * @systemapi
896961847f8eSopenharmony_ci     * @since 13
897061847f8eSopenharmony_ci     */
897161847f8eSopenharmony_ci    CAT_BODY = 3,
897261847f8eSopenharmony_ci
897361847f8eSopenharmony_ci    /**
897461847f8eSopenharmony_ci     * Dog face detection type.
897561847f8eSopenharmony_ci     *
897661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
897761847f8eSopenharmony_ci     * @systemapi
897861847f8eSopenharmony_ci     * @since 13
897961847f8eSopenharmony_ci     */
898061847f8eSopenharmony_ci    DOG_FACE = 4,
898161847f8eSopenharmony_ci
898261847f8eSopenharmony_ci    /**
898361847f8eSopenharmony_ci     * Dog body detection type.
898461847f8eSopenharmony_ci     *
898561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
898661847f8eSopenharmony_ci     * @systemapi
898761847f8eSopenharmony_ci     * @since 13
898861847f8eSopenharmony_ci     */
898961847f8eSopenharmony_ci    DOG_BODY = 5,
899061847f8eSopenharmony_ci
899161847f8eSopenharmony_ci    /**
899261847f8eSopenharmony_ci     * Salient detection type.
899361847f8eSopenharmony_ci     *
899461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
899561847f8eSopenharmony_ci     * @systemapi
899661847f8eSopenharmony_ci     * @since 13
899761847f8eSopenharmony_ci     */
899861847f8eSopenharmony_ci    SALIENT_DETECTION = 6,
899961847f8eSopenharmony_ci
900061847f8eSopenharmony_ci    /**
900161847f8eSopenharmony_ci     * Barcode detection type.
900261847f8eSopenharmony_ci     *
900361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
900461847f8eSopenharmony_ci     * @systemapi
900561847f8eSopenharmony_ci     * @since 13
900661847f8eSopenharmony_ci     */
900761847f8eSopenharmony_ci    BAR_CODE_DETECTION = 7
900861847f8eSopenharmony_ci  }
900961847f8eSopenharmony_ci
901061847f8eSopenharmony_ci  /**
901161847f8eSopenharmony_ci   * Enum for light painting tabletype.
901261847f8eSopenharmony_ci   *
901361847f8eSopenharmony_ci   * @enum { number }
901461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
901561847f8eSopenharmony_ci   * @systemapi
901661847f8eSopenharmony_ci   * @since 12
901761847f8eSopenharmony_ci   */
901861847f8eSopenharmony_ci  enum LightPaintingType {
901961847f8eSopenharmony_ci    /**
902061847f8eSopenharmony_ci     * Traffic trails effect.
902161847f8eSopenharmony_ci     *
902261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
902361847f8eSopenharmony_ci     * @systemapi
902461847f8eSopenharmony_ci     * @since 12
902561847f8eSopenharmony_ci     */
902661847f8eSopenharmony_ci    TRAFFIC_TRAILS = 0,
902761847f8eSopenharmony_ci
902861847f8eSopenharmony_ci    /**
902961847f8eSopenharmony_ci     * Star trails effect.
903061847f8eSopenharmony_ci     *
903161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
903261847f8eSopenharmony_ci     * @systemapi
903361847f8eSopenharmony_ci     * @since 12
903461847f8eSopenharmony_ci     */
903561847f8eSopenharmony_ci    STAR_TRAILS = 1,
903661847f8eSopenharmony_ci
903761847f8eSopenharmony_ci    /**
903861847f8eSopenharmony_ci     * Silky water effect.
903961847f8eSopenharmony_ci     *
904061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
904161847f8eSopenharmony_ci     * @systemapi
904261847f8eSopenharmony_ci     * @since 12
904361847f8eSopenharmony_ci     */
904461847f8eSopenharmony_ci    SILKY_WATER = 2,
904561847f8eSopenharmony_ci
904661847f8eSopenharmony_ci    /**
904761847f8eSopenharmony_ci     * Light graffiti effect.
904861847f8eSopenharmony_ci     *
904961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
905061847f8eSopenharmony_ci     * @systemapi
905161847f8eSopenharmony_ci     * @since 12
905261847f8eSopenharmony_ci     */
905361847f8eSopenharmony_ci    LIGHT_GRAFFITI = 3
905461847f8eSopenharmony_ci  }
905561847f8eSopenharmony_ci
905661847f8eSopenharmony_ci  /**
905761847f8eSopenharmony_ci   * Rectangle definition.
905861847f8eSopenharmony_ci   *
905961847f8eSopenharmony_ci   * @typedef Rect
906061847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
906161847f8eSopenharmony_ci   * @since 10
906261847f8eSopenharmony_ci   */
906361847f8eSopenharmony_ci  interface Rect {
906461847f8eSopenharmony_ci    /**
906561847f8eSopenharmony_ci     * X coordinator of top left point.
906661847f8eSopenharmony_ci     *
906761847f8eSopenharmony_ci     * @type { number }
906861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
906961847f8eSopenharmony_ci     * @since 10
907061847f8eSopenharmony_ci     */
907161847f8eSopenharmony_ci    topLeftX: number;
907261847f8eSopenharmony_ci    /**
907361847f8eSopenharmony_ci     * Y coordinator of top left point.
907461847f8eSopenharmony_ci     *
907561847f8eSopenharmony_ci     * @type { number }
907661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
907761847f8eSopenharmony_ci     * @since 10
907861847f8eSopenharmony_ci     */
907961847f8eSopenharmony_ci    topLeftY: number;
908061847f8eSopenharmony_ci    /**
908161847f8eSopenharmony_ci     * Width of this rectangle.
908261847f8eSopenharmony_ci     *
908361847f8eSopenharmony_ci     * @type { number }
908461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
908561847f8eSopenharmony_ci     * @since 10
908661847f8eSopenharmony_ci     */
908761847f8eSopenharmony_ci    width: number;
908861847f8eSopenharmony_ci    /**
908961847f8eSopenharmony_ci     * Height of this rectangle.
909061847f8eSopenharmony_ci     *
909161847f8eSopenharmony_ci     * @type { number }
909261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
909361847f8eSopenharmony_ci     * @since 10
909461847f8eSopenharmony_ci     */
909561847f8eSopenharmony_ci    height: number;
909661847f8eSopenharmony_ci  }
909761847f8eSopenharmony_ci
909861847f8eSopenharmony_ci  /**
909961847f8eSopenharmony_ci   * Enum for emotion type.
910061847f8eSopenharmony_ci   *
910161847f8eSopenharmony_ci   * @enum { number }
910261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
910361847f8eSopenharmony_ci   * @systemapi
910461847f8eSopenharmony_ci   * @since 13
910561847f8eSopenharmony_ci   */
910661847f8eSopenharmony_ci  enum Emotion {
910761847f8eSopenharmony_ci    /**
910861847f8eSopenharmony_ci     * Emotion type: Neutral.
910961847f8eSopenharmony_ci     *
911061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
911161847f8eSopenharmony_ci     * @systemapi
911261847f8eSopenharmony_ci     * @since 13
911361847f8eSopenharmony_ci     */
911461847f8eSopenharmony_ci    NEUTRAL = 0,
911561847f8eSopenharmony_ci  
911661847f8eSopenharmony_ci    /**
911761847f8eSopenharmony_ci     * Emotion type: Sadness.
911861847f8eSopenharmony_ci     *
911961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
912061847f8eSopenharmony_ci     * @systemapi
912161847f8eSopenharmony_ci     * @since 13
912261847f8eSopenharmony_ci     */
912361847f8eSopenharmony_ci    SADNESS = 1,
912461847f8eSopenharmony_ci
912561847f8eSopenharmony_ci    /**
912661847f8eSopenharmony_ci     * Emotion type: Smile.
912761847f8eSopenharmony_ci     *
912861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
912961847f8eSopenharmony_ci     * @systemapi
913061847f8eSopenharmony_ci     * @since 13
913161847f8eSopenharmony_ci     */
913261847f8eSopenharmony_ci    SMILE = 2,
913361847f8eSopenharmony_ci  
913461847f8eSopenharmony_ci    /**
913561847f8eSopenharmony_ci     * Emotion type: Surprise.
913661847f8eSopenharmony_ci     *
913761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
913861847f8eSopenharmony_ci     * @systemapi
913961847f8eSopenharmony_ci     * @since 13
914061847f8eSopenharmony_ci     */
914161847f8eSopenharmony_ci    SURPRISE = 3
914261847f8eSopenharmony_ci  }
914361847f8eSopenharmony_ci
914461847f8eSopenharmony_ci  /**
914561847f8eSopenharmony_ci   * Metadata object basis.
914661847f8eSopenharmony_ci   *
914761847f8eSopenharmony_ci   * @typedef MetadataObject
914861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
914961847f8eSopenharmony_ci   * @since 10
915061847f8eSopenharmony_ci   */
915161847f8eSopenharmony_ci  interface MetadataObject {
915261847f8eSopenharmony_ci    /**
915361847f8eSopenharmony_ci     * Metadata object type.
915461847f8eSopenharmony_ci     *
915561847f8eSopenharmony_ci     * @type { MetadataObjectType }
915661847f8eSopenharmony_ci     * @readonly
915761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
915861847f8eSopenharmony_ci     * @since 10
915961847f8eSopenharmony_ci     */
916061847f8eSopenharmony_ci    readonly type: MetadataObjectType;
916161847f8eSopenharmony_ci    /**
916261847f8eSopenharmony_ci     * Metadata object timestamp in milliseconds.
916361847f8eSopenharmony_ci     *
916461847f8eSopenharmony_ci     * @type { number }
916561847f8eSopenharmony_ci     * @readonly
916661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
916761847f8eSopenharmony_ci     * @since 10
916861847f8eSopenharmony_ci     */
916961847f8eSopenharmony_ci    readonly timestamp: number;
917061847f8eSopenharmony_ci    /**
917161847f8eSopenharmony_ci     * The axis-aligned bounding box of detected metadata object.
917261847f8eSopenharmony_ci     *
917361847f8eSopenharmony_ci     * @type { Rect }
917461847f8eSopenharmony_ci     * @readonly
917561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
917661847f8eSopenharmony_ci     * @since 10
917761847f8eSopenharmony_ci     */
917861847f8eSopenharmony_ci    readonly boundingBox: Rect;
917961847f8eSopenharmony_ci    /**
918061847f8eSopenharmony_ci     * Metadata object id.
918161847f8eSopenharmony_ci     *
918261847f8eSopenharmony_ci     * @type { number }
918361847f8eSopenharmony_ci     * @readonly
918461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
918561847f8eSopenharmony_ci     * @systemapi
918661847f8eSopenharmony_ci     * @since 13
918761847f8eSopenharmony_ci     */
918861847f8eSopenharmony_ci    readonly objectId: number;
918961847f8eSopenharmony_ci    /**
919061847f8eSopenharmony_ci     * Confidence for the detected type.
919161847f8eSopenharmony_ci     *
919261847f8eSopenharmony_ci     * @type { number }
919361847f8eSopenharmony_ci     * @readonly
919461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
919561847f8eSopenharmony_ci     * @systemapi
919661847f8eSopenharmony_ci     * @since 13
919761847f8eSopenharmony_ci     */
919861847f8eSopenharmony_ci    readonly confidence: number;
919961847f8eSopenharmony_ci  }
920061847f8eSopenharmony_ci
920161847f8eSopenharmony_ci  /**
920261847f8eSopenharmony_ci   * Metadata object for face.
920361847f8eSopenharmony_ci   *
920461847f8eSopenharmony_ci   * @typedef MetadataFaceObject
920561847f8eSopenharmony_ci   * @extends MetadataObject
920661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
920761847f8eSopenharmony_ci   * @systemapi
920861847f8eSopenharmony_ci   * @since 13
920961847f8eSopenharmony_ci   */
921061847f8eSopenharmony_ci  interface MetadataFaceObject extends MetadataObject {
921161847f8eSopenharmony_ci    /**
921261847f8eSopenharmony_ci     * Bounding box for left eye.
921361847f8eSopenharmony_ci     *
921461847f8eSopenharmony_ci     * @type { Rect }
921561847f8eSopenharmony_ci     * @readonly
921661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
921761847f8eSopenharmony_ci     * @systemapi
921861847f8eSopenharmony_ci     * @since 13
921961847f8eSopenharmony_ci     */
922061847f8eSopenharmony_ci    readonly leftEyeBoundingBox: Rect;
922161847f8eSopenharmony_ci
922261847f8eSopenharmony_ci    /**
922361847f8eSopenharmony_ci     * Bounding box for right eye.
922461847f8eSopenharmony_ci     *
922561847f8eSopenharmony_ci     * @type { Rect }
922661847f8eSopenharmony_ci     * @readonly
922761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
922861847f8eSopenharmony_ci     * @systemapi
922961847f8eSopenharmony_ci     * @since 13
923061847f8eSopenharmony_ci     */
923161847f8eSopenharmony_ci    readonly rightEyeBoundingBox: Rect;
923261847f8eSopenharmony_ci
923361847f8eSopenharmony_ci    /**
923461847f8eSopenharmony_ci     * Emotion type for face.
923561847f8eSopenharmony_ci     *
923661847f8eSopenharmony_ci     * @type { Emotion }
923761847f8eSopenharmony_ci     * @readonly
923861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
923961847f8eSopenharmony_ci     * @systemapi
924061847f8eSopenharmony_ci     * @since 13
924161847f8eSopenharmony_ci     */
924261847f8eSopenharmony_ci    readonly emotion: Emotion;
924361847f8eSopenharmony_ci
924461847f8eSopenharmony_ci    /**
924561847f8eSopenharmony_ci     * Emotion confidence.
924661847f8eSopenharmony_ci     *
924761847f8eSopenharmony_ci     * @type { number }
924861847f8eSopenharmony_ci     * @readonly
924961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
925061847f8eSopenharmony_ci     * @systemapi
925161847f8eSopenharmony_ci     * @since 13
925261847f8eSopenharmony_ci     */
925361847f8eSopenharmony_ci    readonly emotionConfidence: number;
925461847f8eSopenharmony_ci
925561847f8eSopenharmony_ci    /**
925661847f8eSopenharmony_ci     * Pitch angle for face.
925761847f8eSopenharmony_ci     *
925861847f8eSopenharmony_ci     * @type { number }
925961847f8eSopenharmony_ci     * @readonly
926061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
926161847f8eSopenharmony_ci     * @systemapi
926261847f8eSopenharmony_ci     * @since 13
926361847f8eSopenharmony_ci     */
926461847f8eSopenharmony_ci    readonly pitchAngle: number;
926561847f8eSopenharmony_ci
926661847f8eSopenharmony_ci    /**
926761847f8eSopenharmony_ci     * Yaw angle for face.
926861847f8eSopenharmony_ci     *
926961847f8eSopenharmony_ci     * @type { number }
927061847f8eSopenharmony_ci     * @readonly
927161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
927261847f8eSopenharmony_ci     * @systemapi
927361847f8eSopenharmony_ci     * @since 13
927461847f8eSopenharmony_ci     */
927561847f8eSopenharmony_ci    readonly yawAngle: number;
927661847f8eSopenharmony_ci
927761847f8eSopenharmony_ci    /**
927861847f8eSopenharmony_ci     * Roll angle for face.
927961847f8eSopenharmony_ci     *
928061847f8eSopenharmony_ci     * @type { number }
928161847f8eSopenharmony_ci     * @readonly
928261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
928361847f8eSopenharmony_ci     * @systemapi
928461847f8eSopenharmony_ci     * @since 13
928561847f8eSopenharmony_ci     */
928661847f8eSopenharmony_ci    readonly rollAngle: number;
928761847f8eSopenharmony_ci  }
928861847f8eSopenharmony_ci  
928961847f8eSopenharmony_ci  /**
929061847f8eSopenharmony_ci   * Metadata object for human body.
929161847f8eSopenharmony_ci   *
929261847f8eSopenharmony_ci   * @typedef MetadataHumanBodyObject
929361847f8eSopenharmony_ci   * @extends MetadataObject
929461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
929561847f8eSopenharmony_ci   * @systemapi
929661847f8eSopenharmony_ci   * @since 13
929761847f8eSopenharmony_ci   */
929861847f8eSopenharmony_ci  interface MetadataHumanBodyObject extends MetadataObject {
929961847f8eSopenharmony_ci  }
930061847f8eSopenharmony_ci  
930161847f8eSopenharmony_ci  /**
930261847f8eSopenharmony_ci   * Metadata object for cat face.
930361847f8eSopenharmony_ci   *
930461847f8eSopenharmony_ci   * @typedef MetadataCatFaceObject
930561847f8eSopenharmony_ci   * @extends MetadataObject
930661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
930761847f8eSopenharmony_ci   * @systemapi
930861847f8eSopenharmony_ci   * @since 13
930961847f8eSopenharmony_ci   */
931061847f8eSopenharmony_ci  interface MetadataCatFaceObject extends MetadataObject {
931161847f8eSopenharmony_ci    /**
931261847f8eSopenharmony_ci     * Bounding box for left eye.
931361847f8eSopenharmony_ci     *
931461847f8eSopenharmony_ci     * @type { Rect }
931561847f8eSopenharmony_ci     * @readonly
931661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
931761847f8eSopenharmony_ci     * @systemapi
931861847f8eSopenharmony_ci     * @since 13
931961847f8eSopenharmony_ci     */
932061847f8eSopenharmony_ci    readonly leftEyeBoundingBox: Rect;
932161847f8eSopenharmony_ci
932261847f8eSopenharmony_ci    /**
932361847f8eSopenharmony_ci     * Bounding box for right eye.
932461847f8eSopenharmony_ci     *
932561847f8eSopenharmony_ci     * @type { Rect }
932661847f8eSopenharmony_ci     * @readonly
932761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
932861847f8eSopenharmony_ci     * @systemapi
932961847f8eSopenharmony_ci     * @since 13
933061847f8eSopenharmony_ci     */
933161847f8eSopenharmony_ci    readonly rightEyeBoundingBox: Rect;
933261847f8eSopenharmony_ci  }
933361847f8eSopenharmony_ci  
933461847f8eSopenharmony_ci  /**
933561847f8eSopenharmony_ci   * Metadata object for cat body.
933661847f8eSopenharmony_ci   *
933761847f8eSopenharmony_ci   * @typedef MetadataCatBodyObject
933861847f8eSopenharmony_ci   * @extends MetadataObject
933961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
934061847f8eSopenharmony_ci   * @systemapi
934161847f8eSopenharmony_ci   * @since 13
934261847f8eSopenharmony_ci   */
934361847f8eSopenharmony_ci  interface MetadataCatBodyObject extends MetadataObject {
934461847f8eSopenharmony_ci  }
934561847f8eSopenharmony_ci  
934661847f8eSopenharmony_ci  /**
934761847f8eSopenharmony_ci   * Metadata object for dog face.
934861847f8eSopenharmony_ci   *
934961847f8eSopenharmony_ci   * @typedef MetadataDogFaceObject
935061847f8eSopenharmony_ci   * @extends MetadataObject
935161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
935261847f8eSopenharmony_ci   * @systemapi
935361847f8eSopenharmony_ci   * @since 13
935461847f8eSopenharmony_ci   */
935561847f8eSopenharmony_ci  interface MetadataDogFaceObject extends MetadataObject {
935661847f8eSopenharmony_ci    /**
935761847f8eSopenharmony_ci     * Bounding box for left eye.
935861847f8eSopenharmony_ci     *
935961847f8eSopenharmony_ci     * @type { Rect }
936061847f8eSopenharmony_ci     * @readonly
936161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
936261847f8eSopenharmony_ci     * @systemapi
936361847f8eSopenharmony_ci     * @since 13
936461847f8eSopenharmony_ci     */
936561847f8eSopenharmony_ci    readonly leftEyeBoundingBox: Rect;
936661847f8eSopenharmony_ci
936761847f8eSopenharmony_ci    /**
936861847f8eSopenharmony_ci     * Bounding box for right eye.
936961847f8eSopenharmony_ci     *
937061847f8eSopenharmony_ci     * @type { Rect }
937161847f8eSopenharmony_ci     * @readonly
937261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
937361847f8eSopenharmony_ci     * @systemapi
937461847f8eSopenharmony_ci     * @since 13
937561847f8eSopenharmony_ci     */
937661847f8eSopenharmony_ci    readonly rightEyeBoundingBox: Rect;
937761847f8eSopenharmony_ci  }
937861847f8eSopenharmony_ci
937961847f8eSopenharmony_ci  /**
938061847f8eSopenharmony_ci   * Metadata object for dog body.
938161847f8eSopenharmony_ci   *
938261847f8eSopenharmony_ci   * @typedef MetadataDogBodyObject
938361847f8eSopenharmony_ci   * @extends MetadataObject
938461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
938561847f8eSopenharmony_ci   * @systemapi
938661847f8eSopenharmony_ci   * @since 13
938761847f8eSopenharmony_ci   */
938861847f8eSopenharmony_ci  interface MetadataDogBodyObject extends MetadataObject {
938961847f8eSopenharmony_ci  }
939061847f8eSopenharmony_ci
939161847f8eSopenharmony_ci  /**
939261847f8eSopenharmony_ci   * Metadata object for salient detection.
939361847f8eSopenharmony_ci   *
939461847f8eSopenharmony_ci   * @typedef MetadataSalientDetectionObject
939561847f8eSopenharmony_ci   * @extends MetadataObject
939661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
939761847f8eSopenharmony_ci   * @systemapi
939861847f8eSopenharmony_ci   * @since 13
939961847f8eSopenharmony_ci   */
940061847f8eSopenharmony_ci  interface MetadataSalientDetectionObject extends MetadataObject {
940161847f8eSopenharmony_ci  }
940261847f8eSopenharmony_ci
940361847f8eSopenharmony_ci  /**
940461847f8eSopenharmony_ci   * Camera Occlusion Detection Result.
940561847f8eSopenharmony_ci   *
940661847f8eSopenharmony_ci   * @typedef CameraOcclusionDetectionResult
940761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
940861847f8eSopenharmony_ci   * @systemapi
940961847f8eSopenharmony_ci   * @since 12
941061847f8eSopenharmony_ci   */
941161847f8eSopenharmony_ci  interface CameraOcclusionDetectionResult {
941261847f8eSopenharmony_ci    /**
941361847f8eSopenharmony_ci     * Check whether camera is occluded.
941461847f8eSopenharmony_ci     *
941561847f8eSopenharmony_ci     * @type { boolean }
941661847f8eSopenharmony_ci     * @readonly
941761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
941861847f8eSopenharmony_ci     * @systemapi
941961847f8eSopenharmony_ci     * @since 12
942061847f8eSopenharmony_ci     */
942161847f8eSopenharmony_ci    readonly isCameraOccluded: boolean;
942261847f8eSopenharmony_ci
942361847f8eSopenharmony_ci    /**
942461847f8eSopenharmony_ci     * Check whether camera lens is dirty.
942561847f8eSopenharmony_ci     *
942661847f8eSopenharmony_ci     * @type { boolean }
942761847f8eSopenharmony_ci     * @readonly
942861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
942961847f8eSopenharmony_ci     * @systemapi
943061847f8eSopenharmony_ci     * @since 13
943161847f8eSopenharmony_ci     */
943261847f8eSopenharmony_ci    readonly isCameraLensDirty: boolean;
943361847f8eSopenharmony_ci  }
943461847f8eSopenharmony_ci
943561847f8eSopenharmony_ci  /**
943661847f8eSopenharmony_ci   * Metadata Output object
943761847f8eSopenharmony_ci   *
943861847f8eSopenharmony_ci   * @interface MetadataOutput
943961847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
944061847f8eSopenharmony_ci   * @since 10
944161847f8eSopenharmony_ci   */
944261847f8eSopenharmony_ci  interface MetadataOutput extends CameraOutput {
944361847f8eSopenharmony_ci    /**
944461847f8eSopenharmony_ci     * Start output metadata
944561847f8eSopenharmony_ci     *
944661847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
944761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
944861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
944961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
945061847f8eSopenharmony_ci     * @since 10
945161847f8eSopenharmony_ci     */
945261847f8eSopenharmony_ci    start(callback: AsyncCallback<void>): void;
945361847f8eSopenharmony_ci
945461847f8eSopenharmony_ci    /**
945561847f8eSopenharmony_ci     * Start output metadata
945661847f8eSopenharmony_ci     *
945761847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
945861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
945961847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
946061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
946161847f8eSopenharmony_ci     * @since 10
946261847f8eSopenharmony_ci     */
946361847f8eSopenharmony_ci    start(): Promise<void>;
946461847f8eSopenharmony_ci
946561847f8eSopenharmony_ci    /**
946661847f8eSopenharmony_ci     * Stop output metadata
946761847f8eSopenharmony_ci     *
946861847f8eSopenharmony_ci     * @param { AsyncCallback<void> } callback - Callback used to return the result.
946961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
947061847f8eSopenharmony_ci     * @since 10
947161847f8eSopenharmony_ci     */
947261847f8eSopenharmony_ci    stop(callback: AsyncCallback<void>): void;
947361847f8eSopenharmony_ci
947461847f8eSopenharmony_ci    /**
947561847f8eSopenharmony_ci     * Stop output metadata
947661847f8eSopenharmony_ci     *
947761847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
947861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
947961847f8eSopenharmony_ci     * @since 10
948061847f8eSopenharmony_ci     */
948161847f8eSopenharmony_ci    stop(): Promise<void>;
948261847f8eSopenharmony_ci
948361847f8eSopenharmony_ci    /**
948461847f8eSopenharmony_ci     * Add metadata object types.
948561847f8eSopenharmony_ci     *
948661847f8eSopenharmony_ci     * @param { Array<MetadataObjectType> } types - Object types to be added.
948761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
948861847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect. 
948961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
949061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
949161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
949261847f8eSopenharmony_ci     * @systemapi
949361847f8eSopenharmony_ci     * @since 13
949461847f8eSopenharmony_ci     */
949561847f8eSopenharmony_ci    addMetadataObjectTypes(types: Array<MetadataObjectType>): void;
949661847f8eSopenharmony_ci
949761847f8eSopenharmony_ci    /**
949861847f8eSopenharmony_ci     * Remove metadata object types.
949961847f8eSopenharmony_ci     *
950061847f8eSopenharmony_ci     * @param { Array<MetadataObjectType> } types - Object types to be removed.
950161847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
950261847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect. 
950361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
950461847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
950561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
950661847f8eSopenharmony_ci     * @systemapi
950761847f8eSopenharmony_ci     * @since 13
950861847f8eSopenharmony_ci     */
950961847f8eSopenharmony_ci    removeMetadataObjectTypes(types: Array<MetadataObjectType>): void;
951061847f8eSopenharmony_ci
951161847f8eSopenharmony_ci    /**
951261847f8eSopenharmony_ci     * Subscribes to metadata objects available event callback.
951361847f8eSopenharmony_ci     *
951461847f8eSopenharmony_ci     * @param { 'metadataObjectsAvailable' } type - Event type.
951561847f8eSopenharmony_ci     * @param { AsyncCallback<Array<MetadataObject>> } callback - Callback used to get the available metadata objects.
951661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
951761847f8eSopenharmony_ci     * @since 10
951861847f8eSopenharmony_ci     */
951961847f8eSopenharmony_ci    on(type: 'metadataObjectsAvailable', callback: AsyncCallback<Array<MetadataObject>>): void;
952061847f8eSopenharmony_ci
952161847f8eSopenharmony_ci    /**
952261847f8eSopenharmony_ci     * Unsubscribes from metadata objects available event callback.
952361847f8eSopenharmony_ci     *
952461847f8eSopenharmony_ci     * @param { 'metadataObjectsAvailable' } type - Event type.
952561847f8eSopenharmony_ci     * @param { AsyncCallback<Array<MetadataObject>> } callback - Callback used to get the available metadata objects.
952661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
952761847f8eSopenharmony_ci     * @since 10
952861847f8eSopenharmony_ci     */
952961847f8eSopenharmony_ci    off(type: 'metadataObjectsAvailable', callback?: AsyncCallback<Array<MetadataObject>>): void;
953061847f8eSopenharmony_ci
953161847f8eSopenharmony_ci    /**
953261847f8eSopenharmony_ci     * Subscribes to error events.
953361847f8eSopenharmony_ci     *
953461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
953561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the video output errors.
953661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
953761847f8eSopenharmony_ci     * @since 10
953861847f8eSopenharmony_ci     */
953961847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
954061847f8eSopenharmony_ci
954161847f8eSopenharmony_ci    /**
954261847f8eSopenharmony_ci     * Unsubscribes from error events.
954361847f8eSopenharmony_ci     *
954461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
954561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the video output errors.
954661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
954761847f8eSopenharmony_ci     * @since 10
954861847f8eSopenharmony_ci     */
954961847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
955061847f8eSopenharmony_ci  }
955161847f8eSopenharmony_ci
955261847f8eSopenharmony_ci  /**
955361847f8eSopenharmony_ci   * Enumerates the timelapse recording state.
955461847f8eSopenharmony_ci   *
955561847f8eSopenharmony_ci   * @enum { number }
955661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
955761847f8eSopenharmony_ci   * @systemapi
955861847f8eSopenharmony_ci   * @since 12
955961847f8eSopenharmony_ci   */
956061847f8eSopenharmony_ci  enum TimeLapseRecordState {
956161847f8eSopenharmony_ci    /**
956261847f8eSopenharmony_ci     * TimeLapse idle state.
956361847f8eSopenharmony_ci     *
956461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
956561847f8eSopenharmony_ci     * @systemapi
956661847f8eSopenharmony_ci     * @since 12
956761847f8eSopenharmony_ci     */
956861847f8eSopenharmony_ci    IDLE = 0,
956961847f8eSopenharmony_ci
957061847f8eSopenharmony_ci    /**
957161847f8eSopenharmony_ci     * TimeLapse recording state.
957261847f8eSopenharmony_ci     *
957361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
957461847f8eSopenharmony_ci     * @systemapi
957561847f8eSopenharmony_ci     * @since 12
957661847f8eSopenharmony_ci     */
957761847f8eSopenharmony_ci    RECORDING = 1
957861847f8eSopenharmony_ci  }
957961847f8eSopenharmony_ci
958061847f8eSopenharmony_ci  /**
958161847f8eSopenharmony_ci   * Enumerates the timelapse preview type.
958261847f8eSopenharmony_ci   *
958361847f8eSopenharmony_ci   * @enum { number }
958461847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
958561847f8eSopenharmony_ci   * @systemapi
958661847f8eSopenharmony_ci   * @since 12
958761847f8eSopenharmony_ci   */
958861847f8eSopenharmony_ci  enum TimeLapsePreviewType {
958961847f8eSopenharmony_ci    /**
959061847f8eSopenharmony_ci     * TimeLapse dark preview.
959161847f8eSopenharmony_ci     *
959261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
959361847f8eSopenharmony_ci     * @systemapi
959461847f8eSopenharmony_ci     * @since 12
959561847f8eSopenharmony_ci     */
959661847f8eSopenharmony_ci    DARK = 1,
959761847f8eSopenharmony_ci
959861847f8eSopenharmony_ci    /**
959961847f8eSopenharmony_ci     * TimeLapse Light preview.
960061847f8eSopenharmony_ci     *
960161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
960261847f8eSopenharmony_ci     * @systemapi
960361847f8eSopenharmony_ci     * @since 12
960461847f8eSopenharmony_ci     */
960561847f8eSopenharmony_ci    LIGHT = 2
960661847f8eSopenharmony_ci  }
960761847f8eSopenharmony_ci
960861847f8eSopenharmony_ci  /**
960961847f8eSopenharmony_ci   * Try AE information.
961061847f8eSopenharmony_ci   *
961161847f8eSopenharmony_ci   * @typedef TryAEInfo
961261847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
961361847f8eSopenharmony_ci   * @systemapi
961461847f8eSopenharmony_ci   * @since 12
961561847f8eSopenharmony_ci   */
961661847f8eSopenharmony_ci  interface TryAEInfo {
961761847f8eSopenharmony_ci    /**
961861847f8eSopenharmony_ci     * Determine whether try AE is done.
961961847f8eSopenharmony_ci     *
962061847f8eSopenharmony_ci     * @type { boolean }
962161847f8eSopenharmony_ci     * @readonly
962261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
962361847f8eSopenharmony_ci     * @systemapi
962461847f8eSopenharmony_ci     * @since 12
962561847f8eSopenharmony_ci     */
962661847f8eSopenharmony_ci    readonly isTryAEDone: boolean;
962761847f8eSopenharmony_ci
962861847f8eSopenharmony_ci    /**
962961847f8eSopenharmony_ci     * Determine whether AE hint is needed.
963061847f8eSopenharmony_ci     *
963161847f8eSopenharmony_ci     * @type { ?boolean }
963261847f8eSopenharmony_ci     * @readonly
963361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
963461847f8eSopenharmony_ci     * @systemapi
963561847f8eSopenharmony_ci     * @since 12
963661847f8eSopenharmony_ci     */
963761847f8eSopenharmony_ci    readonly isTryAEHintNeeded?: boolean;
963861847f8eSopenharmony_ci
963961847f8eSopenharmony_ci    /**
964061847f8eSopenharmony_ci     * Timelapse preview type.
964161847f8eSopenharmony_ci     *
964261847f8eSopenharmony_ci     * @type { ?TimeLapsePreviewType }
964361847f8eSopenharmony_ci     * @readonly
964461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
964561847f8eSopenharmony_ci     * @systemapi
964661847f8eSopenharmony_ci     * @since 12
964761847f8eSopenharmony_ci     */
964861847f8eSopenharmony_ci    readonly previewType?: TimeLapsePreviewType;
964961847f8eSopenharmony_ci
965061847f8eSopenharmony_ci    /**
965161847f8eSopenharmony_ci     * Timelapse capture interval.
965261847f8eSopenharmony_ci     *
965361847f8eSopenharmony_ci     * @type { ?number }
965461847f8eSopenharmony_ci     * @readonly
965561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
965661847f8eSopenharmony_ci     * @systemapi
965761847f8eSopenharmony_ci     * @since 12
965861847f8eSopenharmony_ci     */
965961847f8eSopenharmony_ci    readonly captureInterval?: number;
966061847f8eSopenharmony_ci  }
966161847f8eSopenharmony_ci
966261847f8eSopenharmony_ci  /**
966361847f8eSopenharmony_ci   * Timelapse photo session object.
966461847f8eSopenharmony_ci   *
966561847f8eSopenharmony_ci   * @interface TimeLapsePhotoSession
966661847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
966761847f8eSopenharmony_ci   * @systemapi
966861847f8eSopenharmony_ci   * @since 12
966961847f8eSopenharmony_ci   */
967061847f8eSopenharmony_ci  interface TimeLapsePhotoSession extends Session, Focus, ManualFocus, AutoExposure, ManualExposure, ManualIso, WhiteBalance, Zoom, ColorEffect {
967161847f8eSopenharmony_ci    /**
967261847f8eSopenharmony_ci     * Subscribes to error events.
967361847f8eSopenharmony_ci     *
967461847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
967561847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
967661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
967761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
967861847f8eSopenharmony_ci     * @systemapi
967961847f8eSopenharmony_ci     * @since 12
968061847f8eSopenharmony_ci     */
968161847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
968261847f8eSopenharmony_ci
968361847f8eSopenharmony_ci    /**
968461847f8eSopenharmony_ci     * Unsubscribes from error events.
968561847f8eSopenharmony_ci     *
968661847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
968761847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the capture session errors.
968861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
968961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
969061847f8eSopenharmony_ci     * @systemapi
969161847f8eSopenharmony_ci     * @since 12
969261847f8eSopenharmony_ci     */
969361847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
969461847f8eSopenharmony_ci
969561847f8eSopenharmony_ci    /**
969661847f8eSopenharmony_ci     * Subscribes focus state change event callback.
969761847f8eSopenharmony_ci     *
969861847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
969961847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
970061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
970161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
970261847f8eSopenharmony_ci     * @systemapi
970361847f8eSopenharmony_ci     * @since 12
970461847f8eSopenharmony_ci     */
970561847f8eSopenharmony_ci    on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
970661847f8eSopenharmony_ci
970761847f8eSopenharmony_ci    /**
970861847f8eSopenharmony_ci     * Unsubscribes from focus state change event callback.
970961847f8eSopenharmony_ci     *
971061847f8eSopenharmony_ci     * @param { 'focusStateChange' } type - Event type.
971161847f8eSopenharmony_ci     * @param { AsyncCallback<FocusState> } callback - Callback used to get the focus state change.
971261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
971361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
971461847f8eSopenharmony_ci     * @systemapi
971561847f8eSopenharmony_ci     * @since 12
971661847f8eSopenharmony_ci     */
971761847f8eSopenharmony_ci    off(type: 'focusStateChange', callback?: AsyncCallback<FocusState>): void;
971861847f8eSopenharmony_ci
971961847f8eSopenharmony_ci    /**
972061847f8eSopenharmony_ci     * Subscribes ISO info event callback.
972161847f8eSopenharmony_ci     *
972261847f8eSopenharmony_ci     * @param { 'isoInfoChange' } type - Event type.
972361847f8eSopenharmony_ci     * @param { AsyncCallback<IsoInfo> } callback - Callback used to get the ISO info.
972461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
972561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
972661847f8eSopenharmony_ci     * @systemapi
972761847f8eSopenharmony_ci     * @since 12
972861847f8eSopenharmony_ci     */
972961847f8eSopenharmony_ci    on(type: 'isoInfoChange', callback: AsyncCallback<IsoInfo>): void;
973061847f8eSopenharmony_ci
973161847f8eSopenharmony_ci    /**
973261847f8eSopenharmony_ci     * Unsubscribes from ISO info event callback.
973361847f8eSopenharmony_ci     *
973461847f8eSopenharmony_ci     * @param { 'isoInfoChange' } type - Event type.
973561847f8eSopenharmony_ci     * @param { AsyncCallback<IsoInfo> } callback - Callback used to get the ISO info.
973661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
973761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
973861847f8eSopenharmony_ci     * @systemapi
973961847f8eSopenharmony_ci     * @since 12
974061847f8eSopenharmony_ci     */
974161847f8eSopenharmony_ci    off(type: 'isoInfoChange', callback?: AsyncCallback<IsoInfo>): void;
974261847f8eSopenharmony_ci
974361847f8eSopenharmony_ci    /**
974461847f8eSopenharmony_ci     * Subscribes exposure info event callback.
974561847f8eSopenharmony_ci     *
974661847f8eSopenharmony_ci     * @param { 'exposureInfoChange' } type - Event type.
974761847f8eSopenharmony_ci     * @param { AsyncCallback<ExposureInfo> } callback - Callback used to get the exposure info.
974861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
974961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
975061847f8eSopenharmony_ci     * @systemapi
975161847f8eSopenharmony_ci     * @since 12
975261847f8eSopenharmony_ci     */
975361847f8eSopenharmony_ci    on(type: 'exposureInfoChange', callback: AsyncCallback<ExposureInfo>): void;
975461847f8eSopenharmony_ci
975561847f8eSopenharmony_ci    /**
975661847f8eSopenharmony_ci     * Unsubscribes from exposure info event callback.
975761847f8eSopenharmony_ci     *
975861847f8eSopenharmony_ci     * @param { 'exposureInfoChange' } type - Event type.
975961847f8eSopenharmony_ci     * @param { AsyncCallback<ExposureInfo> } callback - Callback used to get the exposure info.
976061847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
976161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
976261847f8eSopenharmony_ci     * @systemapi
976361847f8eSopenharmony_ci     * @since 12
976461847f8eSopenharmony_ci     */
976561847f8eSopenharmony_ci    off(type: 'exposureInfoChange', callback?: AsyncCallback<ExposureInfo>): void;
976661847f8eSopenharmony_ci
976761847f8eSopenharmony_ci    /**
976861847f8eSopenharmony_ci     * Subscribes lumination info event callback.
976961847f8eSopenharmony_ci     *
977061847f8eSopenharmony_ci     * @param { 'luminationInfoChange' } type - Event type.
977161847f8eSopenharmony_ci     * @param { AsyncCallback<LuminationInfo> } callback - Callback used to get the lumination info.
977261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
977361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
977461847f8eSopenharmony_ci     * @systemapi
977561847f8eSopenharmony_ci     * @since 12
977661847f8eSopenharmony_ci     */
977761847f8eSopenharmony_ci    on(type: 'luminationInfoChange', callback: AsyncCallback<LuminationInfo>): void;
977861847f8eSopenharmony_ci
977961847f8eSopenharmony_ci    /**
978061847f8eSopenharmony_ci     * Unsubscribes from lumination info event callback.
978161847f8eSopenharmony_ci     *
978261847f8eSopenharmony_ci     * @param { 'luminationInfoChange' } type - Event type.
978361847f8eSopenharmony_ci     * @param { AsyncCallback<LuminationInfo> } callback - Callback used to get the lumination info.
978461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
978561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
978661847f8eSopenharmony_ci     * @systemapi
978761847f8eSopenharmony_ci     * @since 12
978861847f8eSopenharmony_ci     */
978961847f8eSopenharmony_ci    off(type: 'luminationInfoChange', callback?: AsyncCallback<LuminationInfo>): void;
979061847f8eSopenharmony_ci
979161847f8eSopenharmony_ci    /**
979261847f8eSopenharmony_ci     * Check whether try AE is needed.
979361847f8eSopenharmony_ci     *
979461847f8eSopenharmony_ci     * @returns { boolean } Is try AE needed.
979561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
979661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
979761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
979861847f8eSopenharmony_ci     * @systemapi
979961847f8eSopenharmony_ci     * @since 12
980061847f8eSopenharmony_ci     */
980161847f8eSopenharmony_ci    isTryAENeeded(): boolean;
980261847f8eSopenharmony_ci
980361847f8eSopenharmony_ci    /**
980461847f8eSopenharmony_ci     * Start try AE.
980561847f8eSopenharmony_ci     *
980661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
980761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
980861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
980961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
981061847f8eSopenharmony_ci     * @systemapi
981161847f8eSopenharmony_ci     * @since 12
981261847f8eSopenharmony_ci     */
981361847f8eSopenharmony_ci    startTryAE(): void;
981461847f8eSopenharmony_ci
981561847f8eSopenharmony_ci    /**
981661847f8eSopenharmony_ci     * Stop try AE.
981761847f8eSopenharmony_ci     *
981861847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
981961847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
982061847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
982161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
982261847f8eSopenharmony_ci     * @systemapi
982361847f8eSopenharmony_ci     * @since 12
982461847f8eSopenharmony_ci     */
982561847f8eSopenharmony_ci    stopTryAE(): void;
982661847f8eSopenharmony_ci
982761847f8eSopenharmony_ci    /**
982861847f8eSopenharmony_ci     * Subscribes try AE info event callback.
982961847f8eSopenharmony_ci     *
983061847f8eSopenharmony_ci     * @param { 'tryAEInfoChange' } type - Event type.
983161847f8eSopenharmony_ci     * @param { AsyncCallback<TryAEInfo> } callback - Callback used to get the try AE info.
983261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
983361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
983461847f8eSopenharmony_ci     * @systemapi
983561847f8eSopenharmony_ci     * @since 12
983661847f8eSopenharmony_ci     */
983761847f8eSopenharmony_ci    on(type: 'tryAEInfoChange', callback: AsyncCallback<TryAEInfo>): void;
983861847f8eSopenharmony_ci
983961847f8eSopenharmony_ci    /**
984061847f8eSopenharmony_ci     * Unsubscribes from try AE info event callback.
984161847f8eSopenharmony_ci     *
984261847f8eSopenharmony_ci     * @param { 'tryAEInfoChange' } type - Event type.
984361847f8eSopenharmony_ci     * @param { AsyncCallback<TryAEInfo> } callback - Callback used to get the try AE info.
984461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
984561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
984661847f8eSopenharmony_ci     * @systemapi
984761847f8eSopenharmony_ci     * @since 12
984861847f8eSopenharmony_ci     */
984961847f8eSopenharmony_ci    off(type: 'tryAEInfoChange', callback?: AsyncCallback<TryAEInfo>): void;
985061847f8eSopenharmony_ci
985161847f8eSopenharmony_ci    /**
985261847f8eSopenharmony_ci     * Gets supported timelapse interval range.
985361847f8eSopenharmony_ci     *
985461847f8eSopenharmony_ci     * @returns { Array<number> } Timelapse interval range.
985561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
985661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config, only throw in session usage.
985761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
985861847f8eSopenharmony_ci     * @systemapi
985961847f8eSopenharmony_ci     * @since 12
986061847f8eSopenharmony_ci     */
986161847f8eSopenharmony_ci    getSupportedTimeLapseIntervalRange(): Array<number>;
986261847f8eSopenharmony_ci
986361847f8eSopenharmony_ci    /**
986461847f8eSopenharmony_ci     * Gets the timelapse interval in use.
986561847f8eSopenharmony_ci     *
986661847f8eSopenharmony_ci     * @returns { number } the timelapse interval in use.
986761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
986861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
986961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
987061847f8eSopenharmony_ci     * @systemapi
987161847f8eSopenharmony_ci     * @since 12
987261847f8eSopenharmony_ci     */
987361847f8eSopenharmony_ci    getTimeLapseInterval(): number;
987461847f8eSopenharmony_ci
987561847f8eSopenharmony_ci    /**
987661847f8eSopenharmony_ci     * Sets a timelapse interval for a camera device.
987761847f8eSopenharmony_ci     *
987861847f8eSopenharmony_ci     * @param { number } interval The timelapse interval.
987961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
988061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
988161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
988261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
988361847f8eSopenharmony_ci     * @systemapi
988461847f8eSopenharmony_ci     * @since 12
988561847f8eSopenharmony_ci     */
988661847f8eSopenharmony_ci    setTimeLapseInterval(interval: number): void;
988761847f8eSopenharmony_ci
988861847f8eSopenharmony_ci    /**
988961847f8eSopenharmony_ci     * Gets the timelapse recording state in use.
989061847f8eSopenharmony_ci     *
989161847f8eSopenharmony_ci     * @returns { TimeLapseRecordState } the timelapse recording state in use.
989261847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
989361847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
989461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
989561847f8eSopenharmony_ci     * @systemapi
989661847f8eSopenharmony_ci     * @since 12
989761847f8eSopenharmony_ci     */
989861847f8eSopenharmony_ci    getTimeLapseRecordState(): TimeLapseRecordState;
989961847f8eSopenharmony_ci
990061847f8eSopenharmony_ci    /**
990161847f8eSopenharmony_ci     * Sets a timelapse recording state.
990261847f8eSopenharmony_ci     *
990361847f8eSopenharmony_ci     * @param { TimeLapseRecordState } state The timelapse recording state.
990461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
990561847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
990661847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
990761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
990861847f8eSopenharmony_ci     * @systemapi
990961847f8eSopenharmony_ci     * @since 12
991061847f8eSopenharmony_ci     */
991161847f8eSopenharmony_ci    setTimeLapseRecordState(state: TimeLapseRecordState): void;
991261847f8eSopenharmony_ci
991361847f8eSopenharmony_ci    /**
991461847f8eSopenharmony_ci     * Gets the timelapse preview type in use.
991561847f8eSopenharmony_ci     *
991661847f8eSopenharmony_ci     * @returns { TimeLapsePreviewType } the timelapse preview type in use.
991761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
991861847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
991961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
992061847f8eSopenharmony_ci     * @systemapi
992161847f8eSopenharmony_ci     * @since 12
992261847f8eSopenharmony_ci     */
992361847f8eSopenharmony_ci    getTimeLapsePreviewType(): TimeLapsePreviewType;
992461847f8eSopenharmony_ci
992561847f8eSopenharmony_ci    /**
992661847f8eSopenharmony_ci     * Sets a timelapse preview type.
992761847f8eSopenharmony_ci     *
992861847f8eSopenharmony_ci     * @param { TimeLapsePreviewType } type The timelapse preview type.
992961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
993061847f8eSopenharmony_ci     * @throws { BusinessError } 7400101 - Parameter missing or parameter type incorrect.
993161847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
993261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
993361847f8eSopenharmony_ci     * @systemapi
993461847f8eSopenharmony_ci     * @since 12
993561847f8eSopenharmony_ci     */
993661847f8eSopenharmony_ci    setTimeLapsePreviewType(type: TimeLapsePreviewType): void;
993761847f8eSopenharmony_ci  }
993861847f8eSopenharmony_ci  
993961847f8eSopenharmony_ci  /**
994061847f8eSopenharmony_ci   * Enum for Depth Data Accuracy.
994161847f8eSopenharmony_ci   *
994261847f8eSopenharmony_ci   * @enum { number }
994361847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
994461847f8eSopenharmony_ci   * @systemapi
994561847f8eSopenharmony_ci   * @since 13
994661847f8eSopenharmony_ci   */
994761847f8eSopenharmony_ci  enum DepthDataAccuracy {
994861847f8eSopenharmony_ci    /**
994961847f8eSopenharmony_ci     * Relative accuracy depth data.
995061847f8eSopenharmony_ci     *
995161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
995261847f8eSopenharmony_ci     * @systemapi
995361847f8eSopenharmony_ci     * @since 13
995461847f8eSopenharmony_ci     */
995561847f8eSopenharmony_ci    DEPTH_DATA_ACCURACY_RELATIVE = 0,
995661847f8eSopenharmony_ci
995761847f8eSopenharmony_ci    /**
995861847f8eSopenharmony_ci     * Absolute accuracy depth data.
995961847f8eSopenharmony_ci     *
996061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
996161847f8eSopenharmony_ci     * @systemapi
996261847f8eSopenharmony_ci     * @since 13
996361847f8eSopenharmony_ci     */
996461847f8eSopenharmony_ci    DEPTH_DATA_ACCURACY_ABSOLUTE = 1
996561847f8eSopenharmony_ci  }
996661847f8eSopenharmony_ci
996761847f8eSopenharmony_ci  /**
996861847f8eSopenharmony_ci   * Enum for Depth Data Quality Level.
996961847f8eSopenharmony_ci   *
997061847f8eSopenharmony_ci   * @enum { number }
997161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
997261847f8eSopenharmony_ci   * @systemapi
997361847f8eSopenharmony_ci   * @since 13
997461847f8eSopenharmony_ci   */
997561847f8eSopenharmony_ci  enum DepthDataQualityLevel {
997661847f8eSopenharmony_ci    /**
997761847f8eSopenharmony_ci     * Depth data quality is bad.
997861847f8eSopenharmony_ci     *
997961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
998061847f8eSopenharmony_ci     * @systemapi
998161847f8eSopenharmony_ci     * @since 13
998261847f8eSopenharmony_ci     */
998361847f8eSopenharmony_ci    DEPTH_DATA_QUALITY_BAD = 0,
998461847f8eSopenharmony_ci
998561847f8eSopenharmony_ci    /**
998661847f8eSopenharmony_ci     * Depth data quality is fair.
998761847f8eSopenharmony_ci     *
998861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
998961847f8eSopenharmony_ci     * @systemapi
999061847f8eSopenharmony_ci     * @since 13
999161847f8eSopenharmony_ci     */
999261847f8eSopenharmony_ci    DEPTH_DATA_QUALITY_FAIR = 1,
999361847f8eSopenharmony_ci
999461847f8eSopenharmony_ci    /**
999561847f8eSopenharmony_ci     * Depth data quality is good.
999661847f8eSopenharmony_ci     *
999761847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
999861847f8eSopenharmony_ci     * @systemapi
999961847f8eSopenharmony_ci     * @since 13
1000061847f8eSopenharmony_ci     */
1000161847f8eSopenharmony_ci    DEPTH_DATA_QUALITY_GOOD = 2
1000261847f8eSopenharmony_ci  }
1000361847f8eSopenharmony_ci
1000461847f8eSopenharmony_ci  /**
1000561847f8eSopenharmony_ci   * Depth Profile.
1000661847f8eSopenharmony_ci   *
1000761847f8eSopenharmony_ci   * @interface DepthProfile
1000861847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
1000961847f8eSopenharmony_ci   * @systemapi
1001061847f8eSopenharmony_ci   * @since 13
1001161847f8eSopenharmony_ci   */
1001261847f8eSopenharmony_ci  interface DepthProfile {
1001361847f8eSopenharmony_ci    /**
1001461847f8eSopenharmony_ci     * Depth data format.
1001561847f8eSopenharmony_ci     *
1001661847f8eSopenharmony_ci     * @type { CameraFormat }
1001761847f8eSopenharmony_ci     * @readonly
1001861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1001961847f8eSopenharmony_ci     * @systemapi
1002061847f8eSopenharmony_ci     * @since 13
1002161847f8eSopenharmony_ci     */
1002261847f8eSopenharmony_ci    readonly format: CameraFormat;
1002361847f8eSopenharmony_ci
1002461847f8eSopenharmony_ci    /**
1002561847f8eSopenharmony_ci     * Depth data accuracy.
1002661847f8eSopenharmony_ci     *
1002761847f8eSopenharmony_ci     * @type { DepthDataAccuracy }
1002861847f8eSopenharmony_ci     * @readonly
1002961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1003061847f8eSopenharmony_ci     * @systemapi
1003161847f8eSopenharmony_ci     * @since 13
1003261847f8eSopenharmony_ci     */
1003361847f8eSopenharmony_ci    readonly dataAccuracy: DepthDataAccuracy;
1003461847f8eSopenharmony_ci
1003561847f8eSopenharmony_ci    /**
1003661847f8eSopenharmony_ci     * Depth data resolution.
1003761847f8eSopenharmony_ci     *
1003861847f8eSopenharmony_ci     * @type { Size }
1003961847f8eSopenharmony_ci     * @readonly
1004061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1004161847f8eSopenharmony_ci     * @systemapi
1004261847f8eSopenharmony_ci     * @since 13
1004361847f8eSopenharmony_ci     */
1004461847f8eSopenharmony_ci    readonly size: Size;
1004561847f8eSopenharmony_ci  }
1004661847f8eSopenharmony_ci
1004761847f8eSopenharmony_ci  /**
1004861847f8eSopenharmony_ci   * Depth Data.
1004961847f8eSopenharmony_ci   *
1005061847f8eSopenharmony_ci   * @interface DepthData.
1005161847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
1005261847f8eSopenharmony_ci   * @systemapi
1005361847f8eSopenharmony_ci   * @since 13
1005461847f8eSopenharmony_ci   */
1005561847f8eSopenharmony_ci  interface DepthData {
1005661847f8eSopenharmony_ci    /**
1005761847f8eSopenharmony_ci     * Depth data format.
1005861847f8eSopenharmony_ci     *
1005961847f8eSopenharmony_ci     * @type { CameraFormat }
1006061847f8eSopenharmony_ci     * @readonly
1006161847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1006261847f8eSopenharmony_ci     * @systemapi
1006361847f8eSopenharmony_ci     * @since 13
1006461847f8eSopenharmony_ci     */
1006561847f8eSopenharmony_ci    readonly format: CameraFormat;
1006661847f8eSopenharmony_ci
1006761847f8eSopenharmony_ci    /**
1006861847f8eSopenharmony_ci     * Depth data map.
1006961847f8eSopenharmony_ci     *
1007061847f8eSopenharmony_ci     * @type { image.PixelMap }
1007161847f8eSopenharmony_ci     * @readonly
1007261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1007361847f8eSopenharmony_ci     * @systemapi
1007461847f8eSopenharmony_ci     * @since 13
1007561847f8eSopenharmony_ci     */
1007661847f8eSopenharmony_ci    readonly depthMap: image.PixelMap;
1007761847f8eSopenharmony_ci
1007861847f8eSopenharmony_ci    /**
1007961847f8eSopenharmony_ci     * Depth data quality level.
1008061847f8eSopenharmony_ci     *
1008161847f8eSopenharmony_ci     * @type { DepthDataQualityLevel }
1008261847f8eSopenharmony_ci     * @readonly
1008361847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1008461847f8eSopenharmony_ci     * @systemapi
1008561847f8eSopenharmony_ci     * @since 13
1008661847f8eSopenharmony_ci     */
1008761847f8eSopenharmony_ci    readonly qualityLevel: DepthDataQualityLevel;
1008861847f8eSopenharmony_ci
1008961847f8eSopenharmony_ci    /**
1009061847f8eSopenharmony_ci     * Depth data accuracy.
1009161847f8eSopenharmony_ci     *
1009261847f8eSopenharmony_ci     * @type { DepthDataAccuracy }
1009361847f8eSopenharmony_ci     * @readonly
1009461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1009561847f8eSopenharmony_ci     * @systemapi
1009661847f8eSopenharmony_ci     * @since 13
1009761847f8eSopenharmony_ci     */
1009861847f8eSopenharmony_ci    readonly dataAccuracy: DepthDataAccuracy;
1009961847f8eSopenharmony_ci
1010061847f8eSopenharmony_ci    /**
1010161847f8eSopenharmony_ci     * Release depth data object.
1010261847f8eSopenharmony_ci     *
1010361847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
1010461847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
1010561847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1010661847f8eSopenharmony_ci     * @systemapi
1010761847f8eSopenharmony_ci     * @since 13
1010861847f8eSopenharmony_ci     */
1010961847f8eSopenharmony_ci    release(): Promise<void>;
1011061847f8eSopenharmony_ci  }
1011161847f8eSopenharmony_ci
1011261847f8eSopenharmony_ci  /**
1011361847f8eSopenharmony_ci   * Depth Data Output object
1011461847f8eSopenharmony_ci   *
1011561847f8eSopenharmony_ci   * @interface DepthDataOutput
1011661847f8eSopenharmony_ci   * @extends CameraOutput
1011761847f8eSopenharmony_ci   * @syscap SystemCapability.Multimedia.Camera.Core
1011861847f8eSopenharmony_ci   * @systemapi
1011961847f8eSopenharmony_ci   * @since 13
1012061847f8eSopenharmony_ci   */
1012161847f8eSopenharmony_ci  interface DepthDataOutput extends CameraOutput {
1012261847f8eSopenharmony_ci    /**
1012361847f8eSopenharmony_ci     * Start depth data output.
1012461847f8eSopenharmony_ci     *
1012561847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
1012661847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
1012761847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
1012861847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
1012961847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1013061847f8eSopenharmony_ci     * @systemapi
1013161847f8eSopenharmony_ci     * @since 13
1013261847f8eSopenharmony_ci     */
1013361847f8eSopenharmony_ci    start(): Promise<void>;
1013461847f8eSopenharmony_ci
1013561847f8eSopenharmony_ci    /**
1013661847f8eSopenharmony_ci     * Stop depth data output.
1013761847f8eSopenharmony_ci     *
1013861847f8eSopenharmony_ci     * @returns { Promise<void> } Promise used to return the result.
1013961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
1014061847f8eSopenharmony_ci     * @throws { BusinessError } 7400103 - Session not config.
1014161847f8eSopenharmony_ci     * @throws { BusinessError } 7400201 - Camera service fatal error.
1014261847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1014361847f8eSopenharmony_ci     * @systemapi
1014461847f8eSopenharmony_ci     * @since 13
1014561847f8eSopenharmony_ci     */
1014661847f8eSopenharmony_ci    stop(): Promise<void>;
1014761847f8eSopenharmony_ci
1014861847f8eSopenharmony_ci    /**
1014961847f8eSopenharmony_ci     * Subscribes to depth data objects available event callback.
1015061847f8eSopenharmony_ci     *
1015161847f8eSopenharmony_ci     * @param { 'depthDataAvailable' } type - Event type.
1015261847f8eSopenharmony_ci     * @param { AsyncCallback<DepthData> } callback - Callback used to get the available DepthData objects.
1015361847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
1015461847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1015561847f8eSopenharmony_ci     * @systemapi
1015661847f8eSopenharmony_ci     * @since 13
1015761847f8eSopenharmony_ci     */
1015861847f8eSopenharmony_ci    on(type: 'depthDataAvailable', callback: AsyncCallback<DepthData>): void;
1015961847f8eSopenharmony_ci
1016061847f8eSopenharmony_ci    /**
1016161847f8eSopenharmony_ci     * Unsubscribes from depth data objects available event callback.
1016261847f8eSopenharmony_ci     *
1016361847f8eSopenharmony_ci     * @param { 'depthDataAvailable' } type - Event type.
1016461847f8eSopenharmony_ci     * @param { AsyncCallback<DepthData> } callback - Callback used to get the available DepthData objects.
1016561847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
1016661847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1016761847f8eSopenharmony_ci     * @systemapi
1016861847f8eSopenharmony_ci     * @since 13
1016961847f8eSopenharmony_ci     */
1017061847f8eSopenharmony_ci    off(type: 'depthDataAvailable', callback?: AsyncCallback<DepthData>): void;
1017161847f8eSopenharmony_ci
1017261847f8eSopenharmony_ci    /**
1017361847f8eSopenharmony_ci     * Subscribes to error events.
1017461847f8eSopenharmony_ci     *
1017561847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
1017661847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the video output errors.
1017761847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
1017861847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1017961847f8eSopenharmony_ci     * @systemapi
1018061847f8eSopenharmony_ci     * @since 13
1018161847f8eSopenharmony_ci     */
1018261847f8eSopenharmony_ci    on(type: 'error', callback: ErrorCallback): void;
1018361847f8eSopenharmony_ci
1018461847f8eSopenharmony_ci    /**
1018561847f8eSopenharmony_ci     * Unsubscribes from error events.
1018661847f8eSopenharmony_ci     *
1018761847f8eSopenharmony_ci     * @param { 'error' } type - Event type.
1018861847f8eSopenharmony_ci     * @param { ErrorCallback } callback - Callback used to get the video output errors.
1018961847f8eSopenharmony_ci     * @throws { BusinessError } 202 - Not System Application.
1019061847f8eSopenharmony_ci     * @syscap SystemCapability.Multimedia.Camera.Core
1019161847f8eSopenharmony_ci     * @systemapi
1019261847f8eSopenharmony_ci     * @since 13
1019361847f8eSopenharmony_ci     */
1019461847f8eSopenharmony_ci    off(type: 'error', callback?: ErrorCallback): void;
1019561847f8eSopenharmony_ci  }
1019661847f8eSopenharmony_ci}
1019761847f8eSopenharmony_ci
1019861847f8eSopenharmony_ciexport default camera;
10199