• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2  * Copyright (c) 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
21
22
23
24
25/**
26 * Defines text only item of SegmentButton.
27 *
28 * @interface SegmentButtonTextItem
29 * @syscap SystemCapability.ArkUI.ArkUI.Full
30 * @crossplatform
31 * @since 11
32 */
33 /**
34 * Defines text only item of SegmentButton.
35 *
36 * @interface SegmentButtonTextItem
37 * @syscap SystemCapability.ArkUI.ArkUI.Full
38 * @crossplatform
39 * @atomicservice
40 * @since 12
41 */
42
43interface SegmentButtonTextItem {
44  /**
45   * The text of text only item.
46   *
47   * @type { ResourceStr }
48   * @syscap SystemCapability.ArkUI.ArkUI.Full
49   * @crossplatform
50   * @since 11
51   */
52   /**
53   * The text of text only item.
54   *
55   * @type { ResourceStr }
56   * @syscap SystemCapability.ArkUI.ArkUI.Full
57   * @crossplatform
58   * @atomicservice
59   * @since 12
60   */
61  text: ResourceStr;
62
63  /**
64   * The accessibilityLevel of buttonItem.
65   *
66   * @type { ?string }
67   * @default "auto"
68   * @syscap SystemCapability.ArkUI.ArkUI.Full
69   * @crossplatform
70   * @atomicservice
71   * @since 13
72   */
73  accessibilityLevel?: string;
74
75  /**
76   * The accessibilityDescription of buttonItem.
77   *
78   * @type { ?ResourceStr }
79   * @default ""
80   * @syscap SystemCapability.ArkUI.ArkUI.Full
81   * @crossplatform
82   * @atomicservice
83   * @since 13
84   */
85  accessibilityDescription?: ResourceStr;
86}
87
88/**
89 * Defines icon only item of SegmentButton.
90 *
91 * @interface SegmentButtonIconItem
92 * @syscap SystemCapability.ArkUI.ArkUI.Full
93 * @crossplatform
94 * @since 11
95 */
96 /**
97 * Defines icon only item of SegmentButton.
98 *
99 * @interface SegmentButtonIconItem
100 * @syscap SystemCapability.ArkUI.ArkUI.Full
101 * @crossplatform
102 * @atomicservice
103 * @since 12
104 */
105interface SegmentButtonIconItem {
106  /**
107   * The icon of icon only item.
108   *
109   * @type { ResourceStr }
110   * @syscap SystemCapability.ArkUI.ArkUI.Full
111   * @crossplatform
112   * @since 11
113   */
114   /**
115   * The icon of icon only item.
116   *
117   * @type { ResourceStr }
118   * @syscap SystemCapability.ArkUI.ArkUI.Full
119   * @crossplatform
120   * @atomicservice
121   * @since 12
122   */
123  icon: ResourceStr;
124
125  /**
126   * The accessibilityText of icon.
127   *
128   * @type { ?ResourceStr }
129   * @default ""
130   * @syscap SystemCapability.ArkUI.ArkUI.Full
131   * @crossplatform
132   * @atomicservice
133   * @since 13
134   */
135  iconAccessibilityText?: ResourceStr;
136
137  /**
138   * The icon of icon only item in the selected state.
139   *
140   * @type { ResourceStr }
141   * @syscap SystemCapability.ArkUI.ArkUI.Full
142   * @crossplatform
143   * @since 11
144   */
145   /**
146   * The icon of icon only item in the selected state.
147   *
148   * @type { ResourceStr }
149   * @syscap SystemCapability.ArkUI.ArkUI.Full
150   * @crossplatform
151   * @atomicservice
152   * @since 12
153   */
154  selectedIcon: ResourceStr;
155
156  /**
157   * The accessibilityText of selectedIcon.
158   *
159   * @type { ?ResourceStr }
160   * @default ""
161   * @syscap SystemCapability.ArkUI.ArkUI.Full
162   * @crossplatform
163   * @atomicservice
164   * @since 13
165   */
166  selectedIconAccessibilityText?: ResourceStr;
167
168  /**
169   * The accessibilityLevel of buttonItem.
170   *
171   * @type { ?string }
172   * @default "auto"
173   * @syscap SystemCapability.ArkUI.ArkUI.Full
174   * @crossplatform
175   * @atomicservice
176   * @since 13
177   */
178  accessibilityLevel?: string;
179
180  /**
181   * The accessibilityDescription of buttonItem.
182   *
183   * @type { ?ResourceStr }
184   * @default ""
185   * @syscap SystemCapability.ArkUI.ArkUI.Full
186   * @crossplatform
187   * @atomicservice
188   * @since 13
189   */
190  accessibilityDescription?: ResourceStr;
191}
192
193/**
194 * Defines icon and text item of SegmentButton.
195 *
196 * @interface SegmentButtonIconTextItem
197 * @syscap SystemCapability.ArkUI.ArkUI.Full
198 * @crossplatform
199 * @since 11
200 */
201 /**
202 * Defines icon and text item of SegmentButton.
203 *
204 * @interface SegmentButtonIconTextItem
205 * @syscap SystemCapability.ArkUI.ArkUI.Full
206 * @crossplatform
207 * @atomicservice
208 * @since 12
209 */
210interface SegmentButtonIconTextItem {
211  /**
212   * The icon of icon and text item.
213   *
214   * @type { ResourceStr }
215   * @syscap SystemCapability.ArkUI.ArkUI.Full
216   * @crossplatform
217   * @since 11
218   */
219   /**
220   * The icon of icon and text item.
221   *
222   * @type { ResourceStr }
223   * @syscap SystemCapability.ArkUI.ArkUI.Full
224   * @crossplatform
225   * @atomicservice
226   * @since 12
227   */
228  icon: ResourceStr;
229
230  /**
231   * The accessibilityText of icon.
232   *
233   * @type { ?ResourceStr }
234   * @default ""
235   * @syscap SystemCapability.ArkUI.ArkUI.Full
236   * @crossplatform
237   * @atomicservice
238   * @since 13
239   */
240  iconAccessibilityText?: ResourceStr;
241
242  /**
243   * The icon of icon and text item in the selected state.
244   *
245   * @type { ResourceStr }
246   * @syscap SystemCapability.ArkUI.ArkUI.Full
247   * @crossplatform
248   * @since 11
249   */
250   /**
251   * The icon of icon and text item in the selected state.
252   *
253   * @type { ResourceStr }
254   * @syscap SystemCapability.ArkUI.ArkUI.Full
255   * @crossplatform
256   * @atomicservice
257   * @since 12
258   */
259  selectedIcon: ResourceStr;
260
261  /**
262   * The accessibilityText of selectedIcon.
263   *
264   * @type { ?ResourceStr }
265   * @default ""
266   * @syscap SystemCapability.ArkUI.ArkUI.Full
267   * @crossplatform
268   * @atomicservice
269   * @since 13
270   */
271  selectedIconAccessibilityText?: ResourceStr;
272
273  /**
274   * The text of icon and text item.
275   *
276   * @type { ResourceStr }
277   * @syscap SystemCapability.ArkUI.ArkUI.Full
278   * @crossplatform
279   * @since 11
280   */
281   /**
282   * The text of icon and text item.
283   *
284   * @type { ResourceStr }
285   * @syscap SystemCapability.ArkUI.ArkUI.Full
286   * @crossplatform
287   * @atomicservice
288   * @since 12
289   */
290  text: ResourceStr;
291
292  /**
293   * The accessibilityLevel of buttonItem.
294   *
295   * @type { ?string }
296   * @default "auto"
297   * @syscap SystemCapability.ArkUI.ArkUI.Full
298   * @crossplatform
299   * @atomicservice
300   * @since 13
301   */
302  accessibilityLevel?: string;
303
304  /**
305   * The accessibilityDescription of buttonItem.
306   *
307   * @type { ?ResourceStr }
308   * @default ""
309   * @syscap SystemCapability.ArkUI.ArkUI.Full
310   * @crossplatform
311   * @atomicservice
312   * @since 13
313   */
314  accessibilityDescription?: ResourceStr;
315}
316
317/**
318 * Defines the DimensionNoPercentage type.
319 *
320 * @syscap SystemCapability.ArkUI.ArkUI.Full
321 * @crossplatform
322 * @since 11
323 */
324 /**
325 * Defines the DimensionNoPercentage type.
326 *
327 * @syscap SystemCapability.ArkUI.ArkUI.Full
328 * @crossplatform
329 * @atomicservice
330 * @since 12
331 */
332declare type DimensionNoPercentage = PX | VP | FP | LPX | Resource;
333
334/**
335 * Defines SegmentButton common options.
336 *
337 * @interface CommonSegmentButtonOptions
338 * @syscap SystemCapability.ArkUI.ArkUI.Full
339 * @crossplatform
340 * @since 11
341 */
342 /**
343 * Defines SegmentButton common options.
344 *
345 * @interface CommonSegmentButtonOptions
346 * @syscap SystemCapability.ArkUI.ArkUI.Full
347 * @crossplatform
348 * @atomicservice
349 * @since 12
350 */
351interface CommonSegmentButtonOptions {
352  /**
353   * The font color of buttons.
354   *
355   * @type { ?ResourceColor }
356   * @syscap SystemCapability.ArkUI.ArkUI.Full
357   * @crossplatform
358   * @since 11
359   */
360   /**
361   * The font color of buttons.
362   *
363   * @type { ?ResourceColor }
364   * @syscap SystemCapability.ArkUI.ArkUI.Full
365   * @crossplatform
366   * @atomicservice
367   * @since 12
368   */
369  fontColor?: ResourceColor;
370
371  /**
372   * The font color of selected button.
373   *
374   * @type { ?ResourceColor }
375   * @syscap SystemCapability.ArkUI.ArkUI.Full
376   * @crossplatform
377   * @since 11
378   */
379   /**
380   * The font color of selected button.
381   *
382   * @type { ?ResourceColor }
383   * @syscap SystemCapability.ArkUI.ArkUI.Full
384   * @crossplatform
385   * @atomicservice
386   * @since 12
387   */
388  selectedFontColor?: ResourceColor;
389
390  /**
391   * The font size of buttons.
392   *
393   * @type { ?DimensionNoPercentage }
394   * @default $r('sys.float.ohos_id_text_size_body2')
395   * @syscap SystemCapability.ArkUI.ArkUI.Full
396   * @crossplatform
397   * @since 11
398   */
399   /**
400   * The font size of buttons.
401   *
402   * @type { ?DimensionNoPercentage }
403   * @default $r('sys.float.ohos_id_text_size_body2')
404   * @syscap SystemCapability.ArkUI.ArkUI.Full
405   * @crossplatform
406   * @atomicservice
407   * @since 12
408   */
409  fontSize?: DimensionNoPercentage;
410
411  /**
412   * The font size of selected button.
413   *
414   * @type { ?DimensionNoPercentage }
415   * @default $r('sys.float.ohos_id_text_size_body2')
416   * @syscap SystemCapability.ArkUI.ArkUI.Full
417   * @crossplatform
418   * @since 11
419   */
420   /**
421   * The font size of selected button.
422   *
423   * @type { ?DimensionNoPercentage }
424   * @default $r('sys.float.ohos_id_text_size_body2')
425   * @syscap SystemCapability.ArkUI.ArkUI.Full
426   * @crossplatform
427   * @atomicservice
428   * @since 12
429   */
430  selectedFontSize?: DimensionNoPercentage;
431
432  /**
433   * The font weight of buttons.
434   *
435   * @type { ?FontWeight }
436   * @default FontWeight.Regular
437   * @syscap SystemCapability.ArkUI.ArkUI.Full
438   * @crossplatform
439   * @since 11
440   */
441   /**
442   * The font weight of buttons.
443   *
444   * @type { ?FontWeight }
445   * @default FontWeight.Regular
446   * @syscap SystemCapability.ArkUI.ArkUI.Full
447   * @crossplatform
448   * @atomicservice
449   * @since 12
450   */
451  fontWeight?: FontWeight;
452
453  /**
454   * The font weight of selected button.
455   *
456   * @type { ?FontWeight }
457   * @default FontWeight.Medium
458   * @syscap SystemCapability.ArkUI.ArkUI.Full
459   * @crossplatform
460   * @since 11
461   */
462   /**
463   * The font weight of selected button.
464   *
465   * @type { ?FontWeight }
466   * @default FontWeight.Medium
467   * @syscap SystemCapability.ArkUI.ArkUI.Full
468   * @crossplatform
469   * @atomicservice
470   * @since 12
471   */
472  selectedFontWeight?: FontWeight;
473
474  /**
475   * The background color of SegmentButton.
476   *
477   * @type { ?ResourceColor }
478   * @default $r('sys.color.ohos_id_color_button_normal')
479   * @syscap SystemCapability.ArkUI.ArkUI.Full
480   * @crossplatform
481   * @since 11
482   */
483   /**
484   * The background color of SegmentButton.
485   *
486   * @type { ?ResourceColor }
487   * @default $r('sys.color.ohos_id_color_button_normal')
488   * @syscap SystemCapability.ArkUI.ArkUI.Full
489   * @crossplatform
490   * @atomicservice
491   * @since 12
492   */
493  backgroundColor?: ResourceColor;
494
495  /**
496   * The background color of selected button.
497   *
498   * @type { ?ResourceColor }
499   * @syscap SystemCapability.ArkUI.ArkUI.Full
500   * @crossplatform
501   * @since 11
502   */
503   /**
504   * The background color of selected button.
505   *
506   * @type { ?ResourceColor }
507   * @syscap SystemCapability.ArkUI.ArkUI.Full
508   * @crossplatform
509   * @atomicservice
510   * @since 12
511   */
512  selectedBackgroundColor?: ResourceColor;
513
514  /**
515   * The image size of buttons.
516   *
517   * @type { ?SizeOptions }
518   * @default SizeOptions { width: 24, height: 24 }
519   * @syscap SystemCapability.ArkUI.ArkUI.Full
520   * @crossplatform
521   * @since 11
522   */
523   /**
524   * The image size of buttons.
525   *
526   * @type { ?SizeOptions }
527   * @default SizeOptions { width: 24, height: 24 }
528   * @syscap SystemCapability.ArkUI.ArkUI.Full
529   * @crossplatform
530   * @atomicservice
531   * @since 12
532   */
533  imageSize?: SizeOptions;
534
535  /**
536   * The padding of buttons.
537   *
538   * @type { ?Padding | Dimension }
539   * @default For text only / icon only buttons Padding { top: 4, right: 8, bottom: 4, left: 8 }.
540   *          For text & icon buttons Padding { top: 6, right: 8, bottom: 6, left: 8 }.
541   * @syscap SystemCapability.ArkUI.ArkUI.Full
542   * @crossplatform
543   * @since 11
544   */
545   /**
546   * The padding of buttons.
547   *
548   * @type { ?Padding | Dimension }
549   * @default For text only / icon only buttons Padding { top: 4, right: 8, bottom: 4, left: 8 }.
550   *          For text & icon buttons Padding { top: 6, right: 8, bottom: 6, left: 8 }.
551   * @syscap SystemCapability.ArkUI.ArkUI.Full
552   * @crossplatform
553   * @atomicservice
554   * @since 12
555   */
556  buttonPadding?: Padding | Dimension;
557
558   /**
559   * The localized padding of buttons.
560   *
561   * @type { ?LocalizedPadding }
562   * @default For text only / icon only buttons LocalizedPadding
563   * { top: LengthMetrics.vp(4), end: LengthMetrics.vp(8), bottom: LengthMetrics.vp(4), start: LengthMetrics.vp(8) }.
564   * For text & icon buttons LocalizedPadding
565   * {{ top: LengthMetrics.vp(6), end: LengthMetrics.vp(8), bottom: LengthMetrics.vp(6), start: LengthMetrics.vp(8) }.
566   * @syscap SystemCapability.ArkUI.ArkUI.Full
567   * @crossplatform
568   * @atomicservice
569   * @since 12
570   */
571  localizedButtonPadding?: LocalizedPadding;
572
573  /**
574   * The padding of text in button.
575   *
576   * @type { ?Padding | Dimension }
577   * @default 0
578   * @syscap SystemCapability.ArkUI.ArkUI.Full
579   * @crossplatform
580   * @since 11
581   */
582   /**
583   * The padding of text in button.
584   *
585   * @type { ?Padding | Dimension }
586   * @default 0
587   * @syscap SystemCapability.ArkUI.ArkUI.Full
588   * @crossplatform
589   * @atomicservice
590   * @since 12
591   */
592  textPadding?: Padding | Dimension;
593
594   /**
595   * The localized padding of text in button.
596   *
597   * @type { ?LocalizedPadding }
598   * @syscap SystemCapability.ArkUI.ArkUI.Full
599   * @crossplatform
600   * @atomicservice
601   * @since 12
602   */
603  localizedTextPadding?: LocalizedPadding;
604
605  /**
606   * The blurStyle of background.
607   *
608   * @type { ?BlurStyle }
609   * @syscap SystemCapability.ArkUI.ArkUI.Full
610   * @crossplatform
611   * @since 11
612   */
613   /**
614   * The blurStyle of background.
615   *
616   * @type { ?BlurStyle }
617   * @syscap SystemCapability.ArkUI.ArkUI.Full
618   * @crossplatform
619   * @atomicservice
620   * @since 12
621   */
622  backgroundBlurStyle?: BlurStyle;
623
624  /**
625   * Indicates the attribute of the current segment button direction.
626   *
627   * @type { ?Direction }
628   * @syscap SystemCapability.ArkUI.ArkUI.Full
629   * @crossplatform
630   * @atomicservice
631   * @since 12
632   */
633  direction?: Direction;
634}
635
636/**
637 * Defines the ItemRestriction type.
638 *
639 * @syscap SystemCapability.ArkUI.ArkUI.Full
640 * @crossplatform
641 * @since 11
642 */
643 /**
644 * Defines the ItemRestriction type.
645 *
646 * @syscap SystemCapability.ArkUI.ArkUI.Full
647 * @crossplatform
648 * @atomicservice
649 * @since 12
650 */
651declare type ItemRestriction<T> = [T, T, T?, T?, T?];
652
653/**
654 * Defines the SegmentButtonItemTuple type.
655 *
656 * @syscap SystemCapability.ArkUI.ArkUI.Full
657 * @crossplatform
658 * @since 11
659 */
660 /**
661 * Defines the SegmentButtonItemTuple type.
662 *
663 * @syscap SystemCapability.ArkUI.ArkUI.Full
664 * @crossplatform
665 * @atomicservice
666 * @since 12
667 */
668declare type SegmentButtonItemTuple = ItemRestriction<SegmentButtonTextItem> | ItemRestriction<SegmentButtonIconItem> | ItemRestriction<SegmentButtonIconTextItem>;
669
670/**
671 * Defines the SegmentButtonItemArray type.
672 *
673 * @syscap SystemCapability.ArkUI.ArkUI.Full
674 * @crossplatform
675 * @since 11
676 */
677 /**
678 * Defines the SegmentButtonItemArray type.
679 *
680 * @syscap SystemCapability.ArkUI.ArkUI.Full
681 * @crossplatform
682 * @atomicservice
683 * @since 12
684 */
685declare type SegmentButtonItemArray = Array<SegmentButtonTextItem> | Array<SegmentButtonIconItem> | Array<SegmentButtonIconTextItem>;
686
687/**
688 * Defines SegmentButton tab options.
689 *
690 * @interface TabSegmentButtonConstructionOptions
691 * @extends CommonSegmentButtonOptions
692 * @syscap SystemCapability.ArkUI.ArkUI.Full
693 * @crossplatform
694 * @since 11
695 */
696 /**
697 * Defines SegmentButton tab options.
698 *
699 * @interface TabSegmentButtonConstructionOptions
700 * @extends CommonSegmentButtonOptions
701 * @syscap SystemCapability.ArkUI.ArkUI.Full
702 * @crossplatform
703 * @atomicservice
704 * @since 12
705 */
706interface TabSegmentButtonConstructionOptions extends CommonSegmentButtonOptions {
707  /**
708   * The items of tab type of SegmentButton.
709   *
710   * @type { ItemRestriction<SegmentButtonTextItem> }
711   * @syscap SystemCapability.ArkUI.ArkUI.Full
712   * @crossplatform
713   * @since 11
714   */
715  /**
716   * The items of tab type of SegmentButton.
717   *
718   * @type { ItemRestriction<SegmentButtonTextItem> }
719   * @syscap SystemCapability.ArkUI.ArkUI.Full
720   * @crossplatform
721   * @atomicservice
722   * @since 12
723   */
724  buttons: ItemRestriction<SegmentButtonTextItem>;
725}
726
727/**
728 * Defines SegmentButton capsule options.
729 *
730 * @interface CapsuleSegmentButtonConstructionOptions
731 * @extends CommonSegmentButtonOptions
732 * @syscap SystemCapability.ArkUI.ArkUI.Full
733 * @crossplatform
734 * @since 11
735 */
736 /**
737 * Defines SegmentButton capsule options.
738 *
739 * @interface CapsuleSegmentButtonConstructionOptions
740 * @extends CommonSegmentButtonOptions
741 * @syscap SystemCapability.ArkUI.ArkUI.Full
742 * @crossplatform
743 * @atomicservice
744 * @since 12
745 */
746interface CapsuleSegmentButtonConstructionOptions extends CommonSegmentButtonOptions {
747  /**
748   * The items of capsule type of SegmentButton.
749   *
750   * @type { SegmentButtonItemTuple }
751   * @syscap SystemCapability.ArkUI.ArkUI.Full
752   * @crossplatform
753   * @since 11
754   */
755   /**
756   * The items of capsule type of SegmentButton.
757   *
758   * @type { SegmentButtonItemTuple }
759   * @syscap SystemCapability.ArkUI.ArkUI.Full
760   * @crossplatform
761   * @atomicservice
762   * @since 12
763   */
764  buttons: SegmentButtonItemTuple;
765
766  /**
767   * Support multiple selections flag.
768   *
769   * @type { ?boolean }
770   * @default false
771   * @syscap SystemCapability.ArkUI.ArkUI.Full
772   * @crossplatform
773   * @since 11
774   */
775   /**
776   * Support multiple selections flag.
777   *
778   * @type { ?boolean }
779   * @default false
780   * @syscap SystemCapability.ArkUI.ArkUI.Full
781   * @crossplatform
782   * @atomicservice
783   * @since 12
784   */
785  multiply?: boolean;
786}
787
788/**
789 * Defines the type of SegmentButton options of tab type.
790 *
791 * @interface TabSegmentButtonOptions
792 * @extends TabSegmentButtonConstructionOptions
793 * @syscap SystemCapability.ArkUI.ArkUI.Full
794 * @crossplatform
795 * @since 11
796 */
797 /**
798 * Defines the type of SegmentButton options of tab type.
799 *
800 * @interface TabSegmentButtonOptions
801 * @extends TabSegmentButtonConstructionOptions
802 * @syscap SystemCapability.ArkUI.ArkUI.Full
803 * @crossplatform
804 * @atomicservice
805 * @since 12
806 */
807interface TabSegmentButtonOptions extends TabSegmentButtonConstructionOptions {
808  /**
809   * The type of SegmentButton.
810   *
811   * @type { "tab" }
812   * @syscap SystemCapability.ArkUI.ArkUI.Full
813   * @crossplatform
814   * @since 11
815   */
816   /**
817   * The type of SegmentButton.
818   *
819   * @type { "tab" }
820   * @syscap SystemCapability.ArkUI.ArkUI.Full
821   * @crossplatform
822   * @atomicservice
823   * @since 12
824   */
825  type: "tab";
826}
827
828/**
829 * Defines the type of SegmentButton options of capsule type.
830 *
831 * @interface CapsuleSegmentButtonOptions
832 * @extends CapsuleSegmentButtonConstructionOptions
833 * @syscap SystemCapability.ArkUI.ArkUI.Full
834 * @crossplatform
835 * @since 11
836 */
837 /**
838 * Defines the type of SegmentButton options of capsule type.
839 *
840 * @interface CapsuleSegmentButtonOptions
841 * @extends CapsuleSegmentButtonConstructionOptions
842 * @syscap SystemCapability.ArkUI.ArkUI.Full
843 * @crossplatform
844 * @atomicservice
845 * @since 12
846 */
847interface CapsuleSegmentButtonOptions extends CapsuleSegmentButtonConstructionOptions {
848  /**
849   * The type of SegmentButton.
850   *
851   * @type { "capsule" }
852   * @syscap SystemCapability.ArkUI.ArkUI.Full
853   * @crossplatform
854   * @since 11
855   */
856   /**
857   * The type of SegmentButton.
858   *
859   * @type { "capsule" }
860   * @syscap SystemCapability.ArkUI.ArkUI.Full
861   * @crossplatform
862   * @atomicservice
863   * @since 12
864   */
865  type: "capsule";
866}
867
868/**
869 * Construct parameter types for SegmentButtonItemOptions.
870 *
871 * @syscap SystemCapability.ArkUI.ArkUI.Full
872 * @crossplatform
873 * @since 11
874 */
875 /**
876 * Construct parameter types for SegmentButtonItemOptions.
877 *
878 * @syscap SystemCapability.ArkUI.ArkUI.Full
879 * @crossplatform
880 * @atomicservice
881 * @since 12
882 */
883interface SegmentButtonItemOptionsConstructorOptions {
884  /**
885   * The icon of icon and text item.
886   *
887   * @type { ?ResourceStr }
888   * @syscap SystemCapability.ArkUI.ArkUI.Full
889   * @crossplatform
890   * @since 11
891   */
892   /**
893   * The icon of icon and text item.
894   *
895   * @type { ?ResourceStr }
896   * @syscap SystemCapability.ArkUI.ArkUI.Full
897   * @crossplatform
898   * @atomicservice
899   * @since 12
900   */
901  icon?: ResourceStr;
902
903  /**
904   * The accessibilityText of icon.
905   *
906   * @type { ?ResourceStr }
907   * @default ""
908   * @syscap SystemCapability.ArkUI.ArkUI.Full
909   * @crossplatform
910   * @atomicservice
911   * @since 13
912   */
913  iconAccessibilityText?: ResourceStr;
914
915  /**
916   * The icon of icon and text item in the selected state.
917   *
918   * @type { ?ResourceStr }
919   * @syscap SystemCapability.ArkUI.ArkUI.Full
920   * @crossplatform
921   * @since 11
922   */
923   /**
924   * The icon of icon and text item in the selected state.
925   *
926   * @type { ?ResourceStr }
927   * @syscap SystemCapability.ArkUI.ArkUI.Full
928   * @crossplatform
929   * @atomicservice
930   * @since 12
931   */
932  selectedIcon?: ResourceStr;
933
934  /**
935   * The accessibilityText of selectedIcon.
936   *
937   * @type { ?ResourceStr }
938   * @default ""
939   * @syscap SystemCapability.ArkUI.ArkUI.Full
940   * @crossplatform
941   * @atomicservice
942   * @since 13
943   */
944  selectedIconAccessibilityText?: ResourceStr;
945
946  /**
947   * The text of icon and text item.
948   *
949   * @type { ?ResourceStr }
950   * @syscap SystemCapability.ArkUI.ArkUI.Full
951   * @crossplatform
952   * @since 11
953   */
954   /**
955   * The text of icon and text item.
956   *
957   * @type { ?ResourceStr }
958   * @syscap SystemCapability.ArkUI.ArkUI.Full
959   * @crossplatform
960   * @atomicservice
961   * @since 12
962   */
963  text?: ResourceStr;
964
965  /**
966   * The accessibilityLevel of buttonItem.
967   *
968   * @type { ?string }
969   * @default "auto"
970   * @syscap SystemCapability.ArkUI.ArkUI.Full
971   * @crossplatform
972   * @atomicservice
973   * @since 13
974   */
975  accessibilityLevel?: string;
976
977  /**
978   * The accessibilityDescription of buttonItem.
979   *
980   * @type { ?ResourceStr }
981   * @default ""
982   * @syscap SystemCapability.ArkUI.ArkUI.Full
983   * @crossplatform
984   * @atomicservice
985   * @since 13
986   */
987  accessibilityDescription?: ResourceStr;
988}
989
990/**
991 * The options for SegmentButton items.
992 *
993 * @syscap SystemCapability.ArkUI.ArkUI.Full
994 * @crossplatform
995 * @since 11
996 */
997 /**
998 * The options for SegmentButton items.
999 *
1000 * @syscap SystemCapability.ArkUI.ArkUI.Full
1001 * @crossplatform
1002 * @atomicservice
1003 * @since 12
1004 */
1005@Observed
1006declare class SegmentButtonItemOptions {
1007  /**
1008   * The icon of item.
1009   *
1010   * @type { ?ResourceStr }
1011   * @syscap SystemCapability.ArkUI.ArkUI.Full
1012   * @crossplatform
1013   * @since 11
1014   */
1015   /**
1016   * The icon of item.
1017   *
1018   * @type { ?ResourceStr }
1019   * @syscap SystemCapability.ArkUI.ArkUI.Full
1020   * @crossplatform
1021   * @atomicservice
1022   * @since 12
1023   */
1024  icon?: ResourceStr;
1025
1026  /**
1027   * The accessibilityText of icon.
1028   *
1029   * @type { ?ResourceStr }
1030   * @default ""
1031   * @syscap SystemCapability.ArkUI.ArkUI.Full
1032   * @crossplatform
1033   * @atomicservice
1034   * @since 13
1035   */
1036  iconAccessibilityText?: ResourceStr;
1037
1038  /**
1039   * The icon of selected item.
1040   *
1041   * @type { ?ResourceStr }
1042   * @syscap SystemCapability.ArkUI.ArkUI.Full
1043   * @crossplatform
1044   * @since 11
1045   */
1046   /**
1047   * The icon of selected item.
1048   *
1049   * @type { ?ResourceStr }
1050   * @syscap SystemCapability.ArkUI.ArkUI.Full
1051   * @crossplatform
1052   * @atomicservice
1053   * @since 12
1054   */
1055  selectedIcon?: ResourceStr;
1056
1057  /**
1058   * The accessibilityText of selectedIcon.
1059   *
1060   * @type { ?ResourceStr }
1061   * @default ""
1062   * @syscap SystemCapability.ArkUI.ArkUI.Full
1063   * @crossplatform
1064   * @atomicservice
1065   * @since 13
1066   */
1067  selectedIconAccessibilityText?: ResourceStr;
1068
1069  /**
1070   * The text of item.
1071   *
1072   * @type { ?ResourceStr }
1073   * @syscap SystemCapability.ArkUI.ArkUI.Full
1074   * @crossplatform
1075   * @since 11
1076   */
1077   /**
1078   * The text of item.
1079   *
1080   * @type { ?ResourceStr }
1081   * @syscap SystemCapability.ArkUI.ArkUI.Full
1082   * @crossplatform
1083   * @atomicservice
1084   * @since 12
1085   */
1086  text?: ResourceStr;
1087
1088  /**
1089   * The accessibilityLevel of buttonItem.
1090   *
1091   * @type { ?string }
1092   * @default "auto"
1093   * @syscap SystemCapability.ArkUI.ArkUI.Full
1094   * @crossplatform
1095   * @atomicservice
1096   * @since 13
1097   */
1098  accessibilityLevel?: string;
1099
1100  /**
1101   * The accessibilityDescription of buttonItem.
1102   *
1103   * @type { ?ResourceStr }
1104   * @default ""
1105   * @syscap SystemCapability.ArkUI.ArkUI.Full
1106   * @crossplatform
1107   * @atomicservice
1108   * @since 13
1109   */
1110  accessibilityDescription?: ResourceStr;
1111
1112  /**
1113   * The constructor used to create a SegmentButtonOptionsArray object.
1114   *
1115   * @param { SegmentButtonItemOptionsConstructorOptions } options - item info.
1116   * @syscap SystemCapability.ArkUI.ArkUI.Full
1117   * @crossplatform
1118   * @since 11
1119   */
1120  /**
1121   * The constructor used to create a SegmentButtonOptionsArray object.
1122   *
1123   * @param { SegmentButtonItemOptionsConstructorOptions } options - item info.
1124   * @syscap SystemCapability.ArkUI.ArkUI.Full
1125   * @crossplatform
1126   * @atomicservice
1127   * @since 12
1128   */
1129  constructor(options: SegmentButtonItemOptionsConstructorOptions);
1130}
1131
1132/**
1133 * The class for SegmentButton item options array.
1134 *
1135 * @extends Array<SegmentButtonItemOptions>
1136 * @syscap SystemCapability.ArkUI.ArkUI.Full
1137 * @crossplatform
1138 * @since 11
1139 */
1140 /**
1141 * The class for SegmentButton item options array.
1142 *
1143 * @extends Array<SegmentButtonItemOptions>
1144 * @syscap SystemCapability.ArkUI.ArkUI.Full
1145 * @crossplatform
1146 * @atomicservice
1147 * @since 12
1148 */
1149@Observed
1150declare class SegmentButtonItemOptionsArray extends Array<SegmentButtonItemOptions> {
1151  /**
1152   * The constructor used to create a SegmentButtonItemOptionsArray object.
1153   *
1154   * @param { SegmentButtonItemTuple } elements - The SegmentButton items.
1155   * @syscap SystemCapability.ArkUI.ArkUI.Full
1156   * @crossplatform
1157   * @since 11
1158   */
1159   /**
1160   * The constructor used to create a SegmentButtonItemOptionsArray object.
1161   *
1162   * @param { SegmentButtonItemTuple } elements - The SegmentButton items.
1163   * @syscap SystemCapability.ArkUI.ArkUI.Full
1164   * @crossplatform
1165   * @atomicservice
1166   * @since 12
1167   */
1168  constructor(elements: SegmentButtonItemTuple);
1169
1170  /**
1171   * Appends new elements to the end of SegmentButtonItemOptionsArray.
1172   *
1173   * @param { SegmentButtonItemArray } items - New elements to add to SegmentButtonItemOptionsArray.
1174   * @returns { number } Returns the new length of SegmentButtonItemOptionsArray.
1175   * @syscap SystemCapability.ArkUI.ArkUI.Full
1176   * @crossplatform
1177   * @since 11
1178   */
1179   /**
1180   * Appends new elements to the end of SegmentButtonItemOptionsArray.
1181   *
1182   * @param { SegmentButtonItemArray } items - New elements to add to SegmentButtonItemOptionsArray.
1183   * @returns { number } Returns the new length of SegmentButtonItemOptionsArray.
1184   * @syscap SystemCapability.ArkUI.ArkUI.Full
1185   * @crossplatform
1186   * @atomicservice
1187   * @since 12
1188   */
1189  push(...items: SegmentButtonItemArray): number;
1190
1191  /**
1192   * Removes the last element from SegmentButtonItemOptionsArray.
1193   *
1194   * @returns { SegmentButtonItemOptions | undefined } Returns the removed element.
1195   * @syscap SystemCapability.ArkUI.ArkUI.Full
1196   * @crossplatform
1197   * @since 11
1198   */
1199   /**
1200   * Removes the last element from SegmentButtonItemOptionsArray.
1201   *
1202   * @returns { SegmentButtonItemOptions | undefined } Returns the removed element.
1203   * @syscap SystemCapability.ArkUI.ArkUI.Full
1204   * @crossplatform
1205   * @atomicservice
1206   * @since 12
1207   */
1208  pop(): SegmentButtonItemOptions | undefined;
1209
1210  /**
1211   * Removes the first element from SegmentButtonItemOptionsArray.
1212   *
1213   * @returns { SegmentButtonItemOptions | undefined } Returns the removed element.
1214   * @syscap SystemCapability.ArkUI.ArkUI.Full
1215   * @crossplatform
1216   * @since 11
1217   */
1218   /**
1219   * Removes the first element from SegmentButtonItemOptionsArray.
1220   *
1221   * @returns { SegmentButtonItemOptions | undefined } Returns the removed element.
1222   * @syscap SystemCapability.ArkUI.ArkUI.Full
1223   * @crossplatform
1224   * @atomicservice
1225   * @since 12
1226   */
1227  shift(): SegmentButtonItemOptions | undefined;
1228
1229  /**
1230   * Appends new elements to the start of SegmentButtonItemOptionsArray.
1231   *
1232   * @param { SegmentButtonItemArray } items - New elements to add to SegmentButtonItemOptionsArray.
1233   * @returns { number } Returns the new length of SegmentButtonItemOptionsArray.
1234   * @syscap SystemCapability.ArkUI.ArkUI.Full
1235   * @crossplatform
1236   * @since 11
1237   */
1238   /**
1239   * Appends new elements to the start of SegmentButtonItemOptionsArray.
1240   *
1241   * @param { SegmentButtonItemArray } items - New elements to add to SegmentButtonItemOptionsArray.
1242   * @returns { number } Returns the new length of SegmentButtonItemOptionsArray.
1243   * @syscap SystemCapability.ArkUI.ArkUI.Full
1244   * @crossplatform
1245   * @atomicservice
1246   * @since 12
1247   */
1248  unshift(...items: SegmentButtonItemArray): number;
1249
1250  /**
1251   * Changes the elements of SegmentButtonItemOptionsArray by removing or replacing existing elements and/or adding new elements in place.
1252   *
1253   * @param { number } start - The zero-based location in the array from which to start removing elements.
1254   * @param { number } deleteCount - The number of elements to remove.
1255   * @param { SegmentButtonItemOptions[] } items - Elements to insert into the array in place of the deleted elements.
1256   * @returns { SegmentButtonItemOptions[] } Returns a SegmentButtonItemOptions array containing the deleted elements.
1257   * @syscap SystemCapability.ArkUI.ArkUI.Full
1258   * @crossplatform
1259   * @since 11
1260   */
1261   /**
1262   * Changes the elements of SegmentButtonItemOptionsArray by removing or replacing existing elements and/or adding new elements in place.
1263   *
1264   * @param { number } start - The zero-based location in the array from which to start removing elements.
1265   * @param { number } deleteCount - The number of elements to remove.
1266   * @param { SegmentButtonItemOptions[] } items - Elements to insert into the array in place of the deleted elements.
1267   * @returns { SegmentButtonItemOptions[] } Returns a SegmentButtonItemOptions array containing the deleted elements.
1268   * @syscap SystemCapability.ArkUI.ArkUI.Full
1269   * @crossplatform
1270   * @atomicservice
1271   * @since 12
1272   */
1273  splice(start: number, deleteCount: number, ...items: SegmentButtonItemOptions[]): SegmentButtonItemOptions[];
1274
1275  /**
1276   * The function used to create a SegmentButtonItemOptionsArray object.
1277   *
1278   * @param { SegmentButtonItemTuple } elements - The SegmentButton items.
1279   * @returns { SegmentButtonItemOptionsArray } Returns the a new SegmentButtonItemOptionsArray object.
1280   * @syscap SystemCapability.ArkUI.ArkUI.Full
1281   * @crossplatform
1282   * @since 11
1283   */
1284   /**
1285   * The function used to create a SegmentButtonItemOptionsArray object.
1286   *
1287   * @param { SegmentButtonItemTuple } elements - The SegmentButton items.
1288   * @returns { SegmentButtonItemOptionsArray } Returns the a new SegmentButtonItemOptionsArray object.
1289   * @syscap SystemCapability.ArkUI.ArkUI.Full
1290   * @crossplatform
1291   * @atomicservice
1292   * @since 12
1293   */
1294  static create(elements: SegmentButtonItemTuple): SegmentButtonItemOptionsArray;
1295}
1296
1297/**
1298 * The class for SegmentButton options.
1299 *
1300 * @syscap SystemCapability.ArkUI.ArkUI.Full
1301 * @crossplatform
1302 * @since 11
1303 */
1304 /**
1305 * The class for SegmentButton options.
1306 *
1307 * @syscap SystemCapability.ArkUI.ArkUI.Full
1308 * @crossplatform
1309 * @atomicservice
1310 * @since 12
1311 */
1312@Observed
1313declare class SegmentButtonOptions {
1314  /**
1315   * The type of SegmentButton.
1316   *
1317   * @type { "tab" | "capsule" }
1318   * @syscap SystemCapability.ArkUI.ArkUI.Full
1319   * @crossplatform
1320   * @since 11
1321   */
1322   /**
1323   * The type of SegmentButton.
1324   *
1325   * @type { "tab" | "capsule" }
1326   * @syscap SystemCapability.ArkUI.ArkUI.Full
1327   * @crossplatform
1328   * @atomicservice
1329   * @since 12
1330   */
1331  type: "tab" | "capsule";
1332
1333  /**
1334   * The support multiple selections flag of SegmentButton.
1335   *
1336   * @type { boolean }
1337   * @syscap SystemCapability.ArkUI.ArkUI.Full
1338   * @crossplatform
1339   * @since 11
1340   */
1341   /**
1342   * The support multiple selections flag of SegmentButton.
1343   *
1344   * @type { boolean }
1345   * @syscap SystemCapability.ArkUI.ArkUI.Full
1346   * @crossplatform
1347   * @atomicservice
1348   * @since 12
1349   */
1350  multiply: boolean;
1351
1352  /**
1353   * The buttons information of SegmentButton.
1354   *
1355   * @type { SegmentButtonOptionsArray }
1356   * @syscap SystemCapability.ArkUI.ArkUI.Full
1357   * @crossplatform
1358   * @since 11
1359   */
1360   /**
1361   * The buttons information of SegmentButton.
1362   *
1363   * @type { SegmentButtonOptionsArray }
1364   * @syscap SystemCapability.ArkUI.ArkUI.Full
1365   * @crossplatform
1366   * @atomicservice
1367   * @since 12
1368   */
1369  buttons: SegmentButtonItemOptionsArray;
1370
1371  /**
1372   * The font color of buttons.
1373   *
1374   * @type { ResourceColor }
1375   * @syscap SystemCapability.ArkUI.ArkUI.Full
1376   * @crossplatform
1377   * @since 11
1378   */
1379   /**
1380   * The font color of buttons.
1381   *
1382   * @type { ResourceColor }
1383   * @syscap SystemCapability.ArkUI.ArkUI.Full
1384   * @crossplatform
1385   * @atomicservice
1386   * @since 12
1387   */
1388  fontColor: ResourceColor;
1389
1390  /**
1391   * The font color of selected button.
1392   *
1393   * @type { ResourceColor }
1394   * @syscap SystemCapability.ArkUI.ArkUI.Full
1395   * @crossplatform
1396   * @since 11
1397   */
1398   /**
1399   * The font color of selected button.
1400   *
1401   * @type { ResourceColor }
1402   * @syscap SystemCapability.ArkUI.ArkUI.Full
1403   * @crossplatform
1404   * @atomicservice
1405   * @since 12
1406   */
1407  selectedFontColor: ResourceColor;
1408
1409  /**
1410   * The font size of buttons.
1411   *
1412   * @type { DimensionNoPercentage }
1413   * @syscap SystemCapability.ArkUI.ArkUI.Full
1414   * @crossplatform
1415   * @since 11
1416   */
1417   /**
1418   * The font size of buttons.
1419   *
1420   * @type { DimensionNoPercentage }
1421   * @syscap SystemCapability.ArkUI.ArkUI.Full
1422   * @crossplatform
1423   * @atomicservice
1424   * @since 12
1425   */
1426  fontSize: DimensionNoPercentage;
1427
1428  /**
1429   * The font size of selected button.
1430   *
1431   * @type { DimensionNoPercentage }
1432   * @syscap SystemCapability.ArkUI.ArkUI.Full
1433   * @crossplatform
1434   * @since 11
1435   */
1436   /**
1437   * The font size of selected button.
1438   *
1439   * @type { DimensionNoPercentage }
1440   * @syscap SystemCapability.ArkUI.ArkUI.Full
1441   * @crossplatform
1442   * @atomicservice
1443   * @since 12
1444   */
1445  selectedFontSize: DimensionNoPercentage;
1446
1447  /**
1448   * The font weight of buttons.
1449   *
1450   * @type { FontWeight }
1451   * @syscap SystemCapability.ArkUI.ArkUI.Full
1452   * @crossplatform
1453   * @since 11
1454   */
1455   /**
1456   * The font weight of buttons.
1457   *
1458   * @type { FontWeight }
1459   * @syscap SystemCapability.ArkUI.ArkUI.Full
1460   * @crossplatform
1461   * @atomicservice
1462   * @since 12
1463   */
1464  fontWeight: FontWeight;
1465
1466  /**
1467   * The font weight of selected button.
1468   *
1469   * @type { FontWeight }
1470   * @syscap SystemCapability.ArkUI.ArkUI.Full
1471   * @crossplatform
1472   * @since 11
1473   */
1474   /**
1475   * The font weight of selected button.
1476   *
1477   * @type { FontWeight }
1478   * @syscap SystemCapability.ArkUI.ArkUI.Full
1479   * @crossplatform
1480   * @atomicservice
1481   * @since 12
1482   */
1483  selectedFontWeight: FontWeight;
1484
1485  /**
1486   * The background color of SegmentButton.
1487   *
1488   * @type { ResourceColor }
1489   * @syscap SystemCapability.ArkUI.ArkUI.Full
1490   * @crossplatform
1491   * @since 11
1492   */
1493   /**
1494   * The background color of SegmentButton.
1495   *
1496   * @type { ResourceColor }
1497   * @syscap SystemCapability.ArkUI.ArkUI.Full
1498   * @crossplatform
1499   * @atomicservice
1500   * @since 12
1501   */
1502  backgroundColor: ResourceColor;
1503
1504  /**
1505   * The background color of selected button.
1506   *
1507   * @type { ResourceColor }
1508   * @syscap SystemCapability.ArkUI.ArkUI.Full
1509   * @crossplatform
1510   * @since 11
1511   */
1512   /**
1513   * The background color of selected button.
1514   *
1515   * @type { ResourceColor }
1516   * @syscap SystemCapability.ArkUI.ArkUI.Full
1517   * @crossplatform
1518   * @atomicservice
1519   * @since 12
1520   */
1521  selectedBackgroundColor: ResourceColor;
1522
1523  /**
1524   * The image size of buttons.
1525   *
1526   * @type { SizeOptions }
1527   * @syscap SystemCapability.ArkUI.ArkUI.Full
1528   * @crossplatform
1529   * @since 11
1530   */
1531   /**
1532   * The image size of buttons.
1533   *
1534   * @type { SizeOptions }
1535   * @syscap SystemCapability.ArkUI.ArkUI.Full
1536   * @crossplatform
1537   * @atomicservice
1538   * @since 12
1539   */
1540  imageSize: SizeOptions;
1541
1542  /**
1543   * The padding of buttons.
1544   *
1545   * @type { Padding | Dimension }
1546   * @syscap SystemCapability.ArkUI.ArkUI.Full
1547   * @crossplatform
1548   * @since 11
1549   */
1550   /**
1551   * The padding of buttons.
1552   *
1553   * @type { Padding | Dimension }
1554   * @syscap SystemCapability.ArkUI.ArkUI.Full
1555   * @crossplatform
1556   * @atomicservice
1557   * @since 12
1558   */
1559  buttonPadding: Padding | Dimension;
1560
1561   /**
1562   * The localized padding of buttons.
1563   *
1564   * @type { ?LocalizedPadding }
1565   * @syscap SystemCapability.ArkUI.ArkUI.Full
1566   * @crossplatform
1567   * @atomicservice
1568   * @since 12
1569   */
1570  localizedButtonPadding?: LocalizedPadding;
1571
1572  /**
1573   * The padding of text in button.
1574   *
1575   * @type { Padding | Dimension }
1576   * @syscap SystemCapability.ArkUI.ArkUI.Full
1577   * @crossplatform
1578   * @since 11
1579   */
1580   /**
1581   * The padding of text in button.
1582   *
1583   * @type { Padding | Dimension }
1584   * @syscap SystemCapability.ArkUI.ArkUI.Full
1585   * @crossplatform
1586   * @atomicservice
1587   * @since 12
1588   */
1589  textPadding: Padding | Dimension;
1590
1591   /**
1592   * The localized padding of text in button.
1593   *
1594   * @type { ?LocalizedPadding }
1595   * @syscap SystemCapability.ArkUI.ArkUI.Full
1596   * @crossplatform
1597   * @atomicservice
1598   * @since 12
1599   */
1600  localizedTextPadding?: LocalizedPadding;
1601
1602  /**
1603   * The blurStyle of background.
1604   *
1605   * @type { BlurStyle }
1606   * @syscap SystemCapability.ArkUI.ArkUI.Full
1607   * @crossplatform
1608   * @since 11
1609   */
1610   /**
1611   * The blurStyle of background.
1612   *
1613   * @type { BlurStyle }
1614   * @syscap SystemCapability.ArkUI.ArkUI.Full
1615   * @crossplatform
1616   * @atomicservice
1617   * @since 12
1618   */
1619  backgroundBlurStyle: BlurStyle;
1620
1621  /**
1622   * The constructor used to create a SegmentButtonOptions object.
1623   *
1624   * @param { TabSegmentButtonOptions | CapsuleSegmentButtonOptions } options - The options of SegmentButton.
1625   * @syscap SystemCapability.ArkUI.ArkUI.Full
1626   * @crossplatform
1627   * @since 11
1628   */
1629   /**
1630   * The constructor used to create a SegmentButtonOptions object.
1631   *
1632   * @param { TabSegmentButtonOptions | CapsuleSegmentButtonOptions } options - The options of SegmentButton.
1633   * @syscap SystemCapability.ArkUI.ArkUI.Full
1634   * @crossplatform
1635   * @atomicservice
1636   * @since 12
1637   */
1638  constructor(options: TabSegmentButtonOptions | CapsuleSegmentButtonOptions);
1639
1640  /**
1641   * The function used to create a SegmentButtonOptions of tab type.
1642   *
1643   * @param { TabSegmentButtonConstructionOptions } options - The options of SegmentButton.
1644   * @returns { SegmentButtonOptions } Returns the a new SegmentButtonOptions object of tab type.
1645   * @static
1646   * @syscap SystemCapability.ArkUI.ArkUI.Full
1647   * @crossplatform
1648   * @since 11
1649   */
1650   /**
1651   * The function used to create a SegmentButtonOptions of tab type.
1652   *
1653   * @param { TabSegmentButtonConstructionOptions } options - The options of SegmentButton.
1654   * @returns { SegmentButtonOptions } Returns the a new SegmentButtonOptions object of tab type.
1655   * @static
1656   * @syscap SystemCapability.ArkUI.ArkUI.Full
1657   * @crossplatform
1658   * @atomicservice
1659   * @since 12
1660   */
1661  static tab(options: TabSegmentButtonConstructionOptions): SegmentButtonOptions;
1662
1663  /**
1664   * The function used to create a SegmentButtonOptions of capsule type.
1665   *
1666   * @param { CapsuleSegmentButtonConstructionOptions } options - The options of SegmentButton.
1667   * @returns { SegmentButtonOptions } Returns the a new SegmentButtonOptions object of capsule type.
1668   * @static
1669   * @syscap SystemCapability.ArkUI.ArkUI.Full
1670   * @crossplatform
1671   * @since 11
1672   */
1673   /**
1674   * The function used to create a SegmentButtonOptions of capsule type.
1675   *
1676   * @param { CapsuleSegmentButtonConstructionOptions } options - The options of SegmentButton.
1677   * @returns { SegmentButtonOptions } Returns the a new SegmentButtonOptions object of capsule type.
1678   * @static
1679   * @syscap SystemCapability.ArkUI.ArkUI.Full
1680   * @crossplatform
1681   * @atomicservice
1682   * @since 12
1683   */
1684  static capsule(options: CapsuleSegmentButtonConstructionOptions): SegmentButtonOptions;
1685
1686  /**
1687   * Indicates the attribute of the current segment button direction.
1688   *
1689   * @type { ?Direction }
1690   * @syscap SystemCapability.ArkUI.ArkUI.Full
1691   * @crossplatform
1692   * @atomicservice
1693   * @since 12
1694   */
1695  direction?: Direction;
1696}
1697
1698/**
1699 * Declare Component SegmentButton
1700 *
1701 * @syscap SystemCapability.ArkUI.ArkUI.Full
1702 * @crossplatform
1703 * @since 11
1704 */
1705 /**
1706 * Declare Component SegmentButton
1707 *
1708 * @syscap SystemCapability.ArkUI.ArkUI.Full
1709 * @crossplatform
1710 * @atomicservice
1711 * @since 12
1712 */
1713@Component
1714declare struct SegmentButton {
1715  /**
1716   * The options of SegmentButton.
1717   *
1718   * @type { SegmentButtonOptions }
1719   * @syscap SystemCapability.ArkUI.ArkUI.Full
1720   * @crossplatform
1721   * @since 11
1722   */
1723   /**
1724   * The options of SegmentButton.
1725   *
1726   * @type { SegmentButtonOptions }
1727   * @syscap SystemCapability.ArkUI.ArkUI.Full
1728   * @crossplatform
1729   * @atomicservice
1730   * @since 12
1731   */
1732  @ObjectLink
1733  options: SegmentButtonOptions;
1734
1735  /**
1736   * The selectedIndex.
1737   *
1738   * @type { number[] }
1739   * @syscap SystemCapability.ArkUI.ArkUI.Full
1740   * @crossplatform
1741   * @since 11
1742   */
1743   /**
1744   * The selectedIndex.
1745   *
1746   * @type { number[] }
1747   * @syscap SystemCapability.ArkUI.ArkUI.Full
1748   * @crossplatform
1749   * @atomicservice
1750   * @since 12
1751   */
1752  @Link
1753  selectedIndexes: number[];
1754
1755  /**
1756   * The max font scale of the segmented button option text.
1757   * @type { number | Resource }
1758   * @syscap SystemCapability.ArkUI.ArkUI.Full
1759   * @crossplatform
1760   * @atomicservice
1761   * @since 14
1762   */
1763  @Prop
1764  maxFontScale: number | Resource;
1765
1766  /**
1767   * The click event callback will be triggered when a option button of SegmentButton is clicked.
1768   *
1769   * @type { ?Callback<number> }
1770   * @syscap SystemCapability.ArkUI.ArkUI.Full
1771   * @crossplatform
1772   * @atomicservice
1773   * @since 13
1774   */
1775  onItemClicked?: Callback<number>;
1776}
1777
1778export {
1779  SegmentButton,
1780  SegmentButtonOptions,
1781  SegmentButtonItemOptionsArray,
1782  TabSegmentButtonOptions,
1783  TabSegmentButtonConstructionOptions,
1784  CapsuleSegmentButtonOptions,
1785  CapsuleSegmentButtonConstructionOptions,
1786  SegmentButtonTextItem,
1787  SegmentButtonIconItem,
1788  SegmentButtonIconTextItem,
1789  DimensionNoPercentage,
1790  CommonSegmentButtonOptions,
1791  ItemRestriction,
1792  SegmentButtonItemTuple,
1793  SegmentButtonItemArray,
1794  SegmentButtonItemOptionsConstructorOptions,
1795  SegmentButtonItemOptions
1796};
1797