• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/**
17 * @file
18 * @kit ArkUI
19 */
20
21import { AsyncCallback } from './@ohos.base';
22import Want from './@ohos.app.ability.Want';
23
24/**
25 * Plugin component template property.
26 *
27 * @interface PluginComponentTemplate
28 * @syscap SystemCapability.ArkUI.ArkUI.Full
29 * @since 8
30 */
31/**
32 * Plugin component template property.
33 *
34 * @interface PluginComponentTemplate
35 * @syscap SystemCapability.ArkUI.ArkUI.Full
36 * @atomicservice
37 * @since 12
38 */
39interface PluginComponentTemplate {
40  /**
41   * Defines the source
42   *
43   * @type { string }
44   * @syscap SystemCapability.ArkUI.ArkUI.Full
45   * @since 8
46   */
47  /**
48   * Defines the source
49   *
50   * @type { string }
51   * @syscap SystemCapability.ArkUI.ArkUI.Full
52   * @atomicservice
53   * @since 12
54   */
55  source: string;
56
57  /**
58   * Defines the ability
59   *
60   * @type { string }
61   * @syscap SystemCapability.ArkUI.ArkUI.Full
62   * @since 8
63   */
64  /**
65   * Defines the ability
66   *
67   * @type { string }
68   * @syscap SystemCapability.ArkUI.ArkUI.Full
69   * @atomicservice
70   * @since 12
71   */
72  ability: string;
73}
74
75/**
76 * Plugin component manager interface.
77 *
78 * @namespace pluginComponentManager
79 * @syscap SystemCapability.ArkUI.ArkUI.Full
80 * @since 8
81 */
82/**
83 * Plugin component manager interface.
84 *
85 * @namespace pluginComponentManager
86 * @syscap SystemCapability.ArkUI.ArkUI.Full
87 * @atomicservice
88 * @since 12
89 */
90declare namespace pluginComponentManager {
91  /**
92   * Defines KVObject
93   *
94   * @typedef { object } KVObject
95   * @syscap SystemCapability.ArkUI.ArkUI.Full
96   * @since 8
97   */
98  /**
99   * Defines KVObject
100   *
101   * @typedef { object } KVObject
102   * @syscap SystemCapability.ArkUI.ArkUI.Full
103   * @atomicservice
104   * @since 12
105   */
106  type KVObject = { [key: string]: number | string | boolean | [] | KVObject }
107
108  /**
109   * Plugin component push parameters.
110   *
111   * @interface PushParameters
112   * @syscap SystemCapability.ArkUI.ArkUI.Full
113   * @since 8
114   */
115  /**
116   * Plugin component push parameters.
117   *
118   * @interface PushParameters
119   * @syscap SystemCapability.ArkUI.ArkUI.Full
120   * @atomicservice
121   * @since 12
122   */
123  interface PushParameters {
124    /**
125     * Defines want.
126     *
127     * @type { Want }
128     * @syscap SystemCapability.ArkUI.ArkUI.Full
129     * @since 8
130     */
131    /**
132     * Defines want.
133     *
134     * @type { Want }
135     * @syscap SystemCapability.ArkUI.ArkUI.Full
136     * @atomicservice
137     * @since 12
138     */
139    want: Want;
140
141    /**
142     * Defines name.
143     *
144     * @type { string }
145     * @syscap SystemCapability.ArkUI.ArkUI.Full
146     * @since 8
147     */
148    /**
149     * Defines name.
150     *
151     * @type { string }
152     * @syscap SystemCapability.ArkUI.ArkUI.Full
153     * @atomicservice
154     * @since 12
155     */
156    name: string;
157
158    /**
159     * Defines data.
160     *
161     * @type { KVObject }
162     * @syscap SystemCapability.ArkUI.ArkUI.Full
163     * @since 8
164     */
165    /**
166     * Defines data.
167     *
168     * @type { KVObject }
169     * @syscap SystemCapability.ArkUI.ArkUI.Full
170     * @atomicservice
171     * @since 12
172     */
173    data: KVObject;
174
175    /**
176     * Defines extraData.
177     *
178     * @type { KVObject }
179     * @syscap SystemCapability.ArkUI.ArkUI.Full
180     * @since 8
181     */
182    /**
183     * Defines extraData.
184     *
185     * @type { KVObject }
186     * @syscap SystemCapability.ArkUI.ArkUI.Full
187     * @atomicservice
188     * @since 12
189     */
190    extraData: KVObject;
191
192    /**
193     * Defines jsonPath.
194     *
195     * @type { ?string }
196     * @syscap SystemCapability.ArkUI.ArkUI.Full
197     * @since 8
198     */
199    /**
200     * Defines jsonPath.
201     *
202     * @type { ?string }
203     * @syscap SystemCapability.ArkUI.ArkUI.Full
204     * @atomicservice
205     * @since 12
206     */
207    jsonPath?: string;
208  }
209
210  /**
211   * Plugin component push parameters which is used in push function.
212   *
213   * @interface PushParameterForStage
214   * @syscap SystemCapability.ArkUI.ArkUI.Full
215   * @systemapi
216   * @since 9
217   */
218  interface PushParameterForStage {
219    /**
220     * Defines owner.
221     *
222     * @type { Want }
223     * @syscap SystemCapability.ArkUI.ArkUI.Full
224     * @systemapi
225     * @since 9
226     */
227    owner: Want;
228
229    /**
230     * Defines target.
231     *
232     * @type { Want }
233     * @syscap SystemCapability.ArkUI.ArkUI.Full
234     * @systemapi
235     * @since 9
236     */
237    target: Want;
238
239    /**
240     * Defines name.
241     *
242     * @type { string }
243     * @syscap SystemCapability.ArkUI.ArkUI.Full
244     * @systemapi
245     * @since 9
246     */
247    name: string;
248
249    /**
250     * Defines data.
251     *
252     * @type { KVObject }
253     * @syscap SystemCapability.ArkUI.ArkUI.Full
254     * @systemapi
255     * @since 9
256     */
257    data: KVObject;
258
259    /**
260     * Defines extraData.
261     *
262     * @type { KVObject }
263     * @syscap SystemCapability.ArkUI.ArkUI.Full
264     * @systemapi
265     * @since 9
266     */
267    extraData: KVObject;
268
269    /**
270     * Defines jsonPath.
271     *
272     * @type { ?string }
273     * @syscap SystemCapability.ArkUI.ArkUI.Full
274     * @systemapi
275     * @since 9
276     */
277    jsonPath?: string;
278  }
279
280  /**
281   * Plugin component request parameters.
282   *
283   * @interface RequestParameters
284   * @syscap SystemCapability.ArkUI.ArkUI.Full
285   * @since 8
286   */
287  /**
288   * Plugin component request parameters.
289   *
290   * @interface RequestParameters
291   * @syscap SystemCapability.ArkUI.ArkUI.Full
292   * @atomicservice
293   * @since 12
294   */
295  interface RequestParameters {
296    /**
297     * Defines want.
298     *
299     * @type { Want }
300     * @syscap SystemCapability.ArkUI.ArkUI.Full
301     * @since 8
302     */
303    /**
304     * Defines want.
305     *
306     * @type { Want }
307     * @syscap SystemCapability.ArkUI.ArkUI.Full
308     * @atomicservice
309     * @since 12
310     */
311    want: Want;
312
313    /**
314     * Defines name.
315     *
316     * @type { string }
317     * @syscap SystemCapability.ArkUI.ArkUI.Full
318     * @since 8
319     */
320    /**
321     * Defines name.
322     *
323     * @type { string }
324     * @syscap SystemCapability.ArkUI.ArkUI.Full
325     * @atomicservice
326     * @since 12
327     */
328    name: string;
329
330    /**
331     * Defines data.
332     *
333     * @type { KVObject }
334     * @syscap SystemCapability.ArkUI.ArkUI.Full
335     * @since 8
336     */
337    /**
338     * Defines data.
339     *
340     * @type { KVObject }
341     * @syscap SystemCapability.ArkUI.ArkUI.Full
342     * @atomicservice
343     * @since 12
344     */
345    data: KVObject;
346
347    /**
348     * Defines jsonPath.
349     *
350     * @type { ?string }
351     * @syscap SystemCapability.ArkUI.ArkUI.Full
352     * @since 8
353     */
354    /**
355     * Defines jsonPath.
356     *
357     * @type { ?string }
358     * @syscap SystemCapability.ArkUI.ArkUI.Full
359     * @atomicservice
360     * @since 12
361     */
362    jsonPath?: string;
363  }
364
365  /**
366   * Plugin component request parameters which is used in request function.
367   *
368   * @interface RequestParameterForStage
369   * @syscap SystemCapability.ArkUI.ArkUI.Full
370   * @systemapi
371   * @since 9
372   */
373  interface RequestParameterForStage {
374    /**
375     * Defines owner.
376     *
377     * @type { Want }
378     * @syscap SystemCapability.ArkUI.ArkUI.Full
379     * @systemapi
380     * @since 9
381     */
382    owner: Want;
383
384    /**
385     * Defines target.
386     *
387     * @type { Want }
388     * @syscap SystemCapability.ArkUI.ArkUI.Full
389     * @systemapi
390     * @since 9
391     */
392    target: Want;
393    /**
394     * Defines name.
395     *
396     * @type { string }
397     * @syscap SystemCapability.ArkUI.ArkUI.Full
398     * @systemapi
399     * @since 9
400     */
401    name: string;
402
403    /**
404     * Defines data.
405     *
406     * @type { KVObject }
407     * @syscap SystemCapability.ArkUI.ArkUI.Full
408     * @systemapi
409     * @since 9
410     */
411    data: KVObject;
412
413    /**
414     * Defines jsonPath.
415     *
416     * @type { ?string }
417     * @syscap SystemCapability.ArkUI.ArkUI.Full
418     * @systemapi
419     * @since 9
420     */
421    jsonPath?: string;
422  }
423
424  /**
425   * Plugin component request callback parameters.
426   *
427   * @interface RequestCallbackParameters
428   * @syscap SystemCapability.ArkUI.ArkUI.Full
429   * @since 8
430   */
431  /**
432   * Plugin component request callback parameters.
433   *
434   * @interface RequestCallbackParameters
435   * @syscap SystemCapability.ArkUI.ArkUI.Full
436   * @atomicservice
437   * @since 12
438   */
439  interface RequestCallbackParameters {
440
441    /**
442     * Defines componentTemplate.
443     *
444     * @type { PluginComponentTemplate }
445     * @syscap SystemCapability.ArkUI.ArkUI.Full
446     * @since 8
447     */
448    /**
449     * Defines componentTemplate.
450     *
451     * @type { PluginComponentTemplate }
452     * @syscap SystemCapability.ArkUI.ArkUI.Full
453     * @atomicservice
454     * @since 12
455     */
456    componentTemplate: PluginComponentTemplate;
457
458    /**
459     * Defines data.
460     *
461     * @type { KVObject }
462     * @syscap SystemCapability.ArkUI.ArkUI.Full
463     * @since 8
464     */
465    /**
466     * Defines data.
467     *
468     * @type { KVObject }
469     * @syscap SystemCapability.ArkUI.ArkUI.Full
470     * @atomicservice
471     * @since 12
472     */
473    data: KVObject;
474
475    /**
476     * Defines extraData.
477     *
478     * @type { KVObject }
479     * @syscap SystemCapability.ArkUI.ArkUI.Full
480     * @since 8
481     */
482    /**
483     * Defines extraData.
484     *
485     * @type { KVObject }
486     * @syscap SystemCapability.ArkUI.ArkUI.Full
487     * @atomicservice
488     * @since 12
489     */
490    extraData: KVObject;
491  }
492
493  /**
494   * Plugin component request event result value.
495   *
496   * @interface RequestEventResult
497   * @syscap SystemCapability.ArkUI.ArkUI.Full
498   * @since 8
499   */
500  /**
501   * Plugin component request event result value.
502   *
503   * @interface RequestEventResult
504   * @syscap SystemCapability.ArkUI.ArkUI.Full
505   * @atomicservice
506   * @since 12
507   */
508  interface RequestEventResult {
509    /**
510     * Defines template.
511     *
512     * @type { ?string }
513     * @syscap SystemCapability.ArkUI.ArkUI.Full
514     * @since 8
515     */
516    /**
517     * Defines template.
518     *
519     * @type { ?string }
520     * @syscap SystemCapability.ArkUI.ArkUI.Full
521     * @atomicservice
522     * @since 12
523     */
524    template?: string;
525
526    /**
527     * Defines data.
528     *
529     * @type { ?KVObject }
530     * @syscap SystemCapability.ArkUI.ArkUI.Full
531     * @since 8
532     */
533    /**
534     * Defines data.
535     *
536     * @type { ?KVObject }
537     * @syscap SystemCapability.ArkUI.ArkUI.Full
538     * @atomicservice
539     * @since 12
540     */
541    data?: KVObject;
542
543    /**
544     * Defines extraData.
545     *
546     * @type { ?KVObject }
547     * @syscap SystemCapability.ArkUI.ArkUI.Full
548     * @since 8
549     */
550    /**
551     * Defines extraData.
552     *
553     * @type { ?KVObject }
554     * @syscap SystemCapability.ArkUI.ArkUI.Full
555     * @atomicservice
556     * @since 12
557     */
558    extraData?: KVObject;
559  }
560
561  /**
562   * Plugin component push event callback.
563   *
564   * @typedef { function } OnPushEventCallback
565   * @syscap SystemCapability.ArkUI.ArkUI.Full
566   * @since 8
567   */
568  /**
569   * Plugin component push event callback.
570   *
571   * @typedef { function } OnPushEventCallback
572   * @syscap SystemCapability.ArkUI.ArkUI.Full
573   * @atomicservice
574   * @since 12
575   */
576  type OnPushEventCallback = (source: Want, template: PluginComponentTemplate, data: KVObject,
577    extraData: KVObject) => void;
578
579  /**
580   * Plugin component request event callback.
581   *
582   * @typedef { function } OnRequestEventCallback
583   * @syscap SystemCapability.ArkUI.ArkUI.Full
584   * @since 8
585   */
586  /**
587   * Plugin component request event callback.
588   *
589   * @typedef { function } OnRequestEventCallback
590   * @returns { RequestEventResult } Returns the request event result.
591   * @syscap SystemCapability.ArkUI.ArkUI.Full
592   * @atomicservice
593   * @since 12
594   */
595  type OnRequestEventCallback = (source: Want, name: string, data: KVObject) => RequestEventResult;
596
597  /**
598   * Plugin component push method.
599   *
600   * @param { PushParameters } param
601   * @param { AsyncCallback<void> } callback
602   * @syscap SystemCapability.ArkUI.ArkUI.Full
603   * @since 8
604   */
605  /**
606   * Plugin component push method.
607   *
608   * @param { PushParameters } param
609   * @param { AsyncCallback<void> } callback
610   * @syscap SystemCapability.ArkUI.ArkUI.Full
611   * @atomicservice
612   * @since 12
613   */
614  function push(param: PushParameters, callback: AsyncCallback<void>): void;
615
616  /**
617   * Plugin component request method.
618   *
619   * @param { RequestParameters } param
620   * @param { AsyncCallback<RequestCallbackParameters> } callback
621   * @syscap SystemCapability.ArkUI.ArkUI.Full
622   * @since 8
623   */
624  /**
625   * Plugin component request method.
626   *
627   * @param { RequestParameters } param
628   * @param { AsyncCallback<RequestCallbackParameters> } callback
629   * @syscap SystemCapability.ArkUI.ArkUI.Full
630   * @atomicservice
631   * @since 12
632   */
633  function request(param: RequestParameters, callback: AsyncCallback<RequestCallbackParameters>): void;
634
635  /**
636   * Plugin component push method used to send the information of the template it provides.
637   *
638   * @param { PushParameterForStage } param - Plugin component push parameters for stage.
639   * @param { AsyncCallback<void> } callback - Plugin component push event callback.
640   * @syscap SystemCapability.ArkUI.ArkUI.Full
641   * @systemapi
642   * @StageModelOnly
643   * @since 9
644   */
645  function push(param: PushParameterForStage, callback: AsyncCallback<void>): void;
646
647  /**
648   * Plugin component request method used to send a request for the information of the template it wants.
649   *
650   * @param { RequestParameterForStage } param - Plugin component request parameters for stage.
651   * @param { AsyncCallback<RequestCallbackParameters> } callback - Plugin component request event callback.
652   * @syscap SystemCapability.ArkUI.ArkUI.Full
653   * @systemapi
654   * @StageModelOnly
655   * @since 9
656   */
657  function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void;
658
659  /**
660   * Plugin component event listener.
661   *
662   * @param { string } eventType
663   * @param { OnPushEventCallback | OnRequestEventCallback } callback
664   * @syscap SystemCapability.ArkUI.ArkUI.Full
665   * @since 8
666   */
667  /**
668   * Plugin component event listener.
669   *
670   * @param { string } eventType
671   * @param { OnPushEventCallback | OnRequestEventCallback } callback
672   * @syscap SystemCapability.ArkUI.ArkUI.Full
673   * @atomicservice
674   * @since 12
675   */
676  function on(eventType: string, callback: OnPushEventCallback | OnRequestEventCallback): void;
677}
678
679export default pluginComponentManager;
680export type { PluginComponentTemplate };