161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file Provides the capability to load and display advertisements
1861847f8eSopenharmony_ci * @kit AdsKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ciimport type web_webview from './@ohos.web.webview';
2161847f8eSopenharmony_ciimport type common from './@ohos.app.ability.common';
2261847f8eSopenharmony_ciimport type { Advertisement as _Advertisement } from './advertising/advertisement';
2361847f8eSopenharmony_ci
2461847f8eSopenharmony_ci/**
2561847f8eSopenharmony_ci * Provides the capability to load and display advertisements.
2661847f8eSopenharmony_ci * @namespace advertising
2761847f8eSopenharmony_ci * @syscap SystemCapability.Advertising.Ads
2861847f8eSopenharmony_ci * @since 11
2961847f8eSopenharmony_ci */
3061847f8eSopenharmony_ci/**
3161847f8eSopenharmony_ci * Provides the capability to load and display advertisements.
3261847f8eSopenharmony_ci * @namespace advertising
3361847f8eSopenharmony_ci * @syscap SystemCapability.Advertising.Ads
3461847f8eSopenharmony_ci * @atomicservice
3561847f8eSopenharmony_ci * @since 12
3661847f8eSopenharmony_ci */
3761847f8eSopenharmony_cideclare namespace advertising {
3861847f8eSopenharmony_ci  /**
3961847f8eSopenharmony_ci   * Indicates the advertisement data model.
4061847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
4161847f8eSopenharmony_ci   * @since 11
4261847f8eSopenharmony_ci   */
4361847f8eSopenharmony_ci  /**
4461847f8eSopenharmony_ci   * Indicates the advertisement data model.
4561847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
4661847f8eSopenharmony_ci   * @atomicservice
4761847f8eSopenharmony_ci   * @since 12
4861847f8eSopenharmony_ci   */
4961847f8eSopenharmony_ci  export type Advertisement = _Advertisement;
5061847f8eSopenharmony_ci
5161847f8eSopenharmony_ci  /**
5261847f8eSopenharmony_ci   * The parameters in the request for loading one or more advertisements.
5361847f8eSopenharmony_ci   * @typedef AdRequestParams
5461847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
5561847f8eSopenharmony_ci   * @since 11
5661847f8eSopenharmony_ci   */
5761847f8eSopenharmony_ci  /**
5861847f8eSopenharmony_ci   * The parameters in the request for loading one or more advertisements.
5961847f8eSopenharmony_ci   * @typedef AdRequestParams
6061847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
6161847f8eSopenharmony_ci   * @atomicservice
6261847f8eSopenharmony_ci   * @since 12
6361847f8eSopenharmony_ci   */
6461847f8eSopenharmony_ci  export interface AdRequestParams {
6561847f8eSopenharmony_ci    /**
6661847f8eSopenharmony_ci     * The advertisement slot id.
6761847f8eSopenharmony_ci     * @type { string }
6861847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
6961847f8eSopenharmony_ci     * @since 11
7061847f8eSopenharmony_ci     */
7161847f8eSopenharmony_ci    /**
7261847f8eSopenharmony_ci     * The advertisement slot id.
7361847f8eSopenharmony_ci     * @type { string }
7461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
7561847f8eSopenharmony_ci     * @atomicservice
7661847f8eSopenharmony_ci     * @since 12
7761847f8eSopenharmony_ci     */
7861847f8eSopenharmony_ci    adId: string;
7961847f8eSopenharmony_ci
8061847f8eSopenharmony_ci    /**
8161847f8eSopenharmony_ci     * The advertisement type of request.
8261847f8eSopenharmony_ci     * @type { ?number }
8361847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
8461847f8eSopenharmony_ci     * @since 11
8561847f8eSopenharmony_ci     */
8661847f8eSopenharmony_ci    /**
8761847f8eSopenharmony_ci     * The advertisement type of request.
8861847f8eSopenharmony_ci     * @type { ?number }
8961847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
9061847f8eSopenharmony_ci     * @atomicservice
9161847f8eSopenharmony_ci     * @since 12
9261847f8eSopenharmony_ci     */
9361847f8eSopenharmony_ci    adType?: number;
9461847f8eSopenharmony_ci
9561847f8eSopenharmony_ci    /**
9661847f8eSopenharmony_ci     * The advertisement quantity of request.
9761847f8eSopenharmony_ci     * @type { ?number }
9861847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
9961847f8eSopenharmony_ci     * @since 11
10061847f8eSopenharmony_ci     */
10161847f8eSopenharmony_ci    /**
10261847f8eSopenharmony_ci     * The advertisement quantity of request.
10361847f8eSopenharmony_ci     * @type { ?number }
10461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
10561847f8eSopenharmony_ci     * @atomicservice
10661847f8eSopenharmony_ci     * @since 12
10761847f8eSopenharmony_ci     */
10861847f8eSopenharmony_ci    adCount?: number;
10961847f8eSopenharmony_ci
11061847f8eSopenharmony_ci    /**
11161847f8eSopenharmony_ci     * The advertisement view size width that expects.
11261847f8eSopenharmony_ci     * @type { ?number }
11361847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
11461847f8eSopenharmony_ci     * @since 11
11561847f8eSopenharmony_ci     */
11661847f8eSopenharmony_ci    /**
11761847f8eSopenharmony_ci     * The advertisement view size width that expects.
11861847f8eSopenharmony_ci     * @type { ?number }
11961847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
12061847f8eSopenharmony_ci     * @atomicservice
12161847f8eSopenharmony_ci     * @since 12
12261847f8eSopenharmony_ci     */
12361847f8eSopenharmony_ci    adWidth?: number;
12461847f8eSopenharmony_ci
12561847f8eSopenharmony_ci    /**
12661847f8eSopenharmony_ci     * The advertisement view size height that expects.
12761847f8eSopenharmony_ci     * @type { ?number }
12861847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
12961847f8eSopenharmony_ci     * @since 11
13061847f8eSopenharmony_ci     */
13161847f8eSopenharmony_ci    /**
13261847f8eSopenharmony_ci     * The advertisement view size height that expects.
13361847f8eSopenharmony_ci     * @type { ?number }
13461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
13561847f8eSopenharmony_ci     * @atomicservice
13661847f8eSopenharmony_ci     * @since 12
13761847f8eSopenharmony_ci     */
13861847f8eSopenharmony_ci    adHeight?: number;
13961847f8eSopenharmony_ci
14061847f8eSopenharmony_ci    /**
14161847f8eSopenharmony_ci     * The advertisement search keyword.
14261847f8eSopenharmony_ci     * @type { ?string }
14361847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
14461847f8eSopenharmony_ci     * @since 11
14561847f8eSopenharmony_ci     */
14661847f8eSopenharmony_ci    /**
14761847f8eSopenharmony_ci     * The advertisement search keyword.
14861847f8eSopenharmony_ci     * @type { ?string }
14961847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
15061847f8eSopenharmony_ci     * @atomicservice
15161847f8eSopenharmony_ci     * @since 12
15261847f8eSopenharmony_ci     */
15361847f8eSopenharmony_ci    adSearchKeyword?: string;
15461847f8eSopenharmony_ci
15561847f8eSopenharmony_ci    /**
15661847f8eSopenharmony_ci     * The extended attributes for request parameters.
15761847f8eSopenharmony_ci     * @type { number | boolean | string | undefined }
15861847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
15961847f8eSopenharmony_ci     * @since 11
16061847f8eSopenharmony_ci     */
16161847f8eSopenharmony_ci    /**
16261847f8eSopenharmony_ci     * The extended attributes for request parameters.
16361847f8eSopenharmony_ci     * @type { number | boolean | string | undefined }
16461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
16561847f8eSopenharmony_ci     * @atomicservice
16661847f8eSopenharmony_ci     * @since 12
16761847f8eSopenharmony_ci     */
16861847f8eSopenharmony_ci    [key: string]: number | boolean | string | undefined;
16961847f8eSopenharmony_ci  }
17061847f8eSopenharmony_ci
17161847f8eSopenharmony_ci  /**
17261847f8eSopenharmony_ci   * The ad options of loading ads.
17361847f8eSopenharmony_ci   * @typedef AdOptions
17461847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
17561847f8eSopenharmony_ci   * @since 11
17661847f8eSopenharmony_ci   */
17761847f8eSopenharmony_ci  /**
17861847f8eSopenharmony_ci   * The ad options of loading ads.
17961847f8eSopenharmony_ci   * @typedef AdOptions
18061847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
18161847f8eSopenharmony_ci   * @atomicservice
18261847f8eSopenharmony_ci   * @since 12
18361847f8eSopenharmony_ci   */
18461847f8eSopenharmony_ci  export interface AdOptions {
18561847f8eSopenharmony_ci    /**
18661847f8eSopenharmony_ci     * The tags for children's content.
18761847f8eSopenharmony_ci     * @type { ?number }
18861847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
18961847f8eSopenharmony_ci     * @since 11
19061847f8eSopenharmony_ci     */
19161847f8eSopenharmony_ci    /**
19261847f8eSopenharmony_ci     * The tags for children's content.
19361847f8eSopenharmony_ci     * @type { ?number }
19461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
19561847f8eSopenharmony_ci     * @atomicservice
19661847f8eSopenharmony_ci     * @since 12
19761847f8eSopenharmony_ci     */
19861847f8eSopenharmony_ci    tagForChildProtection?: number;
19961847f8eSopenharmony_ci
20061847f8eSopenharmony_ci    /**
20161847f8eSopenharmony_ci     * Advertisement content classification setting.
20261847f8eSopenharmony_ci     * @type { ?string }
20361847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
20461847f8eSopenharmony_ci     * @since 11
20561847f8eSopenharmony_ci     */
20661847f8eSopenharmony_ci    /**
20761847f8eSopenharmony_ci     * Advertisement content classification setting.
20861847f8eSopenharmony_ci     * @type { ?string }
20961847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
21061847f8eSopenharmony_ci     * @atomicservice
21161847f8eSopenharmony_ci     * @since 12
21261847f8eSopenharmony_ci     */
21361847f8eSopenharmony_ci    adContentClassification?: string;
21461847f8eSopenharmony_ci
21561847f8eSopenharmony_ci    /**
21661847f8eSopenharmony_ci     * Non-personalized ad settings.
21761847f8eSopenharmony_ci     * @type { ?number }
21861847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
21961847f8eSopenharmony_ci     * @since 11
22061847f8eSopenharmony_ci     */
22161847f8eSopenharmony_ci    /**
22261847f8eSopenharmony_ci     * Non-personalized ad settings.
22361847f8eSopenharmony_ci     * @type { ?number }
22461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
22561847f8eSopenharmony_ci     * @atomicservice
22661847f8eSopenharmony_ci     * @since 12
22761847f8eSopenharmony_ci     */
22861847f8eSopenharmony_ci    nonPersonalizedAd?: number;
22961847f8eSopenharmony_ci
23061847f8eSopenharmony_ci    /**
23161847f8eSopenharmony_ci     * The extended attributes for ad options.
23261847f8eSopenharmony_ci     * @type { number | boolean | string | undefined }
23361847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
23461847f8eSopenharmony_ci     * @since 11
23561847f8eSopenharmony_ci     */
23661847f8eSopenharmony_ci    /**
23761847f8eSopenharmony_ci     * The extended attributes for ad options.
23861847f8eSopenharmony_ci     * @type { number | boolean | string | undefined }
23961847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
24061847f8eSopenharmony_ci     * @atomicservice
24161847f8eSopenharmony_ci     * @since 12
24261847f8eSopenharmony_ci     */
24361847f8eSopenharmony_ci    [key: string]: number | boolean | string | undefined;
24461847f8eSopenharmony_ci  }
24561847f8eSopenharmony_ci
24661847f8eSopenharmony_ci  /**
24761847f8eSopenharmony_ci   * The interaction options info for displaying ad.
24861847f8eSopenharmony_ci   * @typedef AdDisplayOptions
24961847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
25061847f8eSopenharmony_ci   * @since 11
25161847f8eSopenharmony_ci   */
25261847f8eSopenharmony_ci  /**
25361847f8eSopenharmony_ci   * The interaction options info for displaying ad.
25461847f8eSopenharmony_ci   * @typedef AdDisplayOptions
25561847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
25661847f8eSopenharmony_ci   * @atomicservice
25761847f8eSopenharmony_ci   * @since 12
25861847f8eSopenharmony_ci   */
25961847f8eSopenharmony_ci  export interface AdDisplayOptions {
26061847f8eSopenharmony_ci    /**
26161847f8eSopenharmony_ci     * Ad custom data.
26261847f8eSopenharmony_ci     * @type { ?string }
26361847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
26461847f8eSopenharmony_ci     * @since 11
26561847f8eSopenharmony_ci     */
26661847f8eSopenharmony_ci    /**
26761847f8eSopenharmony_ci     * Ad custom data.
26861847f8eSopenharmony_ci     * @type { ?string }
26961847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
27061847f8eSopenharmony_ci     * @atomicservice
27161847f8eSopenharmony_ci     * @since 12
27261847f8eSopenharmony_ci     */
27361847f8eSopenharmony_ci    customData?: string;
27461847f8eSopenharmony_ci
27561847f8eSopenharmony_ci    /**
27661847f8eSopenharmony_ci     * User id.
27761847f8eSopenharmony_ci     * @type { ?string }
27861847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
27961847f8eSopenharmony_ci     * @since 11
28061847f8eSopenharmony_ci     */
28161847f8eSopenharmony_ci    /**
28261847f8eSopenharmony_ci     * User id.
28361847f8eSopenharmony_ci     * @type { ?string }
28461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
28561847f8eSopenharmony_ci     * @atomicservice
28661847f8eSopenharmony_ci     * @since 12
28761847f8eSopenharmony_ci     */
28861847f8eSopenharmony_ci    userId?: string;
28961847f8eSopenharmony_ci
29061847f8eSopenharmony_ci    /**
29161847f8eSopenharmony_ci     * Indicates whether a dialog box is displayed to notify users of video playback
29261847f8eSopenharmony_ci     * and application download in non-Wi-Fi scenarios.
29361847f8eSopenharmony_ci     * @type { ?boolean }
29461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
29561847f8eSopenharmony_ci     * @since 11
29661847f8eSopenharmony_ci     */
29761847f8eSopenharmony_ci    /**
29861847f8eSopenharmony_ci     * Indicates whether a dialog box is displayed to notify users of video playback
29961847f8eSopenharmony_ci     * and application download in non-Wi-Fi scenarios.
30061847f8eSopenharmony_ci     * @type { ?boolean }
30161847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
30261847f8eSopenharmony_ci     * @atomicservice
30361847f8eSopenharmony_ci     * @since 12
30461847f8eSopenharmony_ci     */
30561847f8eSopenharmony_ci    useMobileDataReminder?: boolean;
30661847f8eSopenharmony_ci
30761847f8eSopenharmony_ci    /**
30861847f8eSopenharmony_ci     * Indicates whether to mute the playback of the ad video.
30961847f8eSopenharmony_ci     * @type { ?boolean }
31061847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
31161847f8eSopenharmony_ci     * @since 11
31261847f8eSopenharmony_ci     */
31361847f8eSopenharmony_ci    /**
31461847f8eSopenharmony_ci     * Indicates whether to mute the playback of the ad video.
31561847f8eSopenharmony_ci     * @type { ?boolean }
31661847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
31761847f8eSopenharmony_ci     * @atomicservice
31861847f8eSopenharmony_ci     * @since 12
31961847f8eSopenharmony_ci     */
32061847f8eSopenharmony_ci    mute?: boolean;
32161847f8eSopenharmony_ci
32261847f8eSopenharmony_ci    /**
32361847f8eSopenharmony_ci     * The type of the scenario where the audio focus is obtained during video playback.
32461847f8eSopenharmony_ci     * @type { ?number }
32561847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
32661847f8eSopenharmony_ci     * @since 11
32761847f8eSopenharmony_ci     */
32861847f8eSopenharmony_ci    /**
32961847f8eSopenharmony_ci     * The type of the scenario where the audio focus is obtained during video playback.
33061847f8eSopenharmony_ci     * @type { ?number }
33161847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
33261847f8eSopenharmony_ci     * @atomicservice
33361847f8eSopenharmony_ci     * @since 12
33461847f8eSopenharmony_ci     */
33561847f8eSopenharmony_ci    audioFocusType?: number;
33661847f8eSopenharmony_ci
33761847f8eSopenharmony_ci    /**
33861847f8eSopenharmony_ci     * The extended attributes for interaction options.
33961847f8eSopenharmony_ci     * @type { number | boolean | string | undefined }
34061847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
34161847f8eSopenharmony_ci     * @since 11
34261847f8eSopenharmony_ci     */
34361847f8eSopenharmony_ci    /**
34461847f8eSopenharmony_ci     * The extended attributes for interaction options.
34561847f8eSopenharmony_ci     * @type { number | boolean | string | undefined }
34661847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
34761847f8eSopenharmony_ci     * @atomicservice
34861847f8eSopenharmony_ci     * @since 12
34961847f8eSopenharmony_ci     */
35061847f8eSopenharmony_ci    [key: string]: number | boolean | string | undefined;
35161847f8eSopenharmony_ci  }
35261847f8eSopenharmony_ci
35361847f8eSopenharmony_ci  /**
35461847f8eSopenharmony_ci   * The listener of ad interaction.
35561847f8eSopenharmony_ci   * @interface AdInteractionListener
35661847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
35761847f8eSopenharmony_ci   * @since 11
35861847f8eSopenharmony_ci   */
35961847f8eSopenharmony_ci  /**
36061847f8eSopenharmony_ci   * The listener of ad interaction.
36161847f8eSopenharmony_ci   * @interface AdInteractionListener
36261847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
36361847f8eSopenharmony_ci   * @atomicservice
36461847f8eSopenharmony_ci   * @since 12
36561847f8eSopenharmony_ci   */
36661847f8eSopenharmony_ci  export interface AdInteractionListener {
36761847f8eSopenharmony_ci    /**
36861847f8eSopenharmony_ci     * Ads status callback.
36961847f8eSopenharmony_ci     * @param { string } status - The current ad status. The status contains onAdOpen,onAdClose,onAdReward,onAdClick,onVideoPlayBegin and onVideoPlayEnd.
37061847f8eSopenharmony_ci     * @param { Advertisement } ad - The ad which status is changed.
37161847f8eSopenharmony_ci     * @param { string } data - The data of current ad status.
37261847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
37361847f8eSopenharmony_ci     * @since 11
37461847f8eSopenharmony_ci     */
37561847f8eSopenharmony_ci    /**
37661847f8eSopenharmony_ci     * Ads status callback.
37761847f8eSopenharmony_ci     * @param { string } status - The current ad status. The status contains onAdOpen,onAdClose,onAdReward,onAdClick,onVideoPlayBegin and onVideoPlayEnd.
37861847f8eSopenharmony_ci     * @param { Advertisement } ad - The ad which status is changed.
37961847f8eSopenharmony_ci     * @param { string } data - The data of current ad status.
38061847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
38161847f8eSopenharmony_ci     * @atomicservice
38261847f8eSopenharmony_ci     * @since 12
38361847f8eSopenharmony_ci     */
38461847f8eSopenharmony_ci    onStatusChanged(status: string, ad: Advertisement, data: string);
38561847f8eSopenharmony_ci  }
38661847f8eSopenharmony_ci
38761847f8eSopenharmony_ci  /**
38861847f8eSopenharmony_ci   * The listener of loading ad.
38961847f8eSopenharmony_ci   * @interface AdLoadListener
39061847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
39161847f8eSopenharmony_ci   * @since 11
39261847f8eSopenharmony_ci   */
39361847f8eSopenharmony_ci  /**
39461847f8eSopenharmony_ci   * The listener of loading ad.
39561847f8eSopenharmony_ci   * @interface AdLoadListener
39661847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
39761847f8eSopenharmony_ci   * @atomicservice
39861847f8eSopenharmony_ci   * @since 12
39961847f8eSopenharmony_ci   */
40061847f8eSopenharmony_ci  export interface AdLoadListener {
40161847f8eSopenharmony_ci    /**
40261847f8eSopenharmony_ci     * Called by system when the ad load has been failed.
40361847f8eSopenharmony_ci     * @param { number } errorCode - code of ad loading failure.
40461847f8eSopenharmony_ci     * @param { string } errorMsg - error message.
40561847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
40661847f8eSopenharmony_ci     * @since 11
40761847f8eSopenharmony_ci     */
40861847f8eSopenharmony_ci    /**
40961847f8eSopenharmony_ci     * Called by system when the ad load has been failed.
41061847f8eSopenharmony_ci     * @param { number } errorCode - code of ad loading failure.
41161847f8eSopenharmony_ci     * @param { string } errorMsg - error message.
41261847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
41361847f8eSopenharmony_ci     * @atomicservice
41461847f8eSopenharmony_ci     * @since 12
41561847f8eSopenharmony_ci     */
41661847f8eSopenharmony_ci    onAdLoadFailure(errorCode: number, errorMsg: string): void;
41761847f8eSopenharmony_ci
41861847f8eSopenharmony_ci    /**
41961847f8eSopenharmony_ci     * Called by system when the ad load has been succeeded.
42061847f8eSopenharmony_ci     * @param { Array<Advertisement> } ads - advertisements are loaded successfully.
42161847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
42261847f8eSopenharmony_ci     * @since 11
42361847f8eSopenharmony_ci     */
42461847f8eSopenharmony_ci    /**
42561847f8eSopenharmony_ci     * Called by system when the ad load has been succeeded.
42661847f8eSopenharmony_ci     * @param { Array<Advertisement> } ads - advertisements are loaded successfully.
42761847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
42861847f8eSopenharmony_ci     * @atomicservice
42961847f8eSopenharmony_ci     * @since 12
43061847f8eSopenharmony_ci     */
43161847f8eSopenharmony_ci    onAdLoadSuccess(ads: Array<Advertisement>): void;
43261847f8eSopenharmony_ci  }
43361847f8eSopenharmony_ci
43461847f8eSopenharmony_ci  /**
43561847f8eSopenharmony_ci   * The listener of loading multi-slots ad.
43661847f8eSopenharmony_ci   * @interface MultiSlotsAdLoadListener
43761847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
43861847f8eSopenharmony_ci   * @since 11
43961847f8eSopenharmony_ci   */
44061847f8eSopenharmony_ci  /**
44161847f8eSopenharmony_ci   * The listener of loading multi-slots ad.
44261847f8eSopenharmony_ci   * @interface MultiSlotsAdLoadListener
44361847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
44461847f8eSopenharmony_ci   * @atomicservice
44561847f8eSopenharmony_ci   * @since 12
44661847f8eSopenharmony_ci   */
44761847f8eSopenharmony_ci  export interface MultiSlotsAdLoadListener {
44861847f8eSopenharmony_ci    /**
44961847f8eSopenharmony_ci     * Called by system when the ad load has been failed.
45061847f8eSopenharmony_ci     * @param { number } errorCode - code of ad loading failure.
45161847f8eSopenharmony_ci     * @param { string } errorMsg - error message.
45261847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
45361847f8eSopenharmony_ci     * @since 11
45461847f8eSopenharmony_ci     */
45561847f8eSopenharmony_ci    /**
45661847f8eSopenharmony_ci     * Called by system when the ad load has been failed.
45761847f8eSopenharmony_ci     * @param { number } errorCode - code of ad loading failure.
45861847f8eSopenharmony_ci     * @param { string } errorMsg - error message.
45961847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
46061847f8eSopenharmony_ci     * @atomicservice
46161847f8eSopenharmony_ci     * @since 12
46261847f8eSopenharmony_ci     */
46361847f8eSopenharmony_ci    onAdLoadFailure(errorCode: number, errorMsg: string): void;
46461847f8eSopenharmony_ci
46561847f8eSopenharmony_ci    /**
46661847f8eSopenharmony_ci     * Called by system when the ad load has been succeeded.
46761847f8eSopenharmony_ci     * @param { Map<string, Array<Advertisement>> } adsMap - advertisements are loaded successfully.
46861847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
46961847f8eSopenharmony_ci     * @since 11
47061847f8eSopenharmony_ci     */
47161847f8eSopenharmony_ci    /**
47261847f8eSopenharmony_ci     * Called by system when the ad load has been succeeded.
47361847f8eSopenharmony_ci     * @param { Map<string, Array<Advertisement>> } adsMap - advertisements are loaded successfully.
47461847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
47561847f8eSopenharmony_ci     * @atomicservice
47661847f8eSopenharmony_ci     * @since 12
47761847f8eSopenharmony_ci     */
47861847f8eSopenharmony_ci    onAdLoadSuccess(adsMap: Map<string, Array<Advertisement>>): void;
47961847f8eSopenharmony_ci  }
48061847f8eSopenharmony_ci
48161847f8eSopenharmony_ci  /**
48261847f8eSopenharmony_ci   * Show the reward and interstitial ad.
48361847f8eSopenharmony_ci   * @param { Advertisement } ad - Indicates the advertisement content information. ad is required.
48461847f8eSopenharmony_ci   * @param { AdDisplayOptions } options - Indicates interaction option object use to show the ad. options is required.
48561847f8eSopenharmony_ci   * @param { common.UIAbilityContext } context - Indicates the ui ability context of the media application.
48661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Invalid input parameter. Possible causes: 1. Mandatory parameters are left unspecified.
48761847f8eSopenharmony_ci   * @throws { BusinessError } 21800001 - System internal error.
48861847f8eSopenharmony_ci   * @throws { BusinessError } 21800004 - Failed to display the ad.
48961847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
49061847f8eSopenharmony_ci   * @since 11
49161847f8eSopenharmony_ci   */
49261847f8eSopenharmony_ci  /**
49361847f8eSopenharmony_ci   * Show the reward and interstitial ad.
49461847f8eSopenharmony_ci   * @param { Advertisement } ad - Indicates the advertisement content information. ad is required.
49561847f8eSopenharmony_ci   * @param { AdDisplayOptions } options - Indicates interaction option object use to show the ad. options is required.
49661847f8eSopenharmony_ci   * @param { common.UIAbilityContext } context - Indicates the ui ability context of the media application.
49761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Invalid input parameter. Possible causes: 1. Mandatory parameters are left unspecified.
49861847f8eSopenharmony_ci   * @throws { BusinessError } 21800001 - System internal error.
49961847f8eSopenharmony_ci   * @throws { BusinessError } 21800004 - Failed to display the ad.
50061847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
50161847f8eSopenharmony_ci   * @atomicservice
50261847f8eSopenharmony_ci   * @since 12
50361847f8eSopenharmony_ci   */
50461847f8eSopenharmony_ci  function showAd(ad: Advertisement, options: AdDisplayOptions, context?: common.UIAbilityContext): void;
50561847f8eSopenharmony_ci
50661847f8eSopenharmony_ci  /**
50761847f8eSopenharmony_ci   * Provides the functions of loading ads.
50861847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
50961847f8eSopenharmony_ci   * @since 11
51061847f8eSopenharmony_ci   */
51161847f8eSopenharmony_ci  /**
51261847f8eSopenharmony_ci   * Provides the functions of loading ads.
51361847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
51461847f8eSopenharmony_ci   * @atomicservice
51561847f8eSopenharmony_ci   * @since 12
51661847f8eSopenharmony_ci   */
51761847f8eSopenharmony_ci  export class AdLoader {
51861847f8eSopenharmony_ci    /**
51961847f8eSopenharmony_ci     * Constructs a adLoader object, context should be transferred.
52061847f8eSopenharmony_ci     * @param { common.Context } context - Indicates the context of the media application.
52161847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
52261847f8eSopenharmony_ci     * @since 11
52361847f8eSopenharmony_ci     */
52461847f8eSopenharmony_ci    /**
52561847f8eSopenharmony_ci     * Constructs a adLoader object, context should be transferred.
52661847f8eSopenharmony_ci     * @param { common.Context } context - Indicates the context of the media application.
52761847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
52861847f8eSopenharmony_ci     * @atomicservice
52961847f8eSopenharmony_ci     * @since 12
53061847f8eSopenharmony_ci     */
53161847f8eSopenharmony_ci    constructor(context: common.Context);
53261847f8eSopenharmony_ci
53361847f8eSopenharmony_ci    /**
53461847f8eSopenharmony_ci     * Load ad.
53561847f8eSopenharmony_ci     * @param { AdRequestParams } adParam - Indicates the parameters in the request. adParam.adId is required.
53661847f8eSopenharmony_ci     * <br>adParam.adType must be number and valid. adParam.adWidth and adParam.adHeight must be number and greater than zero
53761847f8eSopenharmony_ci     * @param { AdOptions } adOptions - Indicates the ad options.
53861847f8eSopenharmony_ci     * @param { AdLoadListener } listener - Indicates the listener to be registered that use to load ad.
53961847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Invalid input parameter. Possible causes: 1. Mandatory parameters are left unspecified.
54061847f8eSopenharmony_ci     * <br>2. Incorrect parameter types. 3.Parameter verification failed
54161847f8eSopenharmony_ci     * @throws { BusinessError } 21800001 - System internal error.
54261847f8eSopenharmony_ci     * @throws { BusinessError } 21800003 - Failed to load the ad request.
54361847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
54461847f8eSopenharmony_ci     * @since 11
54561847f8eSopenharmony_ci     */
54661847f8eSopenharmony_ci    /**
54761847f8eSopenharmony_ci     * Load ad.
54861847f8eSopenharmony_ci     * @param { AdRequestParams } adParam - Indicates the parameters in the request. adParam.adId is required.
54961847f8eSopenharmony_ci     * <br>adParam.adType must be number and valid. adParam.adWidth and adParam.adHeight must be number and greater than zero
55061847f8eSopenharmony_ci     * @param { AdOptions } adOptions - Indicates the ad options.
55161847f8eSopenharmony_ci     * @param { AdLoadListener } listener - Indicates the listener to be registered that use to load ad.
55261847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Invalid input parameter. Possible causes: 1. Mandatory parameters are left unspecified.
55361847f8eSopenharmony_ci     * <br>2. Incorrect parameter types. 3.Parameter verification failed
55461847f8eSopenharmony_ci     * @throws { BusinessError } 801 - Device not supported.
55561847f8eSopenharmony_ci     * @throws { BusinessError } 21800001 - System internal error.
55661847f8eSopenharmony_ci     * @throws { BusinessError } 21800003 - Failed to load the ad request.
55761847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
55861847f8eSopenharmony_ci     * @atomicservice
55961847f8eSopenharmony_ci     * @since 12
56061847f8eSopenharmony_ci     */
56161847f8eSopenharmony_ci    loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void;
56261847f8eSopenharmony_ci
56361847f8eSopenharmony_ci    /**
56461847f8eSopenharmony_ci     * Load ad with multi-slots.
56561847f8eSopenharmony_ci     * @param { AdRequestParams[] } adParams - Indicates the parameters in the request. adParam.adId is required.
56661847f8eSopenharmony_ci     * <br>adParam.adType must be number and valid. adParam.adWidth and adParam.adHeight must be number and greater than zero
56761847f8eSopenharmony_ci     * @param { AdOptions } adOptions - Indicates the ad options.
56861847f8eSopenharmony_ci     * @param { MultiSlotsAdLoadListener } listener - Indicates the listener to be registered that use to load ad.
56961847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Invalid input parameter. Possible causes: 1. Mandatory parameters are left unspecified.
57061847f8eSopenharmony_ci     * <br>2. Incorrect parameter types. 3.Parameter verification failed
57161847f8eSopenharmony_ci     * @throws { BusinessError } 21800001 - System internal error.
57261847f8eSopenharmony_ci     * @throws { BusinessError } 21800003 - Failed to load the ad request.
57361847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
57461847f8eSopenharmony_ci     * @since 11
57561847f8eSopenharmony_ci     */
57661847f8eSopenharmony_ci    /**
57761847f8eSopenharmony_ci     * Load ad with multi-slots.
57861847f8eSopenharmony_ci     * @param { AdRequestParams[] } adParams - Indicates the parameters in the request. adParam.adId is required.
57961847f8eSopenharmony_ci     * <br>adParam.adType must be number and valid. adParam.adWidth,adParam.adHeight must be number and greater than zero
58061847f8eSopenharmony_ci     * @param { AdOptions } adOptions - Indicates the ad options.
58161847f8eSopenharmony_ci     * @param { MultiSlotsAdLoadListener } listener - Indicates the listener to be registered that use to load ad.
58261847f8eSopenharmony_ci     * @throws { BusinessError } 401 - Invalid input parameter. Possible causes: 1. Mandatory parameters are left unspecified.
58361847f8eSopenharmony_ci     * <br>2. Incorrect parameter types. 3.Parameter verification failed
58461847f8eSopenharmony_ci     * @throws { BusinessError } 801 - Device not supported.
58561847f8eSopenharmony_ci     * @throws { BusinessError } 21800001 - System internal error.
58661847f8eSopenharmony_ci     * @throws { BusinessError } 21800003 - Failed to load the ad request.
58761847f8eSopenharmony_ci     * @syscap SystemCapability.Advertising.Ads
58861847f8eSopenharmony_ci     * @atomicservice
58961847f8eSopenharmony_ci     * @since 12
59061847f8eSopenharmony_ci     */
59161847f8eSopenharmony_ci    loadAdWithMultiSlots(adParams: AdRequestParams[], adOptions: AdOptions, listener: MultiSlotsAdLoadListener): void;
59261847f8eSopenharmony_ci  }
59361847f8eSopenharmony_ci
59461847f8eSopenharmony_ci  /**
59561847f8eSopenharmony_ci   * Get message body for ad requesting.
59661847f8eSopenharmony_ci   * @param { AdRequestParams[] } adParams - Indicates the parameters in the request.
59761847f8eSopenharmony_ci   * @param { AdOptions } adOptions - Indicates the ad options.
59861847f8eSopenharmony_ci   * @returns { Promise<string> } The promise of ad request message body.
59961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Invalid input parameter. Possible causes: 1. Mandatory parameters are left unspecified.
60061847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Device not supported.
60161847f8eSopenharmony_ci   * @throws { BusinessError } 21800001 - System internal error.
60261847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
60361847f8eSopenharmony_ci   * @since 12
60461847f8eSopenharmony_ci   */
60561847f8eSopenharmony_ci   function getAdRequestBody(adParams: AdRequestParams[], adOptions: AdOptions): Promise<string>;
60661847f8eSopenharmony_ci
60761847f8eSopenharmony_ci  /**
60861847f8eSopenharmony_ci   * Pass ad response message and parse into advertisements.
60961847f8eSopenharmony_ci   * @param { string } adResponse - Indicate the ad response message.
61061847f8eSopenharmony_ci   * @param { MultiSlotsAdLoadListener } listener - Indicates the listener to be registered that use to load ad.
61161847f8eSopenharmony_ci   * @param { common.UIAbilityContext } context - Indicates the ui ability context of the media application.
61261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Invalid input parameter.Possible causes: 1. Mandatory parameters are left unspecified.
61361847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Device not supported.
61461847f8eSopenharmony_ci   * @throws { BusinessError } 21800001 - System internal error.
61561847f8eSopenharmony_ci   * @throws { BusinessError } 21800005 - Failed to parse the ad response.
61661847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
61761847f8eSopenharmony_ci   * @since 12
61861847f8eSopenharmony_ci   */
61961847f8eSopenharmony_ci  function parseAdResponse(adResponse: string, listener: MultiSlotsAdLoadListener, context: common.UIAbilityContext): void;
62061847f8eSopenharmony_ci
62161847f8eSopenharmony_ci  /**
62261847f8eSopenharmony_ci   * Register ad javascript proxy interface into webview in order to enable web Ad.
62361847f8eSopenharmony_ci   * @param { web_webview.WebviewController } controller - Indicates webview controller to register ad javascript proxy interface.
62461847f8eSopenharmony_ci   * @param { common.UIAbilityContext } context - Indicates the ui ability context of the media application.
62561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Invalid input parameter. Possible causes: 1. Mandatory parameters are left unspecified.
62661847f8eSopenharmony_ci   * @throws { BusinessError } 21800001 - System internal error.
62761847f8eSopenharmony_ci   * @syscap SystemCapability.Advertising.Ads
62861847f8eSopenharmony_ci   * @atomicservice
62961847f8eSopenharmony_ci   * @since 12
63061847f8eSopenharmony_ci   */
63161847f8eSopenharmony_ci  function registerWebAdInterface(controller: web_webview.WebviewController, context: common.UIAbilityContext): void;
63261847f8eSopenharmony_ci}
63361847f8eSopenharmony_ci
63461847f8eSopenharmony_ciexport default advertising;