@gooddata/sdk-code-schemas 11.43.0-alpha.2 → 11.43.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2782,6 +2782,67 @@ export interface VisualisationConfig {
2782
2782
  enable_accessibility?: boolean;
2783
2783
  line_style_control_metrics?: string[];
2784
2784
  line_style_excluded_metrics?: string[];
2785
+ /**
2786
+ * Conditional formatting rules that color cells or rows based on their values.
2787
+ */
2788
+ conditional_formatting?: {
2789
+ /**
2790
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
2791
+ */
2792
+ version?: string;
2793
+ /**
2794
+ * Master toggle for all conditional formatting rules.
2795
+ */
2796
+ enabled?: boolean;
2797
+ /**
2798
+ * Ordered list of rules; the first matching rule wins.
2799
+ */
2800
+ rules?: {
2801
+ /**
2802
+ * Stable, table-unique rule id.
2803
+ */
2804
+ id: string;
2805
+ /**
2806
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
2807
+ */
2808
+ target: {
2809
+ /**
2810
+ * Local identifier of the targeted measure.
2811
+ */
2812
+ measure: string;
2813
+ } | {
2814
+ /**
2815
+ * Local identifier of the targeted attribute.
2816
+ */
2817
+ attribute: string;
2818
+ };
2819
+ /**
2820
+ * Stacked conditions; the first matching condition wins.
2821
+ */
2822
+ conditions: {
2823
+ id: string;
2824
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
2825
+ /**
2826
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
2827
+ */
2828
+ value?: number | string | {
2829
+ from: number;
2830
+ to: number;
2831
+ };
2832
+ format: {
2833
+ /**
2834
+ * Text color as hex (e.g. #FFFFFF).
2835
+ */
2836
+ text?: string;
2837
+ /**
2838
+ * Background color as hex (e.g. #E54D40).
2839
+ */
2840
+ fill?: string;
2841
+ scope: "cell" | "row";
2842
+ };
2843
+ }[];
2844
+ }[];
2845
+ };
2785
2846
  [k: string]: unknown;
2786
2847
  }
2787
2848
  export interface Width {
@@ -3070,6 +3131,67 @@ export interface VisualisationConfig1 {
3070
3131
  enable_accessibility?: boolean;
3071
3132
  line_style_control_metrics?: string[];
3072
3133
  line_style_excluded_metrics?: string[];
3134
+ /**
3135
+ * Conditional formatting rules that color cells or rows based on their values.
3136
+ */
3137
+ conditional_formatting?: {
3138
+ /**
3139
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
3140
+ */
3141
+ version?: string;
3142
+ /**
3143
+ * Master toggle for all conditional formatting rules.
3144
+ */
3145
+ enabled?: boolean;
3146
+ /**
3147
+ * Ordered list of rules; the first matching rule wins.
3148
+ */
3149
+ rules?: {
3150
+ /**
3151
+ * Stable, table-unique rule id.
3152
+ */
3153
+ id: string;
3154
+ /**
3155
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
3156
+ */
3157
+ target: {
3158
+ /**
3159
+ * Local identifier of the targeted measure.
3160
+ */
3161
+ measure: string;
3162
+ } | {
3163
+ /**
3164
+ * Local identifier of the targeted attribute.
3165
+ */
3166
+ attribute: string;
3167
+ };
3168
+ /**
3169
+ * Stacked conditions; the first matching condition wins.
3170
+ */
3171
+ conditions: {
3172
+ id: string;
3173
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
3174
+ /**
3175
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
3176
+ */
3177
+ value?: number | string | {
3178
+ from: number;
3179
+ to: number;
3180
+ };
3181
+ format: {
3182
+ /**
3183
+ * Text color as hex (e.g. #FFFFFF).
3184
+ */
3185
+ text?: string;
3186
+ /**
3187
+ * Background color as hex (e.g. #E54D40).
3188
+ */
3189
+ fill?: string;
3190
+ scope: "cell" | "row";
3191
+ };
3192
+ }[];
3193
+ }[];
3194
+ };
3073
3195
  [k: string]: unknown;
3074
3196
  }
3075
3197
  export interface ColumnChart {
@@ -3294,6 +3416,67 @@ export interface VisualisationConfig2 {
3294
3416
  enable_accessibility?: boolean;
3295
3417
  line_style_control_metrics?: string[];
3296
3418
  line_style_excluded_metrics?: string[];
3419
+ /**
3420
+ * Conditional formatting rules that color cells or rows based on their values.
3421
+ */
3422
+ conditional_formatting?: {
3423
+ /**
3424
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
3425
+ */
3426
+ version?: string;
3427
+ /**
3428
+ * Master toggle for all conditional formatting rules.
3429
+ */
3430
+ enabled?: boolean;
3431
+ /**
3432
+ * Ordered list of rules; the first matching rule wins.
3433
+ */
3434
+ rules?: {
3435
+ /**
3436
+ * Stable, table-unique rule id.
3437
+ */
3438
+ id: string;
3439
+ /**
3440
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
3441
+ */
3442
+ target: {
3443
+ /**
3444
+ * Local identifier of the targeted measure.
3445
+ */
3446
+ measure: string;
3447
+ } | {
3448
+ /**
3449
+ * Local identifier of the targeted attribute.
3450
+ */
3451
+ attribute: string;
3452
+ };
3453
+ /**
3454
+ * Stacked conditions; the first matching condition wins.
3455
+ */
3456
+ conditions: {
3457
+ id: string;
3458
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
3459
+ /**
3460
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
3461
+ */
3462
+ value?: number | string | {
3463
+ from: number;
3464
+ to: number;
3465
+ };
3466
+ format: {
3467
+ /**
3468
+ * Text color as hex (e.g. #FFFFFF).
3469
+ */
3470
+ text?: string;
3471
+ /**
3472
+ * Background color as hex (e.g. #E54D40).
3473
+ */
3474
+ fill?: string;
3475
+ scope: "cell" | "row";
3476
+ };
3477
+ }[];
3478
+ }[];
3479
+ };
3297
3480
  [k: string]: unknown;
3298
3481
  }
3299
3482
  export interface LineChart {
@@ -3518,6 +3701,67 @@ export interface VisualisationConfig3 {
3518
3701
  enable_accessibility?: boolean;
3519
3702
  line_style_control_metrics?: string[];
3520
3703
  line_style_excluded_metrics?: string[];
3704
+ /**
3705
+ * Conditional formatting rules that color cells or rows based on their values.
3706
+ */
3707
+ conditional_formatting?: {
3708
+ /**
3709
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
3710
+ */
3711
+ version?: string;
3712
+ /**
3713
+ * Master toggle for all conditional formatting rules.
3714
+ */
3715
+ enabled?: boolean;
3716
+ /**
3717
+ * Ordered list of rules; the first matching rule wins.
3718
+ */
3719
+ rules?: {
3720
+ /**
3721
+ * Stable, table-unique rule id.
3722
+ */
3723
+ id: string;
3724
+ /**
3725
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
3726
+ */
3727
+ target: {
3728
+ /**
3729
+ * Local identifier of the targeted measure.
3730
+ */
3731
+ measure: string;
3732
+ } | {
3733
+ /**
3734
+ * Local identifier of the targeted attribute.
3735
+ */
3736
+ attribute: string;
3737
+ };
3738
+ /**
3739
+ * Stacked conditions; the first matching condition wins.
3740
+ */
3741
+ conditions: {
3742
+ id: string;
3743
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
3744
+ /**
3745
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
3746
+ */
3747
+ value?: number | string | {
3748
+ from: number;
3749
+ to: number;
3750
+ };
3751
+ format: {
3752
+ /**
3753
+ * Text color as hex (e.g. #FFFFFF).
3754
+ */
3755
+ text?: string;
3756
+ /**
3757
+ * Background color as hex (e.g. #E54D40).
3758
+ */
3759
+ fill?: string;
3760
+ scope: "cell" | "row";
3761
+ };
3762
+ }[];
3763
+ }[];
3764
+ };
3521
3765
  [k: string]: unknown;
3522
3766
  }
3523
3767
  export interface AreaChart {
@@ -3742,6 +3986,67 @@ export interface VisualisationConfig4 {
3742
3986
  enable_accessibility?: boolean;
3743
3987
  line_style_control_metrics?: string[];
3744
3988
  line_style_excluded_metrics?: string[];
3989
+ /**
3990
+ * Conditional formatting rules that color cells or rows based on their values.
3991
+ */
3992
+ conditional_formatting?: {
3993
+ /**
3994
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
3995
+ */
3996
+ version?: string;
3997
+ /**
3998
+ * Master toggle for all conditional formatting rules.
3999
+ */
4000
+ enabled?: boolean;
4001
+ /**
4002
+ * Ordered list of rules; the first matching rule wins.
4003
+ */
4004
+ rules?: {
4005
+ /**
4006
+ * Stable, table-unique rule id.
4007
+ */
4008
+ id: string;
4009
+ /**
4010
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
4011
+ */
4012
+ target: {
4013
+ /**
4014
+ * Local identifier of the targeted measure.
4015
+ */
4016
+ measure: string;
4017
+ } | {
4018
+ /**
4019
+ * Local identifier of the targeted attribute.
4020
+ */
4021
+ attribute: string;
4022
+ };
4023
+ /**
4024
+ * Stacked conditions; the first matching condition wins.
4025
+ */
4026
+ conditions: {
4027
+ id: string;
4028
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
4029
+ /**
4030
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
4031
+ */
4032
+ value?: number | string | {
4033
+ from: number;
4034
+ to: number;
4035
+ };
4036
+ format: {
4037
+ /**
4038
+ * Text color as hex (e.g. #FFFFFF).
4039
+ */
4040
+ text?: string;
4041
+ /**
4042
+ * Background color as hex (e.g. #E54D40).
4043
+ */
4044
+ fill?: string;
4045
+ scope: "cell" | "row";
4046
+ };
4047
+ }[];
4048
+ }[];
4049
+ };
3745
4050
  [k: string]: unknown;
3746
4051
  }
3747
4052
  export interface ScatterChart {
@@ -3966,6 +4271,67 @@ export interface VisualisationConfig5 {
3966
4271
  enable_accessibility?: boolean;
3967
4272
  line_style_control_metrics?: string[];
3968
4273
  line_style_excluded_metrics?: string[];
4274
+ /**
4275
+ * Conditional formatting rules that color cells or rows based on their values.
4276
+ */
4277
+ conditional_formatting?: {
4278
+ /**
4279
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
4280
+ */
4281
+ version?: string;
4282
+ /**
4283
+ * Master toggle for all conditional formatting rules.
4284
+ */
4285
+ enabled?: boolean;
4286
+ /**
4287
+ * Ordered list of rules; the first matching rule wins.
4288
+ */
4289
+ rules?: {
4290
+ /**
4291
+ * Stable, table-unique rule id.
4292
+ */
4293
+ id: string;
4294
+ /**
4295
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
4296
+ */
4297
+ target: {
4298
+ /**
4299
+ * Local identifier of the targeted measure.
4300
+ */
4301
+ measure: string;
4302
+ } | {
4303
+ /**
4304
+ * Local identifier of the targeted attribute.
4305
+ */
4306
+ attribute: string;
4307
+ };
4308
+ /**
4309
+ * Stacked conditions; the first matching condition wins.
4310
+ */
4311
+ conditions: {
4312
+ id: string;
4313
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
4314
+ /**
4315
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
4316
+ */
4317
+ value?: number | string | {
4318
+ from: number;
4319
+ to: number;
4320
+ };
4321
+ format: {
4322
+ /**
4323
+ * Text color as hex (e.g. #FFFFFF).
4324
+ */
4325
+ text?: string;
4326
+ /**
4327
+ * Background color as hex (e.g. #E54D40).
4328
+ */
4329
+ fill?: string;
4330
+ scope: "cell" | "row";
4331
+ };
4332
+ }[];
4333
+ }[];
4334
+ };
3969
4335
  [k: string]: unknown;
3970
4336
  }
3971
4337
  export interface BubbleChart {
@@ -4190,6 +4556,67 @@ export interface VisualisationConfig6 {
4190
4556
  enable_accessibility?: boolean;
4191
4557
  line_style_control_metrics?: string[];
4192
4558
  line_style_excluded_metrics?: string[];
4559
+ /**
4560
+ * Conditional formatting rules that color cells or rows based on their values.
4561
+ */
4562
+ conditional_formatting?: {
4563
+ /**
4564
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
4565
+ */
4566
+ version?: string;
4567
+ /**
4568
+ * Master toggle for all conditional formatting rules.
4569
+ */
4570
+ enabled?: boolean;
4571
+ /**
4572
+ * Ordered list of rules; the first matching rule wins.
4573
+ */
4574
+ rules?: {
4575
+ /**
4576
+ * Stable, table-unique rule id.
4577
+ */
4578
+ id: string;
4579
+ /**
4580
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
4581
+ */
4582
+ target: {
4583
+ /**
4584
+ * Local identifier of the targeted measure.
4585
+ */
4586
+ measure: string;
4587
+ } | {
4588
+ /**
4589
+ * Local identifier of the targeted attribute.
4590
+ */
4591
+ attribute: string;
4592
+ };
4593
+ /**
4594
+ * Stacked conditions; the first matching condition wins.
4595
+ */
4596
+ conditions: {
4597
+ id: string;
4598
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
4599
+ /**
4600
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
4601
+ */
4602
+ value?: number | string | {
4603
+ from: number;
4604
+ to: number;
4605
+ };
4606
+ format: {
4607
+ /**
4608
+ * Text color as hex (e.g. #FFFFFF).
4609
+ */
4610
+ text?: string;
4611
+ /**
4612
+ * Background color as hex (e.g. #E54D40).
4613
+ */
4614
+ fill?: string;
4615
+ scope: "cell" | "row";
4616
+ };
4617
+ }[];
4618
+ }[];
4619
+ };
4193
4620
  [k: string]: unknown;
4194
4621
  }
4195
4622
  export interface PieChart {
@@ -4410,6 +4837,67 @@ export interface VisualisationConfig7 {
4410
4837
  enable_accessibility?: boolean;
4411
4838
  line_style_control_metrics?: string[];
4412
4839
  line_style_excluded_metrics?: string[];
4840
+ /**
4841
+ * Conditional formatting rules that color cells or rows based on their values.
4842
+ */
4843
+ conditional_formatting?: {
4844
+ /**
4845
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
4846
+ */
4847
+ version?: string;
4848
+ /**
4849
+ * Master toggle for all conditional formatting rules.
4850
+ */
4851
+ enabled?: boolean;
4852
+ /**
4853
+ * Ordered list of rules; the first matching rule wins.
4854
+ */
4855
+ rules?: {
4856
+ /**
4857
+ * Stable, table-unique rule id.
4858
+ */
4859
+ id: string;
4860
+ /**
4861
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
4862
+ */
4863
+ target: {
4864
+ /**
4865
+ * Local identifier of the targeted measure.
4866
+ */
4867
+ measure: string;
4868
+ } | {
4869
+ /**
4870
+ * Local identifier of the targeted attribute.
4871
+ */
4872
+ attribute: string;
4873
+ };
4874
+ /**
4875
+ * Stacked conditions; the first matching condition wins.
4876
+ */
4877
+ conditions: {
4878
+ id: string;
4879
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
4880
+ /**
4881
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
4882
+ */
4883
+ value?: number | string | {
4884
+ from: number;
4885
+ to: number;
4886
+ };
4887
+ format: {
4888
+ /**
4889
+ * Text color as hex (e.g. #FFFFFF).
4890
+ */
4891
+ text?: string;
4892
+ /**
4893
+ * Background color as hex (e.g. #E54D40).
4894
+ */
4895
+ fill?: string;
4896
+ scope: "cell" | "row";
4897
+ };
4898
+ }[];
4899
+ }[];
4900
+ };
4413
4901
  [k: string]: unknown;
4414
4902
  }
4415
4903
  export interface PieChart1 {
@@ -4630,6 +5118,67 @@ export interface VisualisationConfig8 {
4630
5118
  enable_accessibility?: boolean;
4631
5119
  line_style_control_metrics?: string[];
4632
5120
  line_style_excluded_metrics?: string[];
5121
+ /**
5122
+ * Conditional formatting rules that color cells or rows based on their values.
5123
+ */
5124
+ conditional_formatting?: {
5125
+ /**
5126
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
5127
+ */
5128
+ version?: string;
5129
+ /**
5130
+ * Master toggle for all conditional formatting rules.
5131
+ */
5132
+ enabled?: boolean;
5133
+ /**
5134
+ * Ordered list of rules; the first matching rule wins.
5135
+ */
5136
+ rules?: {
5137
+ /**
5138
+ * Stable, table-unique rule id.
5139
+ */
5140
+ id: string;
5141
+ /**
5142
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
5143
+ */
5144
+ target: {
5145
+ /**
5146
+ * Local identifier of the targeted measure.
5147
+ */
5148
+ measure: string;
5149
+ } | {
5150
+ /**
5151
+ * Local identifier of the targeted attribute.
5152
+ */
5153
+ attribute: string;
5154
+ };
5155
+ /**
5156
+ * Stacked conditions; the first matching condition wins.
5157
+ */
5158
+ conditions: {
5159
+ id: string;
5160
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
5161
+ /**
5162
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
5163
+ */
5164
+ value?: number | string | {
5165
+ from: number;
5166
+ to: number;
5167
+ };
5168
+ format: {
5169
+ /**
5170
+ * Text color as hex (e.g. #FFFFFF).
5171
+ */
5172
+ text?: string;
5173
+ /**
5174
+ * Background color as hex (e.g. #E54D40).
5175
+ */
5176
+ fill?: string;
5177
+ scope: "cell" | "row";
5178
+ };
5179
+ }[];
5180
+ }[];
5181
+ };
4633
5182
  [k: string]: unknown;
4634
5183
  }
4635
5184
  export interface TreemapChart {
@@ -4850,6 +5399,67 @@ export interface VisualisationConfig9 {
4850
5399
  enable_accessibility?: boolean;
4851
5400
  line_style_control_metrics?: string[];
4852
5401
  line_style_excluded_metrics?: string[];
5402
+ /**
5403
+ * Conditional formatting rules that color cells or rows based on their values.
5404
+ */
5405
+ conditional_formatting?: {
5406
+ /**
5407
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
5408
+ */
5409
+ version?: string;
5410
+ /**
5411
+ * Master toggle for all conditional formatting rules.
5412
+ */
5413
+ enabled?: boolean;
5414
+ /**
5415
+ * Ordered list of rules; the first matching rule wins.
5416
+ */
5417
+ rules?: {
5418
+ /**
5419
+ * Stable, table-unique rule id.
5420
+ */
5421
+ id: string;
5422
+ /**
5423
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
5424
+ */
5425
+ target: {
5426
+ /**
5427
+ * Local identifier of the targeted measure.
5428
+ */
5429
+ measure: string;
5430
+ } | {
5431
+ /**
5432
+ * Local identifier of the targeted attribute.
5433
+ */
5434
+ attribute: string;
5435
+ };
5436
+ /**
5437
+ * Stacked conditions; the first matching condition wins.
5438
+ */
5439
+ conditions: {
5440
+ id: string;
5441
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
5442
+ /**
5443
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
5444
+ */
5445
+ value?: number | string | {
5446
+ from: number;
5447
+ to: number;
5448
+ };
5449
+ format: {
5450
+ /**
5451
+ * Text color as hex (e.g. #FFFFFF).
5452
+ */
5453
+ text?: string;
5454
+ /**
5455
+ * Background color as hex (e.g. #E54D40).
5456
+ */
5457
+ fill?: string;
5458
+ scope: "cell" | "row";
5459
+ };
5460
+ }[];
5461
+ }[];
5462
+ };
4853
5463
  [k: string]: unknown;
4854
5464
  }
4855
5465
  export interface PyramidChart {
@@ -5070,6 +5680,67 @@ export interface VisualisationConfig10 {
5070
5680
  enable_accessibility?: boolean;
5071
5681
  line_style_control_metrics?: string[];
5072
5682
  line_style_excluded_metrics?: string[];
5683
+ /**
5684
+ * Conditional formatting rules that color cells or rows based on their values.
5685
+ */
5686
+ conditional_formatting?: {
5687
+ /**
5688
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
5689
+ */
5690
+ version?: string;
5691
+ /**
5692
+ * Master toggle for all conditional formatting rules.
5693
+ */
5694
+ enabled?: boolean;
5695
+ /**
5696
+ * Ordered list of rules; the first matching rule wins.
5697
+ */
5698
+ rules?: {
5699
+ /**
5700
+ * Stable, table-unique rule id.
5701
+ */
5702
+ id: string;
5703
+ /**
5704
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
5705
+ */
5706
+ target: {
5707
+ /**
5708
+ * Local identifier of the targeted measure.
5709
+ */
5710
+ measure: string;
5711
+ } | {
5712
+ /**
5713
+ * Local identifier of the targeted attribute.
5714
+ */
5715
+ attribute: string;
5716
+ };
5717
+ /**
5718
+ * Stacked conditions; the first matching condition wins.
5719
+ */
5720
+ conditions: {
5721
+ id: string;
5722
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
5723
+ /**
5724
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
5725
+ */
5726
+ value?: number | string | {
5727
+ from: number;
5728
+ to: number;
5729
+ };
5730
+ format: {
5731
+ /**
5732
+ * Text color as hex (e.g. #FFFFFF).
5733
+ */
5734
+ text?: string;
5735
+ /**
5736
+ * Background color as hex (e.g. #E54D40).
5737
+ */
5738
+ fill?: string;
5739
+ scope: "cell" | "row";
5740
+ };
5741
+ }[];
5742
+ }[];
5743
+ };
5073
5744
  [k: string]: unknown;
5074
5745
  }
5075
5746
  export interface FunnelChart {
@@ -5290,6 +5961,67 @@ export interface VisualisationConfig11 {
5290
5961
  enable_accessibility?: boolean;
5291
5962
  line_style_control_metrics?: string[];
5292
5963
  line_style_excluded_metrics?: string[];
5964
+ /**
5965
+ * Conditional formatting rules that color cells or rows based on their values.
5966
+ */
5967
+ conditional_formatting?: {
5968
+ /**
5969
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
5970
+ */
5971
+ version?: string;
5972
+ /**
5973
+ * Master toggle for all conditional formatting rules.
5974
+ */
5975
+ enabled?: boolean;
5976
+ /**
5977
+ * Ordered list of rules; the first matching rule wins.
5978
+ */
5979
+ rules?: {
5980
+ /**
5981
+ * Stable, table-unique rule id.
5982
+ */
5983
+ id: string;
5984
+ /**
5985
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
5986
+ */
5987
+ target: {
5988
+ /**
5989
+ * Local identifier of the targeted measure.
5990
+ */
5991
+ measure: string;
5992
+ } | {
5993
+ /**
5994
+ * Local identifier of the targeted attribute.
5995
+ */
5996
+ attribute: string;
5997
+ };
5998
+ /**
5999
+ * Stacked conditions; the first matching condition wins.
6000
+ */
6001
+ conditions: {
6002
+ id: string;
6003
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
6004
+ /**
6005
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
6006
+ */
6007
+ value?: number | string | {
6008
+ from: number;
6009
+ to: number;
6010
+ };
6011
+ format: {
6012
+ /**
6013
+ * Text color as hex (e.g. #FFFFFF).
6014
+ */
6015
+ text?: string;
6016
+ /**
6017
+ * Background color as hex (e.g. #E54D40).
6018
+ */
6019
+ fill?: string;
6020
+ scope: "cell" | "row";
6021
+ };
6022
+ }[];
6023
+ }[];
6024
+ };
5293
6025
  [k: string]: unknown;
5294
6026
  }
5295
6027
  export interface HeatmapChart {
@@ -5518,6 +6250,67 @@ export interface VisualisationConfig12 {
5518
6250
  enable_accessibility?: boolean;
5519
6251
  line_style_control_metrics?: string[];
5520
6252
  line_style_excluded_metrics?: string[];
6253
+ /**
6254
+ * Conditional formatting rules that color cells or rows based on their values.
6255
+ */
6256
+ conditional_formatting?: {
6257
+ /**
6258
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
6259
+ */
6260
+ version?: string;
6261
+ /**
6262
+ * Master toggle for all conditional formatting rules.
6263
+ */
6264
+ enabled?: boolean;
6265
+ /**
6266
+ * Ordered list of rules; the first matching rule wins.
6267
+ */
6268
+ rules?: {
6269
+ /**
6270
+ * Stable, table-unique rule id.
6271
+ */
6272
+ id: string;
6273
+ /**
6274
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
6275
+ */
6276
+ target: {
6277
+ /**
6278
+ * Local identifier of the targeted measure.
6279
+ */
6280
+ measure: string;
6281
+ } | {
6282
+ /**
6283
+ * Local identifier of the targeted attribute.
6284
+ */
6285
+ attribute: string;
6286
+ };
6287
+ /**
6288
+ * Stacked conditions; the first matching condition wins.
6289
+ */
6290
+ conditions: {
6291
+ id: string;
6292
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
6293
+ /**
6294
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
6295
+ */
6296
+ value?: number | string | {
6297
+ from: number;
6298
+ to: number;
6299
+ };
6300
+ format: {
6301
+ /**
6302
+ * Text color as hex (e.g. #FFFFFF).
6303
+ */
6304
+ text?: string;
6305
+ /**
6306
+ * Background color as hex (e.g. #E54D40).
6307
+ */
6308
+ fill?: string;
6309
+ scope: "cell" | "row";
6310
+ };
6311
+ }[];
6312
+ }[];
6313
+ };
5521
6314
  [k: string]: unknown;
5522
6315
  }
5523
6316
  export interface BulletChart {
@@ -5738,6 +6531,67 @@ export interface VisualisationConfig13 {
5738
6531
  enable_accessibility?: boolean;
5739
6532
  line_style_control_metrics?: string[];
5740
6533
  line_style_excluded_metrics?: string[];
6534
+ /**
6535
+ * Conditional formatting rules that color cells or rows based on their values.
6536
+ */
6537
+ conditional_formatting?: {
6538
+ /**
6539
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
6540
+ */
6541
+ version?: string;
6542
+ /**
6543
+ * Master toggle for all conditional formatting rules.
6544
+ */
6545
+ enabled?: boolean;
6546
+ /**
6547
+ * Ordered list of rules; the first matching rule wins.
6548
+ */
6549
+ rules?: {
6550
+ /**
6551
+ * Stable, table-unique rule id.
6552
+ */
6553
+ id: string;
6554
+ /**
6555
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
6556
+ */
6557
+ target: {
6558
+ /**
6559
+ * Local identifier of the targeted measure.
6560
+ */
6561
+ measure: string;
6562
+ } | {
6563
+ /**
6564
+ * Local identifier of the targeted attribute.
6565
+ */
6566
+ attribute: string;
6567
+ };
6568
+ /**
6569
+ * Stacked conditions; the first matching condition wins.
6570
+ */
6571
+ conditions: {
6572
+ id: string;
6573
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
6574
+ /**
6575
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
6576
+ */
6577
+ value?: number | string | {
6578
+ from: number;
6579
+ to: number;
6580
+ };
6581
+ format: {
6582
+ /**
6583
+ * Text color as hex (e.g. #FFFFFF).
6584
+ */
6585
+ text?: string;
6586
+ /**
6587
+ * Background color as hex (e.g. #E54D40).
6588
+ */
6589
+ fill?: string;
6590
+ scope: "cell" | "row";
6591
+ };
6592
+ }[];
6593
+ }[];
6594
+ };
5741
6595
  [k: string]: unknown;
5742
6596
  }
5743
6597
  export interface WaterfallChart {
@@ -5958,6 +6812,67 @@ export interface VisualisationConfig14 {
5958
6812
  enable_accessibility?: boolean;
5959
6813
  line_style_control_metrics?: string[];
5960
6814
  line_style_excluded_metrics?: string[];
6815
+ /**
6816
+ * Conditional formatting rules that color cells or rows based on their values.
6817
+ */
6818
+ conditional_formatting?: {
6819
+ /**
6820
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
6821
+ */
6822
+ version?: string;
6823
+ /**
6824
+ * Master toggle for all conditional formatting rules.
6825
+ */
6826
+ enabled?: boolean;
6827
+ /**
6828
+ * Ordered list of rules; the first matching rule wins.
6829
+ */
6830
+ rules?: {
6831
+ /**
6832
+ * Stable, table-unique rule id.
6833
+ */
6834
+ id: string;
6835
+ /**
6836
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
6837
+ */
6838
+ target: {
6839
+ /**
6840
+ * Local identifier of the targeted measure.
6841
+ */
6842
+ measure: string;
6843
+ } | {
6844
+ /**
6845
+ * Local identifier of the targeted attribute.
6846
+ */
6847
+ attribute: string;
6848
+ };
6849
+ /**
6850
+ * Stacked conditions; the first matching condition wins.
6851
+ */
6852
+ conditions: {
6853
+ id: string;
6854
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
6855
+ /**
6856
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
6857
+ */
6858
+ value?: number | string | {
6859
+ from: number;
6860
+ to: number;
6861
+ };
6862
+ format: {
6863
+ /**
6864
+ * Text color as hex (e.g. #FFFFFF).
6865
+ */
6866
+ text?: string;
6867
+ /**
6868
+ * Background color as hex (e.g. #E54D40).
6869
+ */
6870
+ fill?: string;
6871
+ scope: "cell" | "row";
6872
+ };
6873
+ }[];
6874
+ }[];
6875
+ };
5961
6876
  [k: string]: unknown;
5962
6877
  }
5963
6878
  export interface DependencyWheelChart {
@@ -6180,6 +7095,67 @@ export interface VisualisationConfig15 {
6180
7095
  enable_accessibility?: boolean;
6181
7096
  line_style_control_metrics?: string[];
6182
7097
  line_style_excluded_metrics?: string[];
7098
+ /**
7099
+ * Conditional formatting rules that color cells or rows based on their values.
7100
+ */
7101
+ conditional_formatting?: {
7102
+ /**
7103
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
7104
+ */
7105
+ version?: string;
7106
+ /**
7107
+ * Master toggle for all conditional formatting rules.
7108
+ */
7109
+ enabled?: boolean;
7110
+ /**
7111
+ * Ordered list of rules; the first matching rule wins.
7112
+ */
7113
+ rules?: {
7114
+ /**
7115
+ * Stable, table-unique rule id.
7116
+ */
7117
+ id: string;
7118
+ /**
7119
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
7120
+ */
7121
+ target: {
7122
+ /**
7123
+ * Local identifier of the targeted measure.
7124
+ */
7125
+ measure: string;
7126
+ } | {
7127
+ /**
7128
+ * Local identifier of the targeted attribute.
7129
+ */
7130
+ attribute: string;
7131
+ };
7132
+ /**
7133
+ * Stacked conditions; the first matching condition wins.
7134
+ */
7135
+ conditions: {
7136
+ id: string;
7137
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
7138
+ /**
7139
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
7140
+ */
7141
+ value?: number | string | {
7142
+ from: number;
7143
+ to: number;
7144
+ };
7145
+ format: {
7146
+ /**
7147
+ * Text color as hex (e.g. #FFFFFF).
7148
+ */
7149
+ text?: string;
7150
+ /**
7151
+ * Background color as hex (e.g. #E54D40).
7152
+ */
7153
+ fill?: string;
7154
+ scope: "cell" | "row";
7155
+ };
7156
+ }[];
7157
+ }[];
7158
+ };
6183
7159
  [k: string]: unknown;
6184
7160
  }
6185
7161
  export interface SankeyChart {
@@ -6402,6 +7378,67 @@ export interface VisualisationConfig16 {
6402
7378
  enable_accessibility?: boolean;
6403
7379
  line_style_control_metrics?: string[];
6404
7380
  line_style_excluded_metrics?: string[];
7381
+ /**
7382
+ * Conditional formatting rules that color cells or rows based on their values.
7383
+ */
7384
+ conditional_formatting?: {
7385
+ /**
7386
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
7387
+ */
7388
+ version?: string;
7389
+ /**
7390
+ * Master toggle for all conditional formatting rules.
7391
+ */
7392
+ enabled?: boolean;
7393
+ /**
7394
+ * Ordered list of rules; the first matching rule wins.
7395
+ */
7396
+ rules?: {
7397
+ /**
7398
+ * Stable, table-unique rule id.
7399
+ */
7400
+ id: string;
7401
+ /**
7402
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
7403
+ */
7404
+ target: {
7405
+ /**
7406
+ * Local identifier of the targeted measure.
7407
+ */
7408
+ measure: string;
7409
+ } | {
7410
+ /**
7411
+ * Local identifier of the targeted attribute.
7412
+ */
7413
+ attribute: string;
7414
+ };
7415
+ /**
7416
+ * Stacked conditions; the first matching condition wins.
7417
+ */
7418
+ conditions: {
7419
+ id: string;
7420
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
7421
+ /**
7422
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
7423
+ */
7424
+ value?: number | string | {
7425
+ from: number;
7426
+ to: number;
7427
+ };
7428
+ format: {
7429
+ /**
7430
+ * Text color as hex (e.g. #FFFFFF).
7431
+ */
7432
+ text?: string;
7433
+ /**
7434
+ * Background color as hex (e.g. #E54D40).
7435
+ */
7436
+ fill?: string;
7437
+ scope: "cell" | "row";
7438
+ };
7439
+ }[];
7440
+ }[];
7441
+ };
6405
7442
  [k: string]: unknown;
6406
7443
  }
6407
7444
  export interface HeadlineChart {
@@ -6622,6 +7659,67 @@ export interface VisualisationConfig17 {
6622
7659
  enable_accessibility?: boolean;
6623
7660
  line_style_control_metrics?: string[];
6624
7661
  line_style_excluded_metrics?: string[];
7662
+ /**
7663
+ * Conditional formatting rules that color cells or rows based on their values.
7664
+ */
7665
+ conditional_formatting?: {
7666
+ /**
7667
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
7668
+ */
7669
+ version?: string;
7670
+ /**
7671
+ * Master toggle for all conditional formatting rules.
7672
+ */
7673
+ enabled?: boolean;
7674
+ /**
7675
+ * Ordered list of rules; the first matching rule wins.
7676
+ */
7677
+ rules?: {
7678
+ /**
7679
+ * Stable, table-unique rule id.
7680
+ */
7681
+ id: string;
7682
+ /**
7683
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
7684
+ */
7685
+ target: {
7686
+ /**
7687
+ * Local identifier of the targeted measure.
7688
+ */
7689
+ measure: string;
7690
+ } | {
7691
+ /**
7692
+ * Local identifier of the targeted attribute.
7693
+ */
7694
+ attribute: string;
7695
+ };
7696
+ /**
7697
+ * Stacked conditions; the first matching condition wins.
7698
+ */
7699
+ conditions: {
7700
+ id: string;
7701
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
7702
+ /**
7703
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
7704
+ */
7705
+ value?: number | string | {
7706
+ from: number;
7707
+ to: number;
7708
+ };
7709
+ format: {
7710
+ /**
7711
+ * Text color as hex (e.g. #FFFFFF).
7712
+ */
7713
+ text?: string;
7714
+ /**
7715
+ * Background color as hex (e.g. #E54D40).
7716
+ */
7717
+ fill?: string;
7718
+ scope: "cell" | "row";
7719
+ };
7720
+ }[];
7721
+ }[];
7722
+ };
6625
7723
  [k: string]: unknown;
6626
7724
  }
6627
7725
  export interface ComboChart {
@@ -6842,6 +7940,67 @@ export interface VisualisationConfig18 {
6842
7940
  enable_accessibility?: boolean;
6843
7941
  line_style_control_metrics?: string[];
6844
7942
  line_style_excluded_metrics?: string[];
7943
+ /**
7944
+ * Conditional formatting rules that color cells or rows based on their values.
7945
+ */
7946
+ conditional_formatting?: {
7947
+ /**
7948
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
7949
+ */
7950
+ version?: string;
7951
+ /**
7952
+ * Master toggle for all conditional formatting rules.
7953
+ */
7954
+ enabled?: boolean;
7955
+ /**
7956
+ * Ordered list of rules; the first matching rule wins.
7957
+ */
7958
+ rules?: {
7959
+ /**
7960
+ * Stable, table-unique rule id.
7961
+ */
7962
+ id: string;
7963
+ /**
7964
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
7965
+ */
7966
+ target: {
7967
+ /**
7968
+ * Local identifier of the targeted measure.
7969
+ */
7970
+ measure: string;
7971
+ } | {
7972
+ /**
7973
+ * Local identifier of the targeted attribute.
7974
+ */
7975
+ attribute: string;
7976
+ };
7977
+ /**
7978
+ * Stacked conditions; the first matching condition wins.
7979
+ */
7980
+ conditions: {
7981
+ id: string;
7982
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
7983
+ /**
7984
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
7985
+ */
7986
+ value?: number | string | {
7987
+ from: number;
7988
+ to: number;
7989
+ };
7990
+ format: {
7991
+ /**
7992
+ * Text color as hex (e.g. #FFFFFF).
7993
+ */
7994
+ text?: string;
7995
+ /**
7996
+ * Background color as hex (e.g. #E54D40).
7997
+ */
7998
+ fill?: string;
7999
+ scope: "cell" | "row";
8000
+ };
8001
+ }[];
8002
+ }[];
8003
+ };
6845
8004
  [k: string]: unknown;
6846
8005
  }
6847
8006
  export interface GeoChart {
@@ -7066,6 +8225,67 @@ export interface VisualisationConfig19 {
7066
8225
  enable_accessibility?: boolean;
7067
8226
  line_style_control_metrics?: string[];
7068
8227
  line_style_excluded_metrics?: string[];
8228
+ /**
8229
+ * Conditional formatting rules that color cells or rows based on their values.
8230
+ */
8231
+ conditional_formatting?: {
8232
+ /**
8233
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
8234
+ */
8235
+ version?: string;
8236
+ /**
8237
+ * Master toggle for all conditional formatting rules.
8238
+ */
8239
+ enabled?: boolean;
8240
+ /**
8241
+ * Ordered list of rules; the first matching rule wins.
8242
+ */
8243
+ rules?: {
8244
+ /**
8245
+ * Stable, table-unique rule id.
8246
+ */
8247
+ id: string;
8248
+ /**
8249
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
8250
+ */
8251
+ target: {
8252
+ /**
8253
+ * Local identifier of the targeted measure.
8254
+ */
8255
+ measure: string;
8256
+ } | {
8257
+ /**
8258
+ * Local identifier of the targeted attribute.
8259
+ */
8260
+ attribute: string;
8261
+ };
8262
+ /**
8263
+ * Stacked conditions; the first matching condition wins.
8264
+ */
8265
+ conditions: {
8266
+ id: string;
8267
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
8268
+ /**
8269
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
8270
+ */
8271
+ value?: number | string | {
8272
+ from: number;
8273
+ to: number;
8274
+ };
8275
+ format: {
8276
+ /**
8277
+ * Text color as hex (e.g. #FFFFFF).
8278
+ */
8279
+ text?: string;
8280
+ /**
8281
+ * Background color as hex (e.g. #E54D40).
8282
+ */
8283
+ fill?: string;
8284
+ scope: "cell" | "row";
8285
+ };
8286
+ }[];
8287
+ }[];
8288
+ };
7069
8289
  [k: string]: unknown;
7070
8290
  }
7071
8291
  export interface VisualizationDataLayer {
@@ -7263,6 +8483,67 @@ export interface VisualisationConfig20 {
7263
8483
  enable_accessibility?: boolean;
7264
8484
  line_style_control_metrics?: string[];
7265
8485
  line_style_excluded_metrics?: string[];
8486
+ /**
8487
+ * Conditional formatting rules that color cells or rows based on their values.
8488
+ */
8489
+ conditional_formatting?: {
8490
+ /**
8491
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
8492
+ */
8493
+ version?: string;
8494
+ /**
8495
+ * Master toggle for all conditional formatting rules.
8496
+ */
8497
+ enabled?: boolean;
8498
+ /**
8499
+ * Ordered list of rules; the first matching rule wins.
8500
+ */
8501
+ rules?: {
8502
+ /**
8503
+ * Stable, table-unique rule id.
8504
+ */
8505
+ id: string;
8506
+ /**
8507
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
8508
+ */
8509
+ target: {
8510
+ /**
8511
+ * Local identifier of the targeted measure.
8512
+ */
8513
+ measure: string;
8514
+ } | {
8515
+ /**
8516
+ * Local identifier of the targeted attribute.
8517
+ */
8518
+ attribute: string;
8519
+ };
8520
+ /**
8521
+ * Stacked conditions; the first matching condition wins.
8522
+ */
8523
+ conditions: {
8524
+ id: string;
8525
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
8526
+ /**
8527
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
8528
+ */
8529
+ value?: number | string | {
8530
+ from: number;
8531
+ to: number;
8532
+ };
8533
+ format: {
8534
+ /**
8535
+ * Text color as hex (e.g. #FFFFFF).
8536
+ */
8537
+ text?: string;
8538
+ /**
8539
+ * Background color as hex (e.g. #E54D40).
8540
+ */
8541
+ fill?: string;
8542
+ scope: "cell" | "row";
8543
+ };
8544
+ }[];
8545
+ }[];
8546
+ };
7266
8547
  [k: string]: unknown;
7267
8548
  }
7268
8549
  export interface GeoAreaChart {
@@ -7487,6 +8768,67 @@ export interface VisualisationConfig21 {
7487
8768
  enable_accessibility?: boolean;
7488
8769
  line_style_control_metrics?: string[];
7489
8770
  line_style_excluded_metrics?: string[];
8771
+ /**
8772
+ * Conditional formatting rules that color cells or rows based on their values.
8773
+ */
8774
+ conditional_formatting?: {
8775
+ /**
8776
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
8777
+ */
8778
+ version?: string;
8779
+ /**
8780
+ * Master toggle for all conditional formatting rules.
8781
+ */
8782
+ enabled?: boolean;
8783
+ /**
8784
+ * Ordered list of rules; the first matching rule wins.
8785
+ */
8786
+ rules?: {
8787
+ /**
8788
+ * Stable, table-unique rule id.
8789
+ */
8790
+ id: string;
8791
+ /**
8792
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
8793
+ */
8794
+ target: {
8795
+ /**
8796
+ * Local identifier of the targeted measure.
8797
+ */
8798
+ measure: string;
8799
+ } | {
8800
+ /**
8801
+ * Local identifier of the targeted attribute.
8802
+ */
8803
+ attribute: string;
8804
+ };
8805
+ /**
8806
+ * Stacked conditions; the first matching condition wins.
8807
+ */
8808
+ conditions: {
8809
+ id: string;
8810
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
8811
+ /**
8812
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
8813
+ */
8814
+ value?: number | string | {
8815
+ from: number;
8816
+ to: number;
8817
+ };
8818
+ format: {
8819
+ /**
8820
+ * Text color as hex (e.g. #FFFFFF).
8821
+ */
8822
+ text?: string;
8823
+ /**
8824
+ * Background color as hex (e.g. #E54D40).
8825
+ */
8826
+ fill?: string;
8827
+ scope: "cell" | "row";
8828
+ };
8829
+ }[];
8830
+ }[];
8831
+ };
7490
8832
  [k: string]: unknown;
7491
8833
  }
7492
8834
  export interface RepeaterChart {
@@ -7715,6 +9057,67 @@ export interface VisualisationConfig22 {
7715
9057
  enable_accessibility?: boolean;
7716
9058
  line_style_control_metrics?: string[];
7717
9059
  line_style_excluded_metrics?: string[];
9060
+ /**
9061
+ * Conditional formatting rules that color cells or rows based on their values.
9062
+ */
9063
+ conditional_formatting?: {
9064
+ /**
9065
+ * Conditional-formatting model version. "1" (default if omitted) — initial shape: discrete rules, one column per rule with stacked conditions. Readers must tolerate omission (treat as "1") and evolve under the same backward-compat contract as the dashboard model version, so server-side consumers (e.g. XLSX export) stay forward-compatible.
9066
+ */
9067
+ version?: string;
9068
+ /**
9069
+ * Master toggle for all conditional formatting rules.
9070
+ */
9071
+ enabled?: boolean;
9072
+ /**
9073
+ * Ordered list of rules; the first matching rule wins.
9074
+ */
9075
+ rules?: {
9076
+ /**
9077
+ * Stable, table-unique rule id.
9078
+ */
9079
+ id: string;
9080
+ /**
9081
+ * The measure or attribute the rule targets — exactly one of measure/attribute.
9082
+ */
9083
+ target: {
9084
+ /**
9085
+ * Local identifier of the targeted measure.
9086
+ */
9087
+ measure: string;
9088
+ } | {
9089
+ /**
9090
+ * Local identifier of the targeted attribute.
9091
+ */
9092
+ attribute: string;
9093
+ };
9094
+ /**
9095
+ * Stacked conditions; the first matching condition wins.
9096
+ */
9097
+ conditions: {
9098
+ id: string;
9099
+ operator: "all" | "equal_to" | "not_equal_to" | "less_than" | "less_than_or_equal_to" | "greater_than" | "greater_than_or_equal_to" | "between" | "not_between" | "contains" | "not_contains" | "starts_with" | "not_starts_with" | "ends_with" | "not_ends_with" | "is_empty" | "is_not_empty";
9100
+ /**
9101
+ * Literal (number or string); a \{from,to\} range for between/not_between; omitted for all/is_empty/is_not_empty.
9102
+ */
9103
+ value?: number | string | {
9104
+ from: number;
9105
+ to: number;
9106
+ };
9107
+ format: {
9108
+ /**
9109
+ * Text color as hex (e.g. #FFFFFF).
9110
+ */
9111
+ text?: string;
9112
+ /**
9113
+ * Background color as hex (e.g. #E54D40).
9114
+ */
9115
+ fill?: string;
9116
+ scope: "cell" | "row";
9117
+ };
9118
+ }[];
9119
+ }[];
9120
+ };
7718
9121
  [k: string]: unknown;
7719
9122
  }
7720
9123
  export interface Metadata25 {