@elevasis/ui 2.72.0 → 2.74.0

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.
Files changed (100) hide show
  1. package/dist/api/index.js +3 -3
  2. package/dist/app/index.d.ts +172 -20
  3. package/dist/app/index.js +9 -10
  4. package/dist/auth/index.js +5 -6
  5. package/dist/charts/index.js +5 -6
  6. package/dist/chunk-2GIJBHZT.js +60 -0
  7. package/dist/{chunk-2454MK7P.js → chunk-2MRRDF32.js} +115 -8
  8. package/dist/chunk-3LOKYZJC.js +231 -0
  9. package/dist/chunk-3QHX4ZKV.js +224 -0
  10. package/dist/chunk-43LC6XAX.js +69 -0
  11. package/dist/chunk-4M2BSHVT.js +116 -0
  12. package/dist/{chunk-SV4M2BUI.js → chunk-4MXNHJTA.js} +111 -46
  13. package/dist/{chunk-LEQGGX2U.js → chunk-5A6KCFS5.js} +36 -43
  14. package/dist/{chunk-KIDZXZM5.js → chunk-6JN2TLV2.js} +1480 -4200
  15. package/dist/{chunk-UZ5JO5TK.js → chunk-7ARBBELS.js} +1 -1
  16. package/dist/{chunk-DJWIIPKW.js → chunk-7RJ7P6S6.js} +6 -3
  17. package/dist/chunk-ARAFQBNI.js +515 -0
  18. package/dist/{chunk-DKVGO6RJ.js → chunk-BA3AZJUR.js} +1 -1
  19. package/dist/chunk-BRTGCFBH.js +305 -0
  20. package/dist/{chunk-7ESZKTQG.js → chunk-CQPULKKL.js} +5 -3
  21. package/dist/chunk-CRA7WQZH.js +49 -0
  22. package/dist/{chunk-XZIOCB5D.js → chunk-DCQKTDIG.js} +2 -52
  23. package/dist/{chunk-A3JHFZDP.js → chunk-E6YGA5WH.js} +1 -1
  24. package/dist/chunk-FA7LMNQO.js +439 -0
  25. package/dist/chunk-FZSG6M6W.js +45 -0
  26. package/dist/chunk-GDOR57D7.js +165 -0
  27. package/dist/{chunk-RRS2QR3W.js → chunk-GO4XJ5D4.js} +1 -1
  28. package/dist/chunk-GPQQGQGT.js +645 -0
  29. package/dist/chunk-HYQOGRWG.js +54 -0
  30. package/dist/{chunk-LCHL5SM2.js → chunk-LN4UW6S4.js} +1 -1
  31. package/dist/chunk-N6K2Q5BM.js +393 -0
  32. package/dist/{chunk-Z2W5VNN3.js → chunk-O32UQ26A.js} +3 -2
  33. package/dist/{chunk-M7WWRZ5Z.js → chunk-QFGNRKIE.js} +1 -78
  34. package/dist/{chunk-Q3O3WY7Q.js → chunk-R5UGIFYU.js} +74 -18
  35. package/dist/{chunk-753MKWFV.js → chunk-RFNJ2PTO.js} +1 -1
  36. package/dist/chunk-VM2OWOXL.js +24 -0
  37. package/dist/{chunk-ZBXCEWKF.js → chunk-W2QRBQQA.js} +5 -3
  38. package/dist/chunk-WDBNW44Z.js +49 -0
  39. package/dist/{chunk-IXBRUIYI.js → chunk-WZU3MCKI.js} +1 -1
  40. package/dist/chunk-YQQ5GRUR.js +21 -0
  41. package/dist/{chunk-IMZTRDY2.js → chunk-ZFA56VSR.js} +2 -2
  42. package/dist/{chunk-AFBFSXP3.js → chunk-ZWI62BQ6.js} +7 -4
  43. package/dist/chunk-ZYNVCWDZ.js +286 -0
  44. package/dist/components/index.d.ts +490 -22
  45. package/dist/components/index.js +335 -35
  46. package/dist/components/navigation/index.js +6 -7
  47. package/dist/features/auth/index.d.ts +154 -2
  48. package/dist/features/auth/index.js +18 -9
  49. package/dist/features/clients/index.js +7 -7
  50. package/dist/features/content/index.d.ts +718 -34
  51. package/dist/features/content/index.js +1345 -51
  52. package/dist/features/crm/index.d.ts +172 -20
  53. package/dist/features/crm/index.js +10 -8
  54. package/dist/features/dashboard/index.d.ts +19 -10
  55. package/dist/features/dashboard/index.js +9 -8
  56. package/dist/features/delivery/index.d.ts +134 -0
  57. package/dist/features/delivery/index.js +23 -7
  58. package/dist/features/knowledge/index.js +5 -6
  59. package/dist/features/lead-gen/index.d.ts +47 -35
  60. package/dist/features/lead-gen/index.js +12 -8
  61. package/dist/features/monitoring/index.js +11 -9
  62. package/dist/features/monitoring/requests/index.js +8 -7
  63. package/dist/features/operations/index.d.ts +38 -20
  64. package/dist/features/operations/index.js +15 -11
  65. package/dist/features/public-agent-chat/index.js +3 -1
  66. package/dist/features/settings/index.d.ts +134 -0
  67. package/dist/features/settings/index.js +9 -8
  68. package/dist/hooks/access/index.js +5 -6
  69. package/dist/hooks/delivery/index.d.ts +134 -0
  70. package/dist/hooks/delivery/index.js +3 -2
  71. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +20 -11
  72. package/dist/hooks/published.d.ts +1421 -29
  73. package/dist/hooks/published.js +22 -6
  74. package/dist/initialization/index.d.ts +134 -0
  75. package/dist/knowledge/index.d.ts +38 -20
  76. package/dist/knowledge/index.js +167 -11
  77. package/dist/{knowledge-search-index-RZLIVWPJ.js → knowledge-search-index-6GQK55IQ.js} +1 -1
  78. package/dist/layout/index.js +8 -9
  79. package/dist/profile/index.d.ts +134 -0
  80. package/dist/provider/index.d.ts +191 -21
  81. package/dist/provider/index.js +5 -6
  82. package/dist/provider/published.d.ts +219 -21
  83. package/dist/provider/published.js +5 -6
  84. package/dist/test-utils/index.d.ts +16 -5
  85. package/dist/test-utils/index.js +17 -18
  86. package/dist/types/index.d.ts +184 -14
  87. package/dist/utils/index.d.ts +102 -13
  88. package/dist/utils/index.js +1 -1
  89. package/package.json +7 -6
  90. package/dist/chunk-6M6OLGQY.js +0 -36
  91. package/dist/chunk-MKH2KOAO.js +0 -39
  92. package/dist/hooks/index.css +0 -659
  93. package/dist/hooks/index.d.ts +0 -12853
  94. package/dist/hooks/index.js +0 -27
  95. package/dist/supabase/index.d.ts +0 -6969
  96. package/dist/supabase/index.js +0 -3
  97. package/dist/typeform/index.d.ts +0 -462
  98. package/dist/typeform/index.js +0 -2051
  99. package/dist/typeform/schemas.d.ts +0 -67
  100. package/dist/typeform/schemas.js +0 -2
@@ -1683,6 +1683,64 @@ type Database = {
1683
1683
  }
1684
1684
  ];
1685
1685
  };
1686
+ content_distribution_metrics: {
1687
+ Row: {
1688
+ captured_at: string;
1689
+ created_at: string;
1690
+ distribution_id: string;
1691
+ id: string;
1692
+ metrics: Json;
1693
+ organization_id: string;
1694
+ raw: Json;
1695
+ source: string;
1696
+ source_execution_id: string | null;
1697
+ };
1698
+ Insert: {
1699
+ captured_at?: string;
1700
+ created_at?: string;
1701
+ distribution_id: string;
1702
+ id?: string;
1703
+ metrics?: Json;
1704
+ organization_id: string;
1705
+ raw?: Json;
1706
+ source: string;
1707
+ source_execution_id?: string | null;
1708
+ };
1709
+ Update: {
1710
+ captured_at?: string;
1711
+ created_at?: string;
1712
+ distribution_id?: string;
1713
+ id?: string;
1714
+ metrics?: Json;
1715
+ organization_id?: string;
1716
+ raw?: Json;
1717
+ source?: string;
1718
+ source_execution_id?: string | null;
1719
+ };
1720
+ Relationships: [
1721
+ {
1722
+ foreignKeyName: "content_distribution_metrics_distribution_fkey";
1723
+ columns: ["distribution_id", "organization_id"];
1724
+ isOneToOne: false;
1725
+ referencedRelation: "content_distributions";
1726
+ referencedColumns: ["id", "organization_id"];
1727
+ },
1728
+ {
1729
+ foreignKeyName: "content_distribution_metrics_organization_id_fkey";
1730
+ columns: ["organization_id"];
1731
+ isOneToOne: false;
1732
+ referencedRelation: "organizations";
1733
+ referencedColumns: ["id"];
1734
+ },
1735
+ {
1736
+ foreignKeyName: "content_distribution_metrics_source_execution_id_fkey";
1737
+ columns: ["source_execution_id"];
1738
+ isOneToOne: false;
1739
+ referencedRelation: "execution_logs";
1740
+ referencedColumns: ["execution_id"];
1741
+ }
1742
+ ];
1743
+ };
1686
1744
  content_distributions: {
1687
1745
  Row: {
1688
1746
  adapted_body: string | null;
@@ -1832,6 +1890,63 @@ type Database = {
1832
1890
  }
1833
1891
  ];
1834
1892
  };
1893
+ content_item_source_assets: {
1894
+ Row: {
1895
+ alt_text: string | null;
1896
+ content_item_id: string;
1897
+ created_at: string;
1898
+ crop: Json | null;
1899
+ derivative_crop: Json | null;
1900
+ derivative_path: string | null;
1901
+ derivative_rendered_at: string | null;
1902
+ id: string;
1903
+ organization_id: string;
1904
+ position: number;
1905
+ source_asset_id: string;
1906
+ };
1907
+ Insert: {
1908
+ alt_text?: string | null;
1909
+ content_item_id: string;
1910
+ created_at?: string;
1911
+ crop?: Json | null;
1912
+ derivative_crop?: Json | null;
1913
+ derivative_path?: string | null;
1914
+ derivative_rendered_at?: string | null;
1915
+ id?: string;
1916
+ organization_id: string;
1917
+ position: number;
1918
+ source_asset_id: string;
1919
+ };
1920
+ Update: {
1921
+ alt_text?: string | null;
1922
+ content_item_id?: string;
1923
+ created_at?: string;
1924
+ crop?: Json | null;
1925
+ derivative_crop?: Json | null;
1926
+ derivative_path?: string | null;
1927
+ derivative_rendered_at?: string | null;
1928
+ id?: string;
1929
+ organization_id?: string;
1930
+ position?: number;
1931
+ source_asset_id?: string;
1932
+ };
1933
+ Relationships: [
1934
+ {
1935
+ foreignKeyName: "content_item_source_assets_asset_fkey";
1936
+ columns: ["source_asset_id", "organization_id"];
1937
+ isOneToOne: false;
1938
+ referencedRelation: "content_source_assets";
1939
+ referencedColumns: ["id", "organization_id"];
1940
+ },
1941
+ {
1942
+ foreignKeyName: "content_item_source_assets_item_fkey";
1943
+ columns: ["content_item_id", "organization_id"];
1944
+ isOneToOne: false;
1945
+ referencedRelation: "content_items";
1946
+ referencedColumns: ["id", "organization_id"];
1947
+ }
1948
+ ];
1949
+ };
1835
1950
  content_items: {
1836
1951
  Row: {
1837
1952
  body: string | null;
@@ -3587,6 +3702,25 @@ type Database = {
3587
3702
  };
3588
3703
  Returns: Json;
3589
3704
  };
3705
+ activate_deployment_atomic: {
3706
+ Args: {
3707
+ p_deployment_id: string;
3708
+ p_organization_id: string;
3709
+ };
3710
+ Returns: {
3711
+ created_at: string;
3712
+ deployment_version: string | null;
3713
+ error_message: string | null;
3714
+ id: string;
3715
+ organization_id: string;
3716
+ pid: number | null;
3717
+ port: number | null;
3718
+ sdk_version: string;
3719
+ status: string;
3720
+ tarball_path: string | null;
3721
+ updated_at: string;
3722
+ };
3723
+ };
3590
3724
  append_deal_activity: {
3591
3725
  Args: {
3592
3726
  p_activity: Json;
@@ -3828,7 +3962,9 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3828
3962
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
3829
3963
  properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3830
3964
  storage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3831
- }, z.core.$loose>>>>;
3965
+ rowSchema: z.ZodOptional<z.ZodString>;
3966
+ stateCatalogId: z.ZodOptional<z.ZodString>;
3967
+ }, z.core.$strict>>>>;
3832
3968
  linkTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3833
3969
  id: z.ZodString;
3834
3970
  label: z.ZodOptional<z.ZodString>;
@@ -3839,7 +3975,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3839
3975
  to: z.ZodString;
3840
3976
  cardinality: z.ZodOptional<z.ZodString>;
3841
3977
  via: z.ZodOptional<z.ZodString>;
3842
- }, z.core.$loose>>>>;
3978
+ }, z.core.$strict>>>>;
3843
3979
  actionTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3844
3980
  id: z.ZodString;
3845
3981
  label: z.ZodOptional<z.ZodString>;
@@ -3849,7 +3985,11 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3849
3985
  actsOn: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
3850
3986
  input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3851
3987
  effects: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3852
- }, z.core.$loose>>>>;
3988
+ resourceId: z.ZodOptional<z.ZodString>;
3989
+ invocations: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
3990
+ lifecycle: z.ZodOptional<z.ZodString>;
3991
+ legacyActionId: z.ZodOptional<z.ZodString>;
3992
+ }, z.core.$strict>>>>;
3853
3993
  catalogTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3854
3994
  id: z.ZodString;
3855
3995
  label: z.ZodOptional<z.ZodString>;
@@ -3859,7 +3999,10 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3859
3999
  kind: z.ZodOptional<z.ZodString>;
3860
4000
  appliesTo: z.ZodOptional<z.ZodString>;
3861
4001
  entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3862
- }, z.core.$loose>>>>;
4002
+ legacyCatalogKey: z.ZodOptional<z.ZodString>;
4003
+ legacyPipelineKey: z.ZodOptional<z.ZodString>;
4004
+ legacyEntityKey: z.ZodOptional<z.ZodString>;
4005
+ }, z.core.$strict>>>>;
3863
4006
  eventTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3864
4007
  id: z.ZodString;
3865
4008
  label: z.ZodOptional<z.ZodString>;
@@ -3867,7 +4010,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3867
4010
  ownerSystemId: z.ZodOptional<z.ZodString>;
3868
4011
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
3869
4012
  payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3870
- }, z.core.$loose>>>>;
4013
+ }, z.core.$strict>>>>;
3871
4014
  interfaceTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3872
4015
  id: z.ZodString;
3873
4016
  label: z.ZodOptional<z.ZodString>;
@@ -3875,7 +4018,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3875
4018
  ownerSystemId: z.ZodOptional<z.ZodString>;
3876
4019
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
3877
4020
  properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
3878
- }, z.core.$loose>>>>;
4021
+ }, z.core.$strict>>>>;
3879
4022
  valueTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3880
4023
  id: z.ZodString;
3881
4024
  label: z.ZodOptional<z.ZodString>;
@@ -3883,7 +4026,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3883
4026
  ownerSystemId: z.ZodOptional<z.ZodString>;
3884
4027
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
3885
4028
  primitive: z.ZodOptional<z.ZodString>;
3886
- }, z.core.$loose>>>>;
4029
+ }, z.core.$strict>>>>;
3887
4030
  sharedProperties: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3888
4031
  id: z.ZodString;
3889
4032
  label: z.ZodOptional<z.ZodString>;
@@ -3893,7 +4036,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3893
4036
  valueType: z.ZodOptional<z.ZodString>;
3894
4037
  searchable: z.ZodOptional<z.ZodBoolean>;
3895
4038
  pii: z.ZodOptional<z.ZodBoolean>;
3896
- }, z.core.$loose>>>>;
4039
+ }, z.core.$strict>>>>;
3897
4040
  groups: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3898
4041
  id: z.ZodString;
3899
4042
  label: z.ZodOptional<z.ZodString>;
@@ -3901,7 +4044,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3901
4044
  ownerSystemId: z.ZodOptional<z.ZodString>;
3902
4045
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
3903
4046
  members: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
3904
- }, z.core.$loose>>>>;
4047
+ }, z.core.$strict>>>>;
3905
4048
  endpoints: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
3906
4049
  id: z.ZodString;
3907
4050
  label: z.ZodOptional<z.ZodString>;
@@ -3909,7 +4052,7 @@ declare const OntologyScopeSchema: z.ZodDefault<z.ZodObject<{
3909
4052
  ownerSystemId: z.ZodOptional<z.ZodString>;
3910
4053
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
3911
4054
  route: z.ZodOptional<z.ZodString>;
3912
- }, z.core.$loose>>>>;
4055
+ }, z.core.$strict>>>>;
3913
4056
  }, z.core.$strict>>;
3914
4057
  type OntologyScope = z.infer<typeof OntologyScopeSchema>;
3915
4058
 
@@ -5363,6 +5506,126 @@ declare const ContentPipelineIdSchema: z.ZodString;
5363
5506
  declare const ContentItemStatusSchema: z.ZodString;
5364
5507
  /** `content:catalog/pillar` entries. */
5365
5508
  declare const ContentPillarSchema: z.ZodString;
5509
+ /** Response-side crop: unknown keys are stripped, not rejected, like every other response schema here. */
5510
+ declare const ContentAssetCropSchema: z.ZodObject<{
5511
+ x: z.ZodNumber;
5512
+ y: z.ZodNumber;
5513
+ width: z.ZodNumber;
5514
+ height: z.ZodNumber;
5515
+ }, z.core.$strip>;
5516
+ /** Request-side crop: `.strict()`, the same mass-assignment guard every request schema in this file uses. */
5517
+ declare const ContentAssetCropInputSchema: z.ZodObject<{
5518
+ x: z.ZodNumber;
5519
+ y: z.ZodNumber;
5520
+ width: z.ZodNumber;
5521
+ height: z.ZodNumber;
5522
+ }, z.core.$strict>;
5523
+ declare const ContentItemSourceAssetResponseSchema: z.ZodObject<{
5524
+ id: z.ZodString;
5525
+ organizationId: z.ZodString;
5526
+ contentItemId: z.ZodString;
5527
+ sourceAssetId: z.ZodString;
5528
+ position: z.ZodNumber;
5529
+ crop: z.ZodNullable<z.ZodObject<{
5530
+ x: z.ZodNumber;
5531
+ y: z.ZodNumber;
5532
+ width: z.ZodNumber;
5533
+ height: z.ZodNumber;
5534
+ }, z.core.$strip>>;
5535
+ altText: z.ZodNullable<z.ZodString>;
5536
+ derivativePath: z.ZodNullable<z.ZodString>;
5537
+ derivativeCrop: z.ZodNullable<z.ZodObject<{
5538
+ x: z.ZodNumber;
5539
+ y: z.ZodNumber;
5540
+ width: z.ZodNumber;
5541
+ height: z.ZodNumber;
5542
+ }, z.core.$strip>>;
5543
+ derivativeRenderedAt: z.ZodNullable<z.ZodString>;
5544
+ createdAt: z.ZodString;
5545
+ }, z.core.$strip>;
5546
+ declare const ContentItemSourceAssetListResponseSchema: z.ZodObject<{
5547
+ data: z.ZodArray<z.ZodObject<{
5548
+ id: z.ZodString;
5549
+ organizationId: z.ZodString;
5550
+ contentItemId: z.ZodString;
5551
+ sourceAssetId: z.ZodString;
5552
+ position: z.ZodNumber;
5553
+ crop: z.ZodNullable<z.ZodObject<{
5554
+ x: z.ZodNumber;
5555
+ y: z.ZodNumber;
5556
+ width: z.ZodNumber;
5557
+ height: z.ZodNumber;
5558
+ }, z.core.$strip>>;
5559
+ altText: z.ZodNullable<z.ZodString>;
5560
+ derivativePath: z.ZodNullable<z.ZodString>;
5561
+ derivativeCrop: z.ZodNullable<z.ZodObject<{
5562
+ x: z.ZodNumber;
5563
+ y: z.ZodNumber;
5564
+ width: z.ZodNumber;
5565
+ height: z.ZodNumber;
5566
+ }, z.core.$strip>>;
5567
+ derivativeRenderedAt: z.ZodNullable<z.ZodString>;
5568
+ createdAt: z.ZodString;
5569
+ }, z.core.$strip>>;
5570
+ }, z.core.$strip>;
5571
+ /**
5572
+ * One membership as a caller supplies it. Two callers share it:
5573
+ * `CreateContentItemRequestSchema.sourceAssets` (the ordered set a carousel is
5574
+ * created with, in one transaction) and the body of the `addItemSourceAsset`
5575
+ * write, whose `itemId` arrives as a path param rather than in the body.
5576
+ */
5577
+ declare const ContentItemSourceAssetInputSchema: z.ZodObject<{
5578
+ sourceAssetId: z.ZodString;
5579
+ position: z.ZodNumber;
5580
+ crop: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5581
+ x: z.ZodNumber;
5582
+ y: z.ZodNumber;
5583
+ width: z.ZodNumber;
5584
+ height: z.ZodNumber;
5585
+ }, z.core.$strict>>>;
5586
+ altText: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5587
+ }, z.core.$strict>;
5588
+ /**
5589
+ * Patches one membership's per-slide attributes. `position` is deliberately
5590
+ * absent: moving a slide is a reorder of the whole set (below), because a
5591
+ * single-row position write only makes sense inside the transaction that fixes
5592
+ * up its neighbours. `sourceAssetId` is immutable — swapping the asset is a
5593
+ * remove plus an add.
5594
+ *
5595
+ * `derivativeRenderedAt` is likewise absent, and deliberately: the server stamps
5596
+ * it whenever `derivativePath` is written, because a client clock is not evidence
5597
+ * of when a server-side row changed.
5598
+ */
5599
+ declare const UpdateContentItemSourceAssetRequestSchema: z.ZodObject<{
5600
+ crop: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5601
+ x: z.ZodNumber;
5602
+ y: z.ZodNumber;
5603
+ width: z.ZodNumber;
5604
+ height: z.ZodNumber;
5605
+ }, z.core.$strict>>>;
5606
+ altText: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5607
+ derivativePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5608
+ derivativeCrop: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5609
+ x: z.ZodNumber;
5610
+ y: z.ZodNumber;
5611
+ width: z.ZodNumber;
5612
+ height: z.ZodNumber;
5613
+ }, z.core.$strict>>>;
5614
+ }, z.core.$strict>;
5615
+ /**
5616
+ * The item's complete membership set in its new order — index becomes
5617
+ * `position`, so index 0 is the new cover. Wholesale rather than per-row
5618
+ * because `UNIQUE (content_item_id, position)` is DEFERRABLE INITIALLY
5619
+ * DEFERRED: the writer issues plain per-row updates inside one transaction and
5620
+ * the constraint is checked at COMMIT. An implementation that shuffles through
5621
+ * a temporary offset is a sign the deferrable constraint was not used.
5622
+ *
5623
+ * The service rejects a list that does not name exactly the item's current
5624
+ * memberships — this schema can only check shape, not membership.
5625
+ */
5626
+ declare const ReorderContentItemSourceAssetsRequestSchema: z.ZodObject<{
5627
+ orderedAssetIds: z.ZodArray<z.ZodString>;
5628
+ }, z.core.$strict>;
5366
5629
  declare const ListContentItemsQuerySchema: z.ZodObject<{
5367
5630
  status: z.ZodOptional<z.ZodString>;
5368
5631
  pillar: z.ZodOptional<z.ZodString>;
@@ -5384,6 +5647,29 @@ declare const ContentItemResponseSchema: z.ZodObject<{
5384
5647
  pipelineId: z.ZodNullable<z.ZodString>;
5385
5648
  clientId: z.ZodNullable<z.ZodString>;
5386
5649
  sourceAssetId: z.ZodNullable<z.ZodString>;
5650
+ sourceAssets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5651
+ id: z.ZodString;
5652
+ organizationId: z.ZodString;
5653
+ contentItemId: z.ZodString;
5654
+ sourceAssetId: z.ZodString;
5655
+ position: z.ZodNumber;
5656
+ crop: z.ZodNullable<z.ZodObject<{
5657
+ x: z.ZodNumber;
5658
+ y: z.ZodNumber;
5659
+ width: z.ZodNumber;
5660
+ height: z.ZodNumber;
5661
+ }, z.core.$strip>>;
5662
+ altText: z.ZodNullable<z.ZodString>;
5663
+ derivativePath: z.ZodNullable<z.ZodString>;
5664
+ derivativeCrop: z.ZodNullable<z.ZodObject<{
5665
+ x: z.ZodNumber;
5666
+ y: z.ZodNumber;
5667
+ width: z.ZodNumber;
5668
+ height: z.ZodNumber;
5669
+ }, z.core.$strip>>;
5670
+ derivativeRenderedAt: z.ZodNullable<z.ZodString>;
5671
+ createdAt: z.ZodString;
5672
+ }, z.core.$strip>>>;
5387
5673
  processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
5388
5674
  status: z.ZodEnum<{
5389
5675
  error: "error";
@@ -5418,6 +5704,29 @@ declare const ContentItemListResponseSchema: z.ZodObject<{
5418
5704
  pipelineId: z.ZodNullable<z.ZodString>;
5419
5705
  clientId: z.ZodNullable<z.ZodString>;
5420
5706
  sourceAssetId: z.ZodNullable<z.ZodString>;
5707
+ sourceAssets: z.ZodOptional<z.ZodArray<z.ZodObject<{
5708
+ id: z.ZodString;
5709
+ organizationId: z.ZodString;
5710
+ contentItemId: z.ZodString;
5711
+ sourceAssetId: z.ZodString;
5712
+ position: z.ZodNumber;
5713
+ crop: z.ZodNullable<z.ZodObject<{
5714
+ x: z.ZodNumber;
5715
+ y: z.ZodNumber;
5716
+ width: z.ZodNumber;
5717
+ height: z.ZodNumber;
5718
+ }, z.core.$strip>>;
5719
+ altText: z.ZodNullable<z.ZodString>;
5720
+ derivativePath: z.ZodNullable<z.ZodString>;
5721
+ derivativeCrop: z.ZodNullable<z.ZodObject<{
5722
+ x: z.ZodNumber;
5723
+ y: z.ZodNumber;
5724
+ width: z.ZodNumber;
5725
+ height: z.ZodNumber;
5726
+ }, z.core.$strip>>;
5727
+ derivativeRenderedAt: z.ZodNullable<z.ZodString>;
5728
+ createdAt: z.ZodString;
5729
+ }, z.core.$strip>>>;
5421
5730
  processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
5422
5731
  status: z.ZodEnum<{
5423
5732
  error: "error";
@@ -5444,6 +5753,14 @@ declare const ContentItemListResponseSchema: z.ZodObject<{
5444
5753
  limit: z.ZodNumber;
5445
5754
  offset: z.ZodNumber;
5446
5755
  }, z.core.$strip>;
5756
+ /**
5757
+ * Membership is deliberately absent here (Open Decision 11, 2026-08-17). A
5758
+ * wholesale-replace `sourceAssets` array would force every partial item update
5759
+ * to say something about the asset list, and once omission means "leave alone"
5760
+ * there is no longer any way to clear membership at all. Use
5761
+ * `addItemSourceAsset` / `removeItemSourceAsset` / `reorderItemSourceAssets` /
5762
+ * `updateItemSourceAsset` instead. Do not "complete" this schema by adding it.
5763
+ */
5447
5764
  declare const UpdateContentItemRequestSchema: z.ZodObject<{
5448
5765
  title: z.ZodOptional<z.ZodString>;
5449
5766
  body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -5585,7 +5902,14 @@ declare const ContentDistributionResponseSchema: z.ZodObject<{
5585
5902
  adaptedBody: z.ZodNullable<z.ZodString>;
5586
5903
  platformContent: z.ZodNullable<z.ZodUnknown>;
5587
5904
  checklist: z.ZodNullable<z.ZodUnknown>;
5588
- mediaUrls: z.ZodArray<z.ZodUnknown>;
5905
+ mediaUrls: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
5906
+ kind: z.ZodLiteral<"storage">;
5907
+ bucket: z.ZodString;
5908
+ path: z.ZodString;
5909
+ }, z.core.$strict>, z.ZodObject<{
5910
+ kind: z.ZodLiteral<"url">;
5911
+ url: z.ZodString;
5912
+ }, z.core.$strict>], "kind">>;
5589
5913
  processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
5590
5914
  status: z.ZodEnum<{
5591
5915
  error: "error";
@@ -5619,7 +5943,14 @@ declare const ContentDistributionListResponseSchema: z.ZodObject<{
5619
5943
  adaptedBody: z.ZodNullable<z.ZodString>;
5620
5944
  platformContent: z.ZodNullable<z.ZodUnknown>;
5621
5945
  checklist: z.ZodNullable<z.ZodUnknown>;
5622
- mediaUrls: z.ZodArray<z.ZodUnknown>;
5946
+ mediaUrls: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
5947
+ kind: z.ZodLiteral<"storage">;
5948
+ bucket: z.ZodString;
5949
+ path: z.ZodString;
5950
+ }, z.core.$strict>, z.ZodObject<{
5951
+ kind: z.ZodLiteral<"url">;
5952
+ url: z.ZodString;
5953
+ }, z.core.$strict>], "kind">>;
5623
5954
  processingState: z.ZodRecord<z.ZodString, z.ZodObject<{
5624
5955
  status: z.ZodEnum<{
5625
5956
  error: "error";
@@ -5643,6 +5974,23 @@ declare const ContentDistributionListResponseSchema: z.ZodObject<{
5643
5974
  updatedAt: z.ZodString;
5644
5975
  }, z.core.$strip>>;
5645
5976
  }, z.core.$strip>;
5977
+ declare const CreateContentDistributionRequestSchema: z.ZodObject<{
5978
+ contentItemId: z.ZodString;
5979
+ platform: z.ZodString;
5980
+ format: z.ZodString;
5981
+ status: z.ZodOptional<z.ZodString>;
5982
+ adaptedBody: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5983
+ platformContent: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
5984
+ checklist: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
5985
+ mediaUrls: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
5986
+ kind: z.ZodLiteral<"storage">;
5987
+ bucket: z.ZodString;
5988
+ path: z.ZodString;
5989
+ }, z.core.$strict>, z.ZodObject<{
5990
+ kind: z.ZodLiteral<"url">;
5991
+ url: z.ZodString;
5992
+ }, z.core.$strict>], "kind">>>;
5993
+ }, z.core.$strict>;
5646
5994
  /**
5647
5995
  * `publishMethod` is where D7's manual-publish state becomes visible: a row
5648
5996
  * with `publishedAt` set and no `platformPostId`.
@@ -5652,7 +6000,14 @@ declare const UpdateContentDistributionRequestSchema: z.ZodObject<{
5652
6000
  adaptedBody: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5653
6001
  platformContent: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
5654
6002
  checklist: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
5655
- mediaUrls: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
6003
+ mediaUrls: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
6004
+ kind: z.ZodLiteral<"storage">;
6005
+ bucket: z.ZodString;
6006
+ path: z.ZodString;
6007
+ }, z.core.$strict>, z.ZodObject<{
6008
+ kind: z.ZodLiteral<"url">;
6009
+ url: z.ZodString;
6010
+ }, z.core.$strict>], "kind">>>;
5656
6011
  publishMethod: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5657
6012
  publishedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5658
6013
  platformPostId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -5660,9 +6015,90 @@ declare const UpdateContentDistributionRequestSchema: z.ZodObject<{
5660
6015
  metrics: z.ZodOptional<z.ZodUnknown>;
5661
6016
  metricsUpdatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
5662
6017
  }, z.core.$strict>;
6018
+ /**
6019
+ * The cross-platform vocabulary. One name per concept, shared by every
6020
+ * platform, so a chart can put Instagram and TikTok on the same axis.
6021
+ *
6022
+ * Each key is optional and its ABSENCE MEANS UNSUPPORTED, not zero -- a FEED
6023
+ * carousel reports no `clicks` at all, which is a different fact from clicks
6024
+ * being zero. Readers must distinguish the two.
6025
+ *
6026
+ * Strict on purpose: this object is the gate the database deliberately does not
6027
+ * enforce (a CHECK on JSON keys would need a migration per platform). A source
6028
+ * returning a name outside this list is a mapping that has not been written
6029
+ * yet, and the verbatim `raw` alongside it means nothing is lost meanwhile.
6030
+ */
6031
+ declare const ContentDistributionMetricsSchema: z.ZodObject<{
6032
+ views: z.ZodOptional<z.ZodNumber>;
6033
+ reach: z.ZodOptional<z.ZodNumber>;
6034
+ likes: z.ZodOptional<z.ZodNumber>;
6035
+ comments: z.ZodOptional<z.ZodNumber>;
6036
+ shares: z.ZodOptional<z.ZodNumber>;
6037
+ saves: z.ZodOptional<z.ZodNumber>;
6038
+ engagements: z.ZodOptional<z.ZodNumber>;
6039
+ profile_visits: z.ZodOptional<z.ZodNumber>;
6040
+ profile_activity: z.ZodOptional<z.ZodNumber>;
6041
+ follows: z.ZodOptional<z.ZodNumber>;
6042
+ clicks: z.ZodOptional<z.ZodNumber>;
6043
+ }, z.core.$strict>;
6044
+ declare const ContentDistributionMetricsResponseSchema: z.ZodObject<{
6045
+ id: z.ZodString;
6046
+ organizationId: z.ZodString;
6047
+ distributionId: z.ZodString;
6048
+ capturedAt: z.ZodString;
6049
+ source: z.ZodString;
6050
+ metrics: z.ZodObject<{
6051
+ views: z.ZodOptional<z.ZodNumber>;
6052
+ reach: z.ZodOptional<z.ZodNumber>;
6053
+ likes: z.ZodOptional<z.ZodNumber>;
6054
+ comments: z.ZodOptional<z.ZodNumber>;
6055
+ shares: z.ZodOptional<z.ZodNumber>;
6056
+ saves: z.ZodOptional<z.ZodNumber>;
6057
+ engagements: z.ZodOptional<z.ZodNumber>;
6058
+ profile_visits: z.ZodOptional<z.ZodNumber>;
6059
+ profile_activity: z.ZodOptional<z.ZodNumber>;
6060
+ follows: z.ZodOptional<z.ZodNumber>;
6061
+ clicks: z.ZodOptional<z.ZodNumber>;
6062
+ }, z.core.$strict>;
6063
+ raw: z.ZodUnknown;
6064
+ sourceExecutionId: z.ZodNullable<z.ZodString>;
6065
+ createdAt: z.ZodString;
6066
+ }, z.core.$strip>;
6067
+ declare const ContentDistributionMetricsListResponseSchema: z.ZodObject<{
6068
+ data: z.ZodArray<z.ZodObject<{
6069
+ id: z.ZodString;
6070
+ organizationId: z.ZodString;
6071
+ distributionId: z.ZodString;
6072
+ capturedAt: z.ZodString;
6073
+ source: z.ZodString;
6074
+ metrics: z.ZodObject<{
6075
+ views: z.ZodOptional<z.ZodNumber>;
6076
+ reach: z.ZodOptional<z.ZodNumber>;
6077
+ likes: z.ZodOptional<z.ZodNumber>;
6078
+ comments: z.ZodOptional<z.ZodNumber>;
6079
+ shares: z.ZodOptional<z.ZodNumber>;
6080
+ saves: z.ZodOptional<z.ZodNumber>;
6081
+ engagements: z.ZodOptional<z.ZodNumber>;
6082
+ profile_visits: z.ZodOptional<z.ZodNumber>;
6083
+ profile_activity: z.ZodOptional<z.ZodNumber>;
6084
+ follows: z.ZodOptional<z.ZodNumber>;
6085
+ clicks: z.ZodOptional<z.ZodNumber>;
6086
+ }, z.core.$strict>;
6087
+ raw: z.ZodUnknown;
6088
+ sourceExecutionId: z.ZodNullable<z.ZodString>;
6089
+ createdAt: z.ZodString;
6090
+ }, z.core.$strip>>;
6091
+ }, z.core.$strip>;
5663
6092
  type ContentPipelineId = z.infer<typeof ContentPipelineIdSchema>;
5664
6093
  type ContentItemStatus = z.infer<typeof ContentItemStatusSchema>;
5665
6094
  type ContentPillar = z.infer<typeof ContentPillarSchema>;
6095
+ type ContentAssetCrop = z.infer<typeof ContentAssetCropSchema>;
6096
+ type ContentAssetCropInput = z.infer<typeof ContentAssetCropInputSchema>;
6097
+ type ContentItemSourceAssetResponse = z.infer<typeof ContentItemSourceAssetResponseSchema>;
6098
+ type ContentItemSourceAssetListResponse = z.infer<typeof ContentItemSourceAssetListResponseSchema>;
6099
+ type ContentItemSourceAssetInput = z.infer<typeof ContentItemSourceAssetInputSchema>;
6100
+ type UpdateContentItemSourceAssetRequest = z.infer<typeof UpdateContentItemSourceAssetRequestSchema>;
6101
+ type ReorderContentItemSourceAssetsRequest = z.infer<typeof ReorderContentItemSourceAssetsRequestSchema>;
5666
6102
  type ListContentItemsQuery = z.infer<typeof ListContentItemsQuerySchema>;
5667
6103
  type ContentItemResponse = z.infer<typeof ContentItemResponseSchema>;
5668
6104
  type ContentItemListResponse = z.infer<typeof ContentItemListResponseSchema>;
@@ -5678,7 +6114,11 @@ type UpdateContentSourceAssetRequest = z.infer<typeof UpdateContentSourceAssetRe
5678
6114
  type ListContentDistributionsQuery = z.infer<typeof ListContentDistributionsQuerySchema>;
5679
6115
  type ContentDistributionResponse = z.infer<typeof ContentDistributionResponseSchema>;
5680
6116
  type ContentDistributionListResponse = z.infer<typeof ContentDistributionListResponseSchema>;
6117
+ type CreateContentDistributionRequest = z.infer<typeof CreateContentDistributionRequestSchema>;
5681
6118
  type UpdateContentDistributionRequest = z.infer<typeof UpdateContentDistributionRequestSchema>;
6119
+ type ContentDistributionMetrics = z.infer<typeof ContentDistributionMetricsSchema>;
6120
+ type ContentDistributionMetricsResponse = z.infer<typeof ContentDistributionMetricsResponseSchema>;
6121
+ type ContentDistributionMetricsListResponse = z.infer<typeof ContentDistributionMetricsListResponseSchema>;
5682
6122
 
5683
6123
  /**
5684
6124
  * Time range selector for dashboard metrics
@@ -6110,7 +6550,7 @@ type AIResourceDefinition = SerializedWorkflowDefinition | SerializedAgentDefini
6110
6550
  * Note: Concrete adapter implementations are deferred until needed.
6111
6551
  * This type provides compile-time safety and auto-completion for tool definitions.
6112
6552
  */
6113
- type IntegrationType = 'gmail' | 'google-sheets' | 'slack' | 'github' | 'linear' | 'attio' | 'airtable' | 'salesforce' | 'hubspot' | 'stripe' | 'twilio' | 'sendgrid' | 'mailgun' | 'zapier' | 'webhook' | 'apify' | 'instantly' | 'resend' | 'signature-api' | 'dropbox' | 'anymailfinder' | 'tomba' | 'millionverifier';
6553
+ type IntegrationType = 'gmail' | 'google-sheets' | 'slack' | 'github' | 'linear' | 'attio' | 'airtable' | 'salesforce' | 'hubspot' | 'stripe' | 'twilio' | 'sendgrid' | 'mailgun' | 'zapier' | 'webhook' | 'apify' | 'instantly' | 'resend' | 'signature-api' | 'dropbox' | 'anymailfinder' | 'tomba' | 'millionverifier' | 'instagram';
6114
6554
 
6115
6555
  /**
6116
6556
  * Resource Registry type definitions
@@ -6888,7 +7328,9 @@ declare const OrganizationModelSchema: z.ZodObject<{
6888
7328
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
6889
7329
  properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6890
7330
  storage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6891
- }, z.core.$loose>>>>;
7331
+ rowSchema: z.ZodOptional<z.ZodString>;
7332
+ stateCatalogId: z.ZodOptional<z.ZodString>;
7333
+ }, z.core.$strict>>>>;
6892
7334
  linkTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6893
7335
  id: z.ZodString;
6894
7336
  label: z.ZodOptional<z.ZodString>;
@@ -6899,7 +7341,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
6899
7341
  to: z.ZodString;
6900
7342
  cardinality: z.ZodOptional<z.ZodString>;
6901
7343
  via: z.ZodOptional<z.ZodString>;
6902
- }, z.core.$loose>>>>;
7344
+ }, z.core.$strict>>>>;
6903
7345
  actionTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6904
7346
  id: z.ZodString;
6905
7347
  label: z.ZodOptional<z.ZodString>;
@@ -6909,7 +7351,11 @@ declare const OrganizationModelSchema: z.ZodObject<{
6909
7351
  actsOn: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
6910
7352
  input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6911
7353
  effects: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
6912
- }, z.core.$loose>>>>;
7354
+ resourceId: z.ZodOptional<z.ZodString>;
7355
+ invocations: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
7356
+ lifecycle: z.ZodOptional<z.ZodString>;
7357
+ legacyActionId: z.ZodOptional<z.ZodString>;
7358
+ }, z.core.$strict>>>>;
6913
7359
  catalogTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6914
7360
  id: z.ZodString;
6915
7361
  label: z.ZodOptional<z.ZodString>;
@@ -6919,7 +7365,10 @@ declare const OrganizationModelSchema: z.ZodObject<{
6919
7365
  kind: z.ZodOptional<z.ZodString>;
6920
7366
  appliesTo: z.ZodOptional<z.ZodString>;
6921
7367
  entries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6922
- }, z.core.$loose>>>>;
7368
+ legacyCatalogKey: z.ZodOptional<z.ZodString>;
7369
+ legacyPipelineKey: z.ZodOptional<z.ZodString>;
7370
+ legacyEntityKey: z.ZodOptional<z.ZodString>;
7371
+ }, z.core.$strict>>>>;
6923
7372
  eventTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6924
7373
  id: z.ZodString;
6925
7374
  label: z.ZodOptional<z.ZodString>;
@@ -6927,7 +7376,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
6927
7376
  ownerSystemId: z.ZodOptional<z.ZodString>;
6928
7377
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
6929
7378
  payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6930
- }, z.core.$loose>>>>;
7379
+ }, z.core.$strict>>>>;
6931
7380
  interfaceTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6932
7381
  id: z.ZodString;
6933
7382
  label: z.ZodOptional<z.ZodString>;
@@ -6935,7 +7384,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
6935
7384
  ownerSystemId: z.ZodOptional<z.ZodString>;
6936
7385
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
6937
7386
  properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6938
- }, z.core.$loose>>>>;
7387
+ }, z.core.$strict>>>>;
6939
7388
  valueTypes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6940
7389
  id: z.ZodString;
6941
7390
  label: z.ZodOptional<z.ZodString>;
@@ -6943,7 +7392,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
6943
7392
  ownerSystemId: z.ZodOptional<z.ZodString>;
6944
7393
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
6945
7394
  primitive: z.ZodOptional<z.ZodString>;
6946
- }, z.core.$loose>>>>;
7395
+ }, z.core.$strict>>>>;
6947
7396
  sharedProperties: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6948
7397
  id: z.ZodString;
6949
7398
  label: z.ZodOptional<z.ZodString>;
@@ -6953,7 +7402,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
6953
7402
  valueType: z.ZodOptional<z.ZodString>;
6954
7403
  searchable: z.ZodOptional<z.ZodBoolean>;
6955
7404
  pii: z.ZodOptional<z.ZodBoolean>;
6956
- }, z.core.$loose>>>>;
7405
+ }, z.core.$strict>>>>;
6957
7406
  groups: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6958
7407
  id: z.ZodString;
6959
7408
  label: z.ZodOptional<z.ZodString>;
@@ -6961,7 +7410,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
6961
7410
  ownerSystemId: z.ZodOptional<z.ZodString>;
6962
7411
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
6963
7412
  members: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
6964
- }, z.core.$loose>>>>;
7413
+ }, z.core.$strict>>>>;
6965
7414
  endpoints: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
6966
7415
  id: z.ZodString;
6967
7416
  label: z.ZodOptional<z.ZodString>;
@@ -6969,7 +7418,7 @@ declare const OrganizationModelSchema: z.ZodObject<{
6969
7418
  ownerSystemId: z.ZodOptional<z.ZodString>;
6970
7419
  aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
6971
7420
  route: z.ZodOptional<z.ZodString>;
6972
- }, z.core.$loose>>>>;
7421
+ }, z.core.$strict>>>>;
6973
7422
  }, z.core.$strict>>>;
6974
7423
  resources: z.ZodDefault<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
6975
7424
  id: z.ZodString;
@@ -7922,6 +8371,50 @@ declare const ListCredentialsResponseSchema: z.ZodObject<{
7922
8371
  /** API response type for a single credential list item */
7923
8372
  type CredentialListItem = z.infer<typeof ListCredentialsResponseSchema>['credentials'][number];
7924
8373
 
8374
+ /**
8375
+ * Storage-neutral file descriptor.
8376
+ *
8377
+ * Dropbox and Google Drive (the foreseeable second provider) both ship
8378
+ * their own file/metadata shapes. Consumers on both sides of the wire —
8379
+ * a UI file browser and the API route that talks to the provider — need
8380
+ * to agree on one normalized shape, which is why it lives here instead
8381
+ * of being duplicated in each consumer.
8382
+ *
8383
+ * Adapters (`createDropboxAdapter`, a future Drive adapter) stay concrete
8384
+ * and keep their own provider-shaped responses. Normalization into this
8385
+ * type happens at the route/hook boundary — a few lines per provider,
8386
+ * not behind a shared `CloudStorageAdapter` interface.
8387
+ */
8388
+ interface CloudStorageFile {
8389
+ id: string;
8390
+ name: string;
8391
+ kind: 'file' | 'folder';
8392
+ path?: string;
8393
+ mimeType?: string;
8394
+ sizeBytes?: number;
8395
+ width?: number;
8396
+ height?: number;
8397
+ /** ISO 8601 timestamp the asset was captured (e.g. photo EXIF date), when the provider exposes one. */
8398
+ capturedAt?: string;
8399
+ /**
8400
+ * Optional on purpose. Dropbox does not produce a thumbnail for HEIC or
8401
+ * for anything over 20 MB — "no thumbnail" is a normal state a consumer
8402
+ * renders a fallback for, not an error.
8403
+ */
8404
+ thumbnailUrl?: string;
8405
+ }
8406
+ /**
8407
+ * Paginated list of storage-neutral file descriptors.
8408
+ *
8409
+ * `nextCursor` deliberately covers both Dropbox's cursor and Google
8410
+ * Drive's `pageToken` — one field, not a provider-specific pagination
8411
+ * field per provider.
8412
+ */
8413
+ interface CloudStorageListResult {
8414
+ files: CloudStorageFile[];
8415
+ nextCursor?: string;
8416
+ }
8417
+
7925
8418
  /**
7926
8419
  * Query key factory for executions TanStack Query hooks.
7927
8420
  * Uses organization UUID (not name) for cache isolation.
@@ -9575,6 +10068,21 @@ declare const contentKeys: {
9575
10068
  }, "limit" | "offset" | "search" | "status" | "pillar" | "clientId" | "pipelineId" | "reviewedBy">>];
9576
10069
  itemDetail: (organizationId: WorkOsOrgId | null | undefined, itemId: string | undefined) => readonly ["content", "items", "detail", WorkOsOrgId | null | undefined, string | undefined];
9577
10070
  itemAttempts: (organizationId: WorkOsOrgId | null | undefined, itemId: string | undefined) => readonly ["content", "items", "attempts", WorkOsOrgId | null | undefined, string | undefined];
10071
+ /**
10072
+ * One item's ordered source-asset membership (`content_item_source_assets`).
10073
+ *
10074
+ * Nested under `items()` on purpose, matching `itemAttempts`: membership is a
10075
+ * property of the item, and every item read that expands `sourceAssets` goes
10076
+ * stale for exactly the same writes. That makes `contentKeys.items()` a
10077
+ * prefix that reaches this key, the item list, and the item detail in one
10078
+ * invalidation -- which is why the membership mutations invalidate both this
10079
+ * key (the direct read) and `items()` (every reader carrying the expansion).
10080
+ *
10081
+ * Distinct from `sourceAssets()` below, which keys the assets themselves.
10082
+ * A membership row carries `sourceAssetId` and no display fields, so the two
10083
+ * caches are never interchangeable.
10084
+ */
10085
+ itemSourceAssets: (organizationId: WorkOsOrgId | null | undefined, itemId: string | undefined) => readonly ["content", "items", "source-assets", WorkOsOrgId | null | undefined, string | undefined];
9578
10086
  distributions: () => readonly ["content", "distributions"];
9579
10087
  distributionsList: (organizationId: WorkOsOrgId | null | undefined, filters: ContentDistributionsListFilters) => readonly ["content", "distributions", "list", WorkOsOrgId | null | undefined, Partial<Pick<{
9580
10088
  limit: number;
@@ -9584,6 +10092,12 @@ declare const contentKeys: {
9584
10092
  status?: string | undefined;
9585
10093
  }, "limit" | "offset" | "platform" | "status" | "contentItemId">>];
9586
10094
  distributionDetail: (organizationId: WorkOsOrgId | null | undefined, distributionId: string | undefined) => readonly ["content", "distributions", "detail", WorkOsOrgId | null | undefined, string | undefined];
10095
+ /**
10096
+ * One distribution's `content_distribution_metrics` capture history, newest first. Nested
10097
+ * under `distributions()` like `distributionDetail`, matching `itemAttempts`' precedent for
10098
+ * a child history table keyed by its parent.
10099
+ */
10100
+ distributionMetrics: (organizationId: WorkOsOrgId | null | undefined, distributionId: string | undefined) => readonly ["content", "distributions", "metrics", WorkOsOrgId | null | undefined, string | undefined];
9587
10101
  sourceAssets: () => readonly ["content", "source-assets"];
9588
10102
  sourceAssetsList: (organizationId: WorkOsOrgId | null | undefined, filters: ContentSourceAssetsListFilters) => readonly ["content", "source-assets", "list", WorkOsOrgId | null | undefined, Partial<{
9589
10103
  kind: string;
@@ -9621,6 +10135,29 @@ declare function useContentItems(filters?: ContentItemsListFilters): _tanstack_r
9621
10135
  updatedBy: string | null;
9622
10136
  createdAt: string;
9623
10137
  updatedAt: string;
10138
+ sourceAssets?: {
10139
+ id: string;
10140
+ organizationId: string;
10141
+ contentItemId: string;
10142
+ sourceAssetId: string;
10143
+ position: number;
10144
+ crop: {
10145
+ x: number;
10146
+ y: number;
10147
+ width: number;
10148
+ height: number;
10149
+ } | null;
10150
+ altText: string | null;
10151
+ derivativePath: string | null;
10152
+ derivativeCrop: {
10153
+ x: number;
10154
+ y: number;
10155
+ width: number;
10156
+ height: number;
10157
+ } | null;
10158
+ derivativeRenderedAt: string | null;
10159
+ createdAt: string;
10160
+ }[] | undefined;
9624
10161
  }[];
9625
10162
  total: number;
9626
10163
  limit: number;
@@ -9654,6 +10191,29 @@ declare function useContentItem(itemId: string | undefined): _tanstack_react_que
9654
10191
  updatedBy: string | null;
9655
10192
  createdAt: string;
9656
10193
  updatedAt: string;
10194
+ sourceAssets?: {
10195
+ id: string;
10196
+ organizationId: string;
10197
+ contentItemId: string;
10198
+ sourceAssetId: string;
10199
+ position: number;
10200
+ crop: {
10201
+ x: number;
10202
+ y: number;
10203
+ width: number;
10204
+ height: number;
10205
+ } | null;
10206
+ altText: string | null;
10207
+ derivativePath: string | null;
10208
+ derivativeCrop: {
10209
+ x: number;
10210
+ y: number;
10211
+ width: number;
10212
+ height: number;
10213
+ } | null;
10214
+ derivativeRenderedAt: string | null;
10215
+ createdAt: string;
10216
+ }[] | undefined;
9657
10217
  }, Error>;
9658
10218
 
9659
10219
  /**
@@ -9695,7 +10255,14 @@ declare function useContentDistributions(filters?: ContentDistributionsListFilte
9695
10255
  adaptedBody: string | null;
9696
10256
  platformContent: unknown;
9697
10257
  checklist: unknown;
9698
- mediaUrls: unknown[];
10258
+ mediaUrls: ({
10259
+ kind: "storage";
10260
+ bucket: string;
10261
+ path: string;
10262
+ } | {
10263
+ kind: "url";
10264
+ url: string;
10265
+ })[];
9699
10266
  processingState: Record<string, {
9700
10267
  [x: string]: unknown;
9701
10268
  status: "error" | "success" | "running" | "no_result" | "skipped";
@@ -9730,7 +10297,14 @@ declare function useContentDistribution(distributionId: string | undefined): _ta
9730
10297
  adaptedBody: string | null;
9731
10298
  platformContent: unknown;
9732
10299
  checklist: unknown;
9733
- mediaUrls: unknown[];
10300
+ mediaUrls: ({
10301
+ kind: "storage";
10302
+ bucket: string;
10303
+ path: string;
10304
+ } | {
10305
+ kind: "url";
10306
+ url: string;
10307
+ })[];
9734
10308
  processingState: Record<string, {
9735
10309
  [x: string]: unknown;
9736
10310
  status: "error" | "success" | "running" | "no_result" | "skipped";
@@ -9749,6 +10323,37 @@ declare function useContentDistribution(distributionId: string | undefined): _ta
9749
10323
  updatedAt: string;
9750
10324
  }, Error>;
9751
10325
 
10326
+ /**
10327
+ * Capture history for one distribution, newest first. Mirrors `useContentDistribution` --
10328
+ * `distributionId` from the path, gated the same way -- and reads
10329
+ * `GET /content/distributions/:distributionId/metrics`, the route this hook exists to consume.
10330
+ */
10331
+ declare function useContentDistributionMetrics(distributionId: string | undefined): _tanstack_react_query.UseQueryResult<{
10332
+ data: {
10333
+ id: string;
10334
+ organizationId: string;
10335
+ distributionId: string;
10336
+ capturedAt: string;
10337
+ source: string;
10338
+ metrics: {
10339
+ views?: number | undefined;
10340
+ reach?: number | undefined;
10341
+ likes?: number | undefined;
10342
+ comments?: number | undefined;
10343
+ shares?: number | undefined;
10344
+ saves?: number | undefined;
10345
+ engagements?: number | undefined;
10346
+ profile_visits?: number | undefined;
10347
+ profile_activity?: number | undefined;
10348
+ follows?: number | undefined;
10349
+ clicks?: number | undefined;
10350
+ };
10351
+ raw: unknown;
10352
+ sourceExecutionId: string | null;
10353
+ createdAt: string;
10354
+ }[];
10355
+ }, Error>;
10356
+
9752
10357
  interface UpdateContentItemParams {
9753
10358
  itemId: string;
9754
10359
  updates: UpdateContentItemRequest;
@@ -9781,8 +10386,101 @@ declare function useUpdateContentItem(): _tanstack_react_query.UseMutationResult
9781
10386
  updatedBy: string | null;
9782
10387
  createdAt: string;
9783
10388
  updatedAt: string;
10389
+ sourceAssets?: {
10390
+ id: string;
10391
+ organizationId: string;
10392
+ contentItemId: string;
10393
+ sourceAssetId: string;
10394
+ position: number;
10395
+ crop: {
10396
+ x: number;
10397
+ y: number;
10398
+ width: number;
10399
+ height: number;
10400
+ } | null;
10401
+ altText: string | null;
10402
+ derivativePath: string | null;
10403
+ derivativeCrop: {
10404
+ x: number;
10405
+ y: number;
10406
+ width: number;
10407
+ height: number;
10408
+ } | null;
10409
+ derivativeRenderedAt: string | null;
10410
+ createdAt: string;
10411
+ }[] | undefined;
9784
10412
  }, Error, UpdateContentItemParams, unknown>;
9785
10413
 
10414
+ /**
10415
+ * POST `/content/distributions` -- open the record of one item going out on one
10416
+ * platform. `organizationId` is never sent; the route takes it from authenticated
10417
+ * context.
10418
+ *
10419
+ * **A `mediaUrls` entry names its own kind** (`ContentMediaEntrySchema`): either a
10420
+ * `storage` object carrying its bucket and path, or an already-fetchable `url`.
10421
+ * Derivatives are the first kind, because they live in a private, RLS-gated bucket --
10422
+ * the only URL that would fetch one is a signed URL that expires, and a stored URL
10423
+ * that expires is a row that is correct when written and silently wrong later. The
10424
+ * path is the durable fact; `useStorageSignedUrls` turns it into a URL at the moment
10425
+ * something renders it. Storing paths is also what makes the distribution an honest
10426
+ * record of which files went out: re-cropping a slide afterwards replaces that
10427
+ * object, but the row still names exactly the slides that were posted.
10428
+ *
10429
+ * The manual-publish path is already designed into the update schema: a row with
10430
+ * `publishedAt` set and no `platformPostId` is a post someone made by hand.
10431
+ */
10432
+ declare function useCreateContentDistribution(): _tanstack_react_query.UseMutationResult<{
10433
+ id: string;
10434
+ organizationId: string;
10435
+ contentItemId: string;
10436
+ platform: string;
10437
+ format: string;
10438
+ status: string;
10439
+ adaptedBody: string | null;
10440
+ platformContent: unknown;
10441
+ checklist: unknown;
10442
+ mediaUrls: ({
10443
+ kind: "storage";
10444
+ bucket: string;
10445
+ path: string;
10446
+ } | {
10447
+ kind: "url";
10448
+ url: string;
10449
+ })[];
10450
+ processingState: Record<string, {
10451
+ [x: string]: unknown;
10452
+ status: "error" | "success" | "running" | "no_result" | "skipped";
10453
+ attemptId: string;
10454
+ executionId: string | null;
10455
+ attemptedAt: string;
10456
+ data?: unknown;
10457
+ }>;
10458
+ publishMethod: string | null;
10459
+ publishedAt: string | null;
10460
+ platformPostId: string | null;
10461
+ platformUrl: string | null;
10462
+ metrics: unknown;
10463
+ metricsUpdatedAt: string | null;
10464
+ createdAt: string;
10465
+ updatedAt: string;
10466
+ }, Error, {
10467
+ contentItemId: string;
10468
+ platform: string;
10469
+ format: string;
10470
+ status?: string | undefined;
10471
+ adaptedBody?: string | null | undefined;
10472
+ platformContent?: unknown;
10473
+ checklist?: unknown;
10474
+ mediaUrls?: ({
10475
+ kind: "storage";
10476
+ bucket: string;
10477
+ path: string;
10478
+ } | {
10479
+ kind: "url";
10480
+ url: string;
10481
+ })[] | undefined;
10482
+ }, unknown>;
10483
+
9786
10484
  interface UpdateContentDistributionParams {
9787
10485
  distributionId: string;
9788
10486
  updates: UpdateContentDistributionRequest;
@@ -9805,7 +10503,14 @@ declare function useUpdateContentDistribution(): _tanstack_react_query.UseMutati
9805
10503
  adaptedBody: string | null;
9806
10504
  platformContent: unknown;
9807
10505
  checklist: unknown;
9808
- mediaUrls: unknown[];
10506
+ mediaUrls: ({
10507
+ kind: "storage";
10508
+ bucket: string;
10509
+ path: string;
10510
+ } | {
10511
+ kind: "url";
10512
+ url: string;
10513
+ })[];
9809
10514
  processingState: Record<string, {
9810
10515
  [x: string]: unknown;
9811
10516
  status: "error" | "success" | "running" | "no_result" | "skipped";
@@ -9859,6 +10564,29 @@ declare function useReviewContentItem(): _tanstack_react_query.UseMutationResult
9859
10564
  updatedBy: string | null;
9860
10565
  createdAt: string;
9861
10566
  updatedAt: string;
10567
+ sourceAssets?: {
10568
+ id: string;
10569
+ organizationId: string;
10570
+ contentItemId: string;
10571
+ sourceAssetId: string;
10572
+ position: number;
10573
+ crop: {
10574
+ x: number;
10575
+ y: number;
10576
+ width: number;
10577
+ height: number;
10578
+ } | null;
10579
+ altText: string | null;
10580
+ derivativePath: string | null;
10581
+ derivativeCrop: {
10582
+ x: number;
10583
+ y: number;
10584
+ width: number;
10585
+ height: number;
10586
+ } | null;
10587
+ derivativeRenderedAt: string | null;
10588
+ createdAt: string;
10589
+ }[] | undefined;
9862
10590
  }, Error, ReviewContentItemParams, unknown>;
9863
10591
 
9864
10592
  /**
@@ -9899,6 +10627,89 @@ declare function useContentSourceAsset(sourceAssetId: string | undefined): _tans
9899
10627
  updatedAt: string;
9900
10628
  }, Error>;
9901
10629
 
10630
+ /**
10631
+ * POST `/content/items` -- creates one content item. `organizationId` is never
10632
+ * sent; it is injected server-side from the authenticated context.
10633
+ *
10634
+ * `sourceAssets` carries the ordered membership a carousel is created with, in
10635
+ * the same request (Open Decision 11). That write is NOT atomic -- `apps/api`
10636
+ * does a bulk insert plus a compensating delete, because `@supabase/supabase-js`
10637
+ * has no transaction primitive -- so a mid-write failure yields an item with no
10638
+ * memberships rather than a half-built carousel. Callers that must know either
10639
+ * way should re-read the item, not assume the array they sent.
10640
+ */
10641
+ declare function useCreateContentItem(): _tanstack_react_query.UseMutationResult<{
10642
+ id: string;
10643
+ organizationId: string;
10644
+ title: string;
10645
+ body: string | null;
10646
+ payload: unknown;
10647
+ status: string;
10648
+ pillar: string | null;
10649
+ pipelineId: string | null;
10650
+ clientId: string | null;
10651
+ sourceAssetId: string | null;
10652
+ processingState: Record<string, {
10653
+ [x: string]: unknown;
10654
+ status: "error" | "success" | "running" | "no_result" | "skipped";
10655
+ attemptId: string;
10656
+ executionId: string | null;
10657
+ attemptedAt: string;
10658
+ data?: unknown;
10659
+ }>;
10660
+ reviewedAt: string | null;
10661
+ reviewedBy: string | null;
10662
+ reviewerFeedback: string | null;
10663
+ rejectReason: string | null;
10664
+ createdBy: string | null;
10665
+ updatedBy: string | null;
10666
+ createdAt: string;
10667
+ updatedAt: string;
10668
+ sourceAssets?: {
10669
+ id: string;
10670
+ organizationId: string;
10671
+ contentItemId: string;
10672
+ sourceAssetId: string;
10673
+ position: number;
10674
+ crop: {
10675
+ x: number;
10676
+ y: number;
10677
+ width: number;
10678
+ height: number;
10679
+ } | null;
10680
+ altText: string | null;
10681
+ derivativePath: string | null;
10682
+ derivativeCrop: {
10683
+ x: number;
10684
+ y: number;
10685
+ width: number;
10686
+ height: number;
10687
+ } | null;
10688
+ derivativeRenderedAt: string | null;
10689
+ createdAt: string;
10690
+ }[] | undefined;
10691
+ }, Error, {
10692
+ title: string;
10693
+ body?: string | null | undefined;
10694
+ payload?: Record<string, unknown> | undefined;
10695
+ status?: string | undefined;
10696
+ pillar?: string | null | undefined;
10697
+ pipelineId?: string | null | undefined;
10698
+ clientId?: string | null | undefined;
10699
+ sourceAssetId?: string | null | undefined;
10700
+ sourceAssets?: {
10701
+ sourceAssetId: string;
10702
+ position: number;
10703
+ crop?: {
10704
+ x: number;
10705
+ y: number;
10706
+ width: number;
10707
+ height: number;
10708
+ } | null | undefined;
10709
+ altText?: string | null | undefined;
10710
+ }[] | undefined;
10711
+ }, unknown>;
10712
+
9902
10713
  /**
9903
10714
  * POST `/content/source-assets` -- `kind` and `title` are the only required fields;
9904
10715
  * `organizationId` is never sent, it is injected server-side from the authenticated
@@ -9961,6 +10772,302 @@ declare function useUpdateContentSourceAsset(): _tanstack_react_query.UseMutatio
9961
10772
  updatedAt: string;
9962
10773
  }, Error, UpdateContentSourceAssetParams, unknown>;
9963
10774
 
10775
+ /**
10776
+ * GET `/content/items/:itemId/source-assets` -- one item's ordered source-asset
10777
+ * membership, ascending by `position`. `position` 0 is the cover.
10778
+ *
10779
+ * The membership row does NOT embed the `content_source_assets` row it points at:
10780
+ * it carries `sourceAssetId` and no title, URL, or dimensions. A caller that needs
10781
+ * display fields resolves them through `useContentSourceAsset` /
10782
+ * `useContentSourceAssets`, or uses `useContentItemSourceAssetDetails`, which does
10783
+ * that join and shares the same per-asset cache entries.
10784
+ *
10785
+ * Read-open, like every other content GET -- only the writes sit behind
10786
+ * `content.manage`.
10787
+ */
10788
+ declare function useContentItemSourceAssets(itemId: string | undefined): _tanstack_react_query.UseQueryResult<{
10789
+ data: {
10790
+ id: string;
10791
+ organizationId: string;
10792
+ contentItemId: string;
10793
+ sourceAssetId: string;
10794
+ position: number;
10795
+ crop: {
10796
+ x: number;
10797
+ y: number;
10798
+ width: number;
10799
+ height: number;
10800
+ } | null;
10801
+ altText: string | null;
10802
+ derivativePath: string | null;
10803
+ derivativeCrop: {
10804
+ x: number;
10805
+ y: number;
10806
+ width: number;
10807
+ height: number;
10808
+ } | null;
10809
+ derivativeRenderedAt: string | null;
10810
+ createdAt: string;
10811
+ }[];
10812
+ }, Error>;
10813
+ /**
10814
+ * The two states `ContentItemResponse.sourceAssets` can be in, made explicit so a
10815
+ * renderer cannot lose the difference.
10816
+ *
10817
+ * `expanded: false` means the reader did not expand membership -- say nothing about
10818
+ * the asset list and fetch it with `useContentItemSourceAssets` if it is needed.
10819
+ * `expanded: true` with an empty array means the item genuinely has no source assets.
10820
+ *
10821
+ * Defaulting the absent case to `[]` erases that distinction and renders "no photos"
10822
+ * over an item that may well have twenty.
10823
+ */
10824
+ type ContentItemSourceAssetExpansion = {
10825
+ expanded: false;
10826
+ sourceAssets: undefined;
10827
+ } | {
10828
+ expanded: true;
10829
+ sourceAssets: ContentItemSourceAssetResponse[];
10830
+ };
10831
+ /**
10832
+ * Narrows `ContentItemResponse.sourceAssets` into `ContentItemSourceAssetExpansion`.
10833
+ *
10834
+ * Which reads expand, as of the routes landed 2026-08-17: single-item reads
10835
+ * (`getItem`, `updateItem`, `reviewItem`) always expand, and the session
10836
+ * `GET /content/items` list route expands too. Only the unbounded analytics readers
10837
+ * leave it absent, so `expanded: false` is a real state a shared component can be
10838
+ * handed -- it is not dead code.
10839
+ *
10840
+ * A `null` or `undefined` item is `expanded: false`: nothing has been read yet, which
10841
+ * is the same "say nothing" case.
10842
+ */
10843
+ declare function readItemSourceAssets(item: Pick<ContentItemResponse, 'sourceAssets'> | null | undefined): ContentItemSourceAssetExpansion;
10844
+ /**
10845
+ * The cover membership -- the lowest `position` in the set, or `undefined` for an
10846
+ * empty set.
10847
+ *
10848
+ * `position` 0 is the cover by contract, and a reorder always writes contiguous
10849
+ * indices from 0. But the column only requires uniqueness within an item, not
10850
+ * contiguity and not a zero, so an item assembled by individual `addItemSourceAsset`
10851
+ * calls can legally have no `position` 0 at all. Taking the minimum agrees with the
10852
+ * contract whenever 0 is present and still yields a cover when it is not; a literal
10853
+ * `position === 0` lookup would silently return nothing.
10854
+ *
10855
+ * This adds no contiguity rule -- it never renumbers, and gaps stay legal.
10856
+ */
10857
+ declare function pickCoverSourceAsset(memberships: readonly ContentItemSourceAssetResponse[] | undefined): ContentItemSourceAssetResponse | undefined;
10858
+
10859
+ /**
10860
+ * One membership paired with the source-asset row it points at.
10861
+ *
10862
+ * `asset` is `undefined` while its own query is still in flight or has failed --
10863
+ * never a fabricated placeholder. A renderer shows the membership (position, crop,
10864
+ * alt text) immediately and fills in the title/URL when it lands.
10865
+ */
10866
+ interface ContentItemSourceAssetDetail {
10867
+ membership: ContentItemSourceAssetResponse;
10868
+ asset: ContentSourceAssetResponse | undefined;
10869
+ }
10870
+ interface ContentItemSourceAssetDetailsResult {
10871
+ /** Ascending by `position`, exactly the order the membership route returned. */
10872
+ memberships: ContentItemSourceAssetDetail[];
10873
+ /** True while the membership list or any asset lookup is still loading. */
10874
+ isLoading: boolean;
10875
+ /** True once the membership list has loaded, whatever the asset lookups did. */
10876
+ isMembershipLoaded: boolean;
10877
+ }
10878
+ /**
10879
+ * Pairs memberships with resolved assets, positionally by `sourceAssetId`.
10880
+ * Exported standalone so the join is testable without a QueryClient.
10881
+ */
10882
+ declare function joinSourceAssetDetails(memberships: readonly ContentItemSourceAssetResponse[], assets: readonly (ContentSourceAssetResponse | undefined)[]): ContentItemSourceAssetDetail[];
10883
+ /**
10884
+ * The membership list plus the display fields it deliberately does not carry.
10885
+ *
10886
+ * `content_item_source_assets` rows hold `sourceAssetId`, `position`, `crop`, and
10887
+ * `altText` and nothing else -- no title, no URL, no dimensions -- because embedding
10888
+ * the asset would double the payload of every item list read. Resolving those fields
10889
+ * is therefore a second query, and this hook is that second query so each carousel
10890
+ * surface does not rebuild it.
10891
+ *
10892
+ * One `GET /content/source-assets/:id` per membership, each on the SAME
10893
+ * `contentKeys.sourceAssetDetail` key `useContentSourceAsset` uses. Two consequences
10894
+ * worth relying on: an asset shared by several items is fetched once, and
10895
+ * `useUpdateContentSourceAsset`'s existing invalidation already refreshes what this
10896
+ * hook renders. Per-asset rather than one list read because the list route filters
10897
+ * only by `kind`/`limit`/`offset` -- it has no id filter, so a list call would
10898
+ * over-fetch and still risk missing an asset past the page boundary.
10899
+ *
10900
+ * The transport caps membership at 50 per item, so this is a bounded fan-out.
10901
+ */
10902
+ declare function useContentItemSourceAssetDetails(itemId: string | undefined): ContentItemSourceAssetDetailsResult;
10903
+
10904
+ interface AddContentItemSourceAssetParams {
10905
+ itemId: string;
10906
+ membership: ContentItemSourceAssetInput;
10907
+ }
10908
+ /**
10909
+ * POST `/content/items/:itemId/source-assets` (201) -- links one source asset into an
10910
+ * item at a `position`.
10911
+ *
10912
+ * `position` 0 is the cover. Positions must be unique within the item but need not be
10913
+ * contiguous, so there is deliberately no client-side renumbering here: use
10914
+ * `useReorderContentItemSourceAssets` when the whole order changes.
10915
+ *
10916
+ * `crop` is normalized fractions of the source (`x`, `y`, `width`, `height`, each
10917
+ * 0-1, with `x + width <= 1` and `y + height <= 1`), never pixels -- one crop then
10918
+ * survives a resized derivative. `organizationId` is never sent; it comes from the
10919
+ * authenticated context server-side, and composite foreign keys make a cross-org link
10920
+ * impossible at the database level.
10921
+ *
10922
+ * Behind `content.manage`.
10923
+ */
10924
+ declare function useAddContentItemSourceAsset(): _tanstack_react_query.UseMutationResult<{
10925
+ id: string;
10926
+ organizationId: string;
10927
+ contentItemId: string;
10928
+ sourceAssetId: string;
10929
+ position: number;
10930
+ crop: {
10931
+ x: number;
10932
+ y: number;
10933
+ width: number;
10934
+ height: number;
10935
+ } | null;
10936
+ altText: string | null;
10937
+ derivativePath: string | null;
10938
+ derivativeCrop: {
10939
+ x: number;
10940
+ y: number;
10941
+ width: number;
10942
+ height: number;
10943
+ } | null;
10944
+ derivativeRenderedAt: string | null;
10945
+ createdAt: string;
10946
+ }, Error, AddContentItemSourceAssetParams, unknown>;
10947
+
10948
+ interface RemoveContentItemSourceAssetParams {
10949
+ itemId: string;
10950
+ sourceAssetId: string;
10951
+ }
10952
+ /**
10953
+ * DELETE `/content/items/:itemId/source-assets/:sourceAssetId` (204, no body) --
10954
+ * unlinks one source asset from one item.
10955
+ *
10956
+ * Unlinks the membership only: the `content_source_assets` row survives and stays
10957
+ * usable by other items, so the source-asset caches are untouched.
10958
+ *
10959
+ * The remaining memberships keep their positions -- removing the middle of a set
10960
+ * leaves a gap, which is legal (`position` is unique per item, not contiguous).
10961
+ * Follow with `useReorderContentItemSourceAssets` only if the caller actually wants
10962
+ * renumbering.
10963
+ *
10964
+ * Behind `content.manage`.
10965
+ */
10966
+ declare function useRemoveContentItemSourceAsset(): _tanstack_react_query.UseMutationResult<void, Error, RemoveContentItemSourceAssetParams, unknown>;
10967
+
10968
+ interface ReorderContentItemSourceAssetsParams {
10969
+ itemId: string;
10970
+ /**
10971
+ * The item's COMPLETE membership set in its new order -- index becomes `position`,
10972
+ * so index 0 is the new cover.
10973
+ */
10974
+ orderedAssetIds: string[];
10975
+ }
10976
+ /**
10977
+ * POST `/content/items/:itemId/source-assets/reorder` -- rewrites the whole slide
10978
+ * order in one transaction.
10979
+ *
10980
+ * Wholesale rather than per-row: `UNIQUE (content_item_id, position)` is DEFERRABLE
10981
+ * INITIALLY DEFERRED, so the server issues plain per-row updates inside one
10982
+ * transaction and the constraint is checked at COMMIT. There is no per-membership
10983
+ * position write, and none is wanted -- moving one slide is a reorder of the set.
10984
+ *
10985
+ * The server rejects a list that does not name EXACTLY the item's current membership,
10986
+ * and its message names both directions (`missing:` for memberships the list omits,
10987
+ * `not linked to this item:` for ids that are not members). That message is surfaced
10988
+ * through `showApiErrorNotification` rather than replaced with a generic one -- it is
10989
+ * the only thing that tells an operator which side of the mismatch to fix. A caller
10990
+ * that wants it inline reads `mutation.error` too.
10991
+ *
10992
+ * Deliberately no client-side pre-check of the id set against a cached membership
10993
+ * list: the cache can be stale, and a stale-cache false negative would block a
10994
+ * legitimate reorder the server would have accepted.
10995
+ *
10996
+ * Behind `content.manage`. Returns the reordered set, ascending by `position`.
10997
+ */
10998
+ declare function useReorderContentItemSourceAssets(): _tanstack_react_query.UseMutationResult<{
10999
+ data: {
11000
+ id: string;
11001
+ organizationId: string;
11002
+ contentItemId: string;
11003
+ sourceAssetId: string;
11004
+ position: number;
11005
+ crop: {
11006
+ x: number;
11007
+ y: number;
11008
+ width: number;
11009
+ height: number;
11010
+ } | null;
11011
+ altText: string | null;
11012
+ derivativePath: string | null;
11013
+ derivativeCrop: {
11014
+ x: number;
11015
+ y: number;
11016
+ width: number;
11017
+ height: number;
11018
+ } | null;
11019
+ derivativeRenderedAt: string | null;
11020
+ createdAt: string;
11021
+ }[];
11022
+ }, Error, ReorderContentItemSourceAssetsParams, unknown>;
11023
+
11024
+ interface UpdateContentItemSourceAssetParams {
11025
+ itemId: string;
11026
+ sourceAssetId: string;
11027
+ updates: UpdateContentItemSourceAssetRequest;
11028
+ }
11029
+ /**
11030
+ * PATCH `/content/items/:itemId/source-assets/:sourceAssetId` -- patches ONE
11031
+ * membership's per-slide attributes: `crop` and `altText`. At least one must be
11032
+ * present.
11033
+ *
11034
+ * Both are per-membership, not per-asset: the same photo is cropped 4:5 in one
11035
+ * carousel and square in another, so this never touches the
11036
+ * `content_source_assets` row and never invalidates the source-asset caches.
11037
+ *
11038
+ * `position` is deliberately not patchable here -- use
11039
+ * `useReorderContentItemSourceAssets`. `sourceAssetId` is immutable; swapping the
11040
+ * asset is a remove plus an add.
11041
+ *
11042
+ * `crop` is normalized fractions of the source (0-1), not pixels, and `null` clears
11043
+ * it. `altText` is likewise nullable to clear.
11044
+ *
11045
+ * Behind `content.manage`.
11046
+ */
11047
+ declare function useUpdateContentItemSourceAsset(): _tanstack_react_query.UseMutationResult<{
11048
+ id: string;
11049
+ organizationId: string;
11050
+ contentItemId: string;
11051
+ sourceAssetId: string;
11052
+ position: number;
11053
+ crop: {
11054
+ x: number;
11055
+ y: number;
11056
+ width: number;
11057
+ height: number;
11058
+ } | null;
11059
+ altText: string | null;
11060
+ derivativePath: string | null;
11061
+ derivativeCrop: {
11062
+ x: number;
11063
+ y: number;
11064
+ width: number;
11065
+ height: number;
11066
+ } | null;
11067
+ derivativeRenderedAt: string | null;
11068
+ createdAt: string;
11069
+ }, Error, UpdateContentItemSourceAssetParams, unknown>;
11070
+
9964
11071
  interface ContentPipelineSummary {
9965
11072
  /** Item count per declared status key. */
9966
11073
  countsByStatus: Record<string, number>;
@@ -9995,6 +11102,291 @@ declare function pickLatestRunAt(latestExecutions: (APIExecutionSummary | undefi
9995
11102
  */
9996
11103
  declare function useContentPipelineSummary(pipelineId: string | undefined, statusKeys: string[], stepResourceIds: string[]): ContentPipelineSummary;
9997
11104
 
11105
+ /**
11106
+ * Filters that identify one folder listing. `credentialName` selects which connected
11107
+ * cloud-storage credential to read from (resolved org-scoped server-side); `cursor`
11108
+ * threads a previous page's `CloudStorageListResult.nextCursor` back in for the next
11109
+ * page, so it is part of the key -- a different cursor is a different page, not a
11110
+ * refetch of the same one.
11111
+ */
11112
+ interface CloudStorageFolderFilters {
11113
+ credentialName: string;
11114
+ folderPath?: string;
11115
+ cursor?: string;
11116
+ }
11117
+ declare const cloudStorageKeys: {
11118
+ all: readonly ["cloud-storage"];
11119
+ folders: () => readonly ["cloud-storage", "folders"];
11120
+ folder: (organizationId: WorkOsOrgId | null | undefined, filters: CloudStorageFolderFilters) => readonly ["cloud-storage", "folders", WorkOsOrgId | null | undefined, CloudStorageFolderFilters];
11121
+ thumbnails: () => readonly ["cloud-storage", "thumbnails"];
11122
+ /**
11123
+ * One key per resolved batch (at most `THUMBNAIL_BATCH_SIZE` ids) -- `useQueries`
11124
+ * issues one query per batch, so the batch's own id list is part of its key.
11125
+ */
11126
+ thumbnailBatch: (organizationId: WorkOsOrgId | null | undefined, credentialName: string, batchFileIds: string[]) => readonly ["cloud-storage", "thumbnails", WorkOsOrgId | null | undefined, string, string[]];
11127
+ temporaryLinks: () => readonly ["cloud-storage", "temporary-links"];
11128
+ /**
11129
+ * Keyed per file. Shared by every consumer that needs the original's bytes --
11130
+ * measuring, cropping, and previewing all read this one key, so a selected
11131
+ * image resolves one link and downloads once rather than three times.
11132
+ */
11133
+ temporaryLinkFor: (organizationId: WorkOsOrgId | null | undefined, credentialName: string, fileId: string) => readonly ["cloud-storage", "temporary-links", WorkOsOrgId | null | undefined, string, string];
11134
+ imageDimensions: () => readonly ["cloud-storage", "image-dimensions"];
11135
+ /**
11136
+ * Keyed per file rather than per set -- dimensions are measured one file at a time
11137
+ * and a measured file stays measured no matter what else is selected alongside it.
11138
+ */
11139
+ imageDimensionsFor: (organizationId: WorkOsOrgId | null | undefined, credentialName: string, fileId: string) => readonly ["cloud-storage", "image-dimensions", WorkOsOrgId | null | undefined, string, string];
11140
+ };
11141
+
11142
+ type CloudStorageFolderParams = CloudStorageFolderFilters;
11143
+ /**
11144
+ * `CloudStorageListResult` plus the `connected` flag the route surfaces when the named
11145
+ * credential does not exist for this org yet. Matches the google-calendar
11146
+ * `{ connected: false, events: [] }`-with-HTTP-200 convention
11147
+ * (`apps/api/src/integrations/google-calendar/handlers.ts`) -- "not connected" is a
11148
+ * normal query result the caller renders a connect-prompt for, never a thrown error.
11149
+ */
11150
+ interface CloudStorageFolderResponse extends CloudStorageListResult {
11151
+ connected: boolean;
11152
+ }
11153
+ /**
11154
+ * GET `/integrations/dropbox/files` -- lists one folder's contents, normalized to
11155
+ * `CloudStorageFile` at the route boundary (never a Dropbox-shaped payload here).
11156
+ *
11157
+ * `cursor` threads a previous page's `nextCursor` back in; pass the response's
11158
+ * `nextCursor` on the next call to page forward. `nextCursor` is `undefined` on the
11159
+ * last page.
11160
+ */
11161
+ declare function useCloudStorageFolder(params: CloudStorageFolderParams): _tanstack_react_query.UseQueryResult<CloudStorageFolderResponse, Error>;
11162
+
11163
+ /**
11164
+ * Dropbox's thumbnail batch endpoint caps a single request at 25 files, and the core
11165
+ * adapter enforces that cap with a thrown error rather than paging internally --
11166
+ * paging lives here instead.
11167
+ */
11168
+ declare const THUMBNAIL_BATCH_SIZE = 25;
11169
+ /**
11170
+ * Splits `items` into fixed-size batches of at most `size`, preserving order.
11171
+ * Exported standalone so the 25-file cap is testable without a QueryClient.
11172
+ */
11173
+ declare function chunkIntoBatches<T>(items: T[], size: number): T[][];
11174
+ /**
11175
+ * One entry per requested file id. `null` means the file exists but Dropbox produced
11176
+ * no thumbnail for it -- HEIC/unsupported formats, or an original over 20MB -- which
11177
+ * is a normal value the card renders a fallback from, never an error. A key absent
11178
+ * from the map means its batch has not resolved yet.
11179
+ */
11180
+ type CloudStorageThumbnailMap = Record<string, string | null>;
11181
+ interface CloudStorageThumbnailBatchResponse {
11182
+ connected: boolean;
11183
+ thumbnails: CloudStorageThumbnailMap;
11184
+ }
11185
+ /**
11186
+ * Merges one `{connected, thumbnails}` response per resolved batch into a single map.
11187
+ * `connected` is true as soon as any batch reports connected -- one credential backs
11188
+ * every batch, so a mixed result should not occur, but this stays conservative rather
11189
+ * than assuming `true` before any batch has resolved.
11190
+ * Exported standalone so batch-merge behavior is testable without a QueryClient.
11191
+ */
11192
+ declare function mergeThumbnailBatches(batches: (CloudStorageThumbnailBatchResponse | undefined)[]): {
11193
+ thumbnails: CloudStorageThumbnailMap;
11194
+ connected: boolean;
11195
+ };
11196
+ interface CloudStorageThumbnailsResult {
11197
+ /** fileId -> thumbnail URL, or `null` when Dropbox produced no thumbnail for that file. */
11198
+ thumbnails: CloudStorageThumbnailMap;
11199
+ connected: boolean;
11200
+ isLoading: boolean;
11201
+ }
11202
+ /**
11203
+ * GET `/integrations/dropbox/thumbnails` -- resolves thumbnail URLs for a set of
11204
+ * `CloudStorageFile` ids, chunked into batches of at most `THUMBNAIL_BATCH_SIZE`
11205
+ * (Dropbox's server-side cap). Each batch is its own TanStack Query so batches
11206
+ * resolve and cache independently -- a slow batch does not block the rest.
11207
+ */
11208
+ declare function useCloudStorageThumbnails(credentialName: string, fileIds: string[]): CloudStorageThumbnailsResult;
11209
+
11210
+ /**
11211
+ * Pixel dimensions of one original, or `null` when they could not be read.
11212
+ *
11213
+ * `null` is a normal value, not an error: the file may not be an image, the
11214
+ * temporary link may have failed, or the browser may have declined to decode it.
11215
+ * Callers should treat an absent measurement as "unknown", never as "too small".
11216
+ */
11217
+ type CloudStorageDimensions = {
11218
+ width: number;
11219
+ height: number;
11220
+ } | null;
11221
+ /** One entry per requested file id. A key absent from the map has not resolved yet. */
11222
+ type CloudStorageDimensionMap = Record<string, CloudStorageDimensions>;
11223
+ /**
11224
+ * Decode an image far enough to read its intrinsic size, then discard it.
11225
+ *
11226
+ * The browser is the only source that answers for **every** format. Dropbox's
11227
+ * `include_media_info` populates `dimensions` for JPEG and returns no `media_info`
11228
+ * at all for PNG and GIF, so asking the provider would silently cover some images
11229
+ * and skip others -- confirmed against a real account on 2026-08-18, where a JPEG
11230
+ * reported 352x400 and a PNG reported nothing.
11231
+ *
11232
+ * Resolves `null` rather than rejecting: a failed measurement means the caller
11233
+ * knows nothing about the size, which is exactly what an unmeasured file means.
11234
+ * Exported standalone so the decode path is testable without a QueryClient.
11235
+ */
11236
+ declare function measureImageDimensions(url: string): Promise<CloudStorageDimensions>;
11237
+ interface CloudStorageImageDimensionsResult {
11238
+ /** fileId -> measured dimensions, or `null` when they could not be read. */
11239
+ dimensions: CloudStorageDimensionMap;
11240
+ isLoading: boolean;
11241
+ }
11242
+ /**
11243
+ * Resolve a temporary link per file and measure the original's dimensions from it.
11244
+ *
11245
+ * **Call this with the files a person actually chose, not a whole folder listing.**
11246
+ * Each id costs one `/temporary-link` round trip plus a full-size image download, so
11247
+ * running it over a browse grid would fetch every original to render a label. Doing
11248
+ * it on selection puts the cost where the value is, and it is the same load a crop
11249
+ * step performs anyway.
11250
+ *
11251
+ * One TanStack Query per file, so each resolves and caches on its own -- a slow or
11252
+ * failing file does not hold up the rest.
11253
+ */
11254
+ declare function useCloudStorageImageDimensions(credentialName: string, fileIds: string[]): CloudStorageImageDimensionsResult;
11255
+
11256
+ /** One file's full-resolution URL, or `null` when the provider would not issue one. */
11257
+ type CloudStorageTemporaryLink = string | null;
11258
+ /** One entry per requested file id. A key absent from the map has not resolved yet. */
11259
+ type CloudStorageTemporaryLinkMap = Record<string, CloudStorageTemporaryLink>;
11260
+ /**
11261
+ * How long a resolved link is treated as fresh. Dropbox's own links last four
11262
+ * hours and return 410 Gone after that, so this is deliberately shorter -- a
11263
+ * link that expires while a crop editor still holds it produces a broken image
11264
+ * with no way to tell it apart from a bad file.
11265
+ */
11266
+ declare const TEMPORARY_LINK_STALE_MS: number;
11267
+ interface CloudStorageTemporaryLinksResult {
11268
+ /** fileId -> full-resolution URL, or `null` when none could be issued. */
11269
+ links: CloudStorageTemporaryLinkMap;
11270
+ isLoading: boolean;
11271
+ }
11272
+ /**
11273
+ * Resolve a short-lived, publicly-fetchable URL for each requested file.
11274
+ *
11275
+ * This is the full original, not a thumbnail -- it is what a crop editor and a
11276
+ * post preview have to render, because a crop expressed as fractions of the
11277
+ * source is meaningless against a downsampled copy.
11278
+ *
11279
+ * **Call it with the files a person actually chose.** Every id is one round
11280
+ * trip, and every URL a consumer renders is a full-size download. Running it
11281
+ * over a browse grid would fetch every original in the folder.
11282
+ *
11283
+ * One TanStack Query per file, so each resolves and caches on its own and a
11284
+ * failing file does not hold up the rest. The key is shared with
11285
+ * `useCloudStorageImageDimensions`, which measures from this same link rather
11286
+ * than resolving a second one -- that is what keeps a selected image to a
11287
+ * single download across measuring, cropping, and previewing.
11288
+ */
11289
+ declare function useCloudStorageTemporaryLinks(credentialName: string, fileIds: string[]): CloudStorageTemporaryLinksResult;
11290
+
11291
+ declare const storageKeys: {
11292
+ all: readonly ["storage"];
11293
+ signedUrls: () => readonly ["storage", "signed-urls"];
11294
+ /**
11295
+ * Keyed per object rather than per set, so a path already signed stays signed no
11296
+ * matter what else is requested alongside it -- the same reason
11297
+ * `cloudStorageKeys.temporaryLinkFor` is per file.
11298
+ */
11299
+ signedUrlFor: (organizationId: WorkOsOrgId | null | undefined, bucket: string, path: string) => readonly ["storage", "signed-urls", WorkOsOrgId | null | undefined, string, string];
11300
+ };
11301
+
11302
+ /** What the caller supplies. `organizationId` is never sent -- the route reads it from authenticated context. */
11303
+ interface UploadStorageFileParams {
11304
+ /** Bucket id, e.g. `content-derivatives`. */
11305
+ bucket: string;
11306
+ /**
11307
+ * Object key WITHOUT the `{organizationId}/` prefix. `StorageService.buildPath`
11308
+ * prepends it server-side, and the `storage.objects` policies read the org back
11309
+ * out of that prefix -- so a caller that adds one itself writes to a path no
11310
+ * policy will match.
11311
+ */
11312
+ path: string;
11313
+ /** The bytes to store. */
11314
+ file: Blob;
11315
+ /** Content type recorded on the object. Defaults to the blob's own `type`. */
11316
+ contentType?: string;
11317
+ /** Replace an object already at `path`. Default false, which makes a re-upload fail. */
11318
+ upsert?: boolean;
11319
+ }
11320
+ interface UploadStorageFileResult {
11321
+ success: boolean;
11322
+ /** The key as supplied, without the org prefix. This is what a row stores. */
11323
+ path: string;
11324
+ /** The key the object actually lives at, org prefix included. Diagnostic -- do not store it. */
11325
+ fullPath: string;
11326
+ size?: number;
11327
+ }
11328
+ /**
11329
+ * POST `/storage/upload` -- store a file in a Supabase bucket through the API.
11330
+ *
11331
+ * The transport is base64 in a JSON body, which inflates the payload by about a
11332
+ * third. That is acceptable for what this is used for -- a cropped, downsized
11333
+ * derivative of roughly 100 KB -- and it is not a free choice: `@fastify/multipart`
11334
+ * is registered only inside the deployments plugin scope, so the storage routes
11335
+ * cannot take a multipart body without widening that registration.
11336
+ *
11337
+ * Nothing is invalidated on success. Storage objects are not a query cache in this
11338
+ * package; what a caller usually needs to invalidate afterwards is the ROW that
11339
+ * now points at the object, which belongs to that row's own hook.
11340
+ *
11341
+ * The route runs on `request.userClient`, so `storage.objects` RLS applies -- an
11342
+ * upload into a bucket the member lacks the permission for fails at the database,
11343
+ * not at a check in this hook.
11344
+ */
11345
+ declare function useUploadStorageFile(): _tanstack_react_query.UseMutationResult<UploadStorageFileResult, Error, UploadStorageFileParams, unknown>;
11346
+
11347
+ /** One object in a bucket. Callers hold these; they do not hold URLs. */
11348
+ interface StorageObjectRef {
11349
+ bucket: string;
11350
+ path: string;
11351
+ }
11352
+ /**
11353
+ * How a ref indexes into the returned map. Bucket and path together, because the
11354
+ * same path can exist in two buckets and a path-only key would collide.
11355
+ */
11356
+ declare function storageObjectRefKey(ref: StorageObjectRef): string;
11357
+ /** One entry per requested ref, keyed by `storageObjectRefKey`. Absent = not resolved yet. */
11358
+ type StorageSignedUrlMap = Record<string, string>;
11359
+ interface StorageSignedUrlsResult {
11360
+ /** ref key -> a URL that fetches the object, valid for `SIGNED_URL_EXPIRES_IN_SECONDS`. */
11361
+ urls: StorageSignedUrlMap;
11362
+ isLoading: boolean;
11363
+ }
11364
+ /** How long a minted URL is valid for. */
11365
+ declare const SIGNED_URL_EXPIRES_IN_SECONDS: number;
11366
+ /**
11367
+ * POST `/storage/signed-url` per path -- resolve private storage objects into URLs
11368
+ * a browser can actually fetch.
11369
+ *
11370
+ * **Sign at read; never store the result.** A signed URL expires, so persisting one
11371
+ * produces a row that is correct when written and silently wrong later. What gets
11372
+ * stored is the path (`content_item_source_assets.derivative_path`,
11373
+ * `content_distributions.media_urls`), and this hook turns it into a URL at the
11374
+ * moment something renders it. Same rule as
11375
+ * `acq_deals.proposal_data.proposalPdfPath`.
11376
+ *
11377
+ * One query per ref, so each resolves and caches on its own and one unreadable
11378
+ * object does not hold up the rest.
11379
+ *
11380
+ * Each ref carries its own bucket rather than the caller passing one for the whole
11381
+ * batch: a stored entry names where it lives, so nothing here has to know which
11382
+ * bucket a given record's objects happen to be in.
11383
+ *
11384
+ * The route runs on `request.userClient`, so `storage.objects` RLS decides whether
11385
+ * a URL can be minted at all -- a member of another organization gets an error
11386
+ * here, not a URL that fails later.
11387
+ */
11388
+ declare function useStorageSignedUrls(refs: StorageObjectRef[]): StorageSignedUrlsResult;
11389
+
9998
11390
  /**
9999
11391
  * Query key factories for Operations TanStack Query hooks.
10000
11392
  *
@@ -12849,5 +14241,5 @@ declare function useCreateNote(): _tanstack_react_query.UseMutationResult<{
12849
14241
  type?: string;
12850
14242
  }, "organization_id">, unknown>;
12851
14243
 
12852
- export { AccessKeys, ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, WebhookEndpointService, acquisitionListKeys, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, contentKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, getResourceFilterFacetIds, isSessionCapable, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, mergeSessionMessages, milestoneKeys, noteKeys, observabilityKeys, operationsKeys, pickLatestRunAt, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, sumStatusCounts, taskKeys, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCommandQueue, useCommandQueueTask, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useContentDistribution, useContentDistributions, useContentItem, useContentItemAttempts, useContentItems, useContentPipelineSummary, useContentSourceAsset, useContentSourceAssets, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateContentSourceAsset, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteOrgRole, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask$1 as useDeleteTask, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useEndSession, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useInFlightExecutions, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMergedExecution, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrgRoles, useOrganizationMembers, useOrganizationModelDrift, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useReviewContentItem, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateContentDistribution, useUpdateContentItem, useUpdateContentSourceAsset, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
12853
- export type { AccessKeyInput, AcqCompanyWithCount, AcqContactWithCompany, AcqDealNote, AcqDealTask, AcqDealTaskKind, ActivityFilters, ActivityTrendResponse, AddCompaniesToListResult, AddContactsToListResult, AssignRoleInput, BulkDeleteExecutionsParams, BulkDeleteExecutionsResult, BusinessImpactMetrics, CancelExecutionParams, CancelExecutionResult, ChatMessage, ClientDetailResponse, ClientResponse, ClientStatus, ClientStatusResponse, ClientsListFilters, ContentDistributionListResponse, ContentDistributionResponse, ContentDistributionsListFilters, ContentItemAttemptListResponse, ContentItemAttemptResponse, ContentItemListResponse, ContentItemResponse, ContentItemReviewDecision, ContentItemStatus, ContentItemsListFilters, ContentPillar, ContentPipelineId, ContentPipelineSummary, ContentSourceAssetKind, ContentSourceAssetListResponse, ContentSourceAssetResponse, ContentSourceAssetsListFilters, CreateApiKeyRequest, CreateApiKeyResponse, CreateClientRequest, CreateContentSourceAssetRequest, CreateCredentialRequest, CreateCredentialResponse, CreateOrgRoleInput, CreateScheduleInput, CreateSessionResponse, CredentialListItem, DealDetail, DealLookupFilters, DealLookupItem, DealSummaryStageItem, DealsSummaryResponse, DeleteExecutionParams, Deployment, ErrorDistributionItem, ErrorDistributionParams, ErrorFilters, ErrorTrendsParams, ExecuteActionInput, ExecuteAsyncParams, ExecuteAsyncResult, ExecutionErrorDetails, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogsFilters, ExecutionLogsPageResponse, FailingResource, GetMessagesResponse, ListActivitiesResponse, ListApiKeysResponse, ListCredentialsResponse, ListExecutionsFilters, ListRecordsFilters, ListSchedulesFilters, ListSchedulesResponse, ListWebhookEndpointsResponse, MessageEvent, MessageType, OrgRole, OrganizationModelDriftState, RemoveCompaniesFromListResult, RequestRow, RequestSeverity, RequestType, RequestsListFilters, ResourceFilterFacet, ResourcesResponse, RetryExecutionParams, ReviewContentItemRequest, RevokeRoleInput, SessionDTO, SessionExecution, SessionExecutionsResponse, SessionListItem, SessionTokenUsage, SortDirection, SortState, StaleDealSummaryItem, StatefulItem, StatusFilter, SubmitActionRequest, SubmitActionResponse, SubmitRequestInput, SystemHealthExecutionSummary, SystemHealthResponse, TaskSchedule, TopFailingResourcesParams, TransitionItemInput, TransitionListCompanyInput, TransitionListMemberInput, TransitionStateInput, UpdateClientRequest, UpdateContentItemRequest, UpdateContentSourceAssetRequest, UpdateListStatusInput, UpdateOrgRoleInput, UpdateScheduleInput, UseAccessResult, UseActivitiesParams, UseActivityTrendParams, UseArtifactsParams, UseBatchedResourcesHealthParams, UseExecuteResourceOptions, UseExecutionHealthParams, UseExecutionLogsParams, UseExecutionPanelStateOptions, UseExecutionPanelStateReturn, UseExecutionSSEOptions, UseExecutionSSEResult, UseInFlightExecutionsOptions, UseListProgressOptions, UseNotificationCountArgs, UseResourcesHealthParams, UseSSEConnectionOptions, UseScheduledTasksOptions, UseSystemHealthParams, UseWorkflowExecutionOptions, UseWorkflowExecutionResult, VerifyCredentialResponse, WebSocketState, WorkflowExecutionTriggerParams };
14244
+ export { AccessKeys, ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, REFETCH_INTERVAL_RUNNING, SIGNED_URL_EXPIRES_IN_SECONDS, TEMPORARY_LINK_STALE_MS, THUMBNAIL_BATCH_SIZE, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, WebhookEndpointService, acquisitionListKeys, chunkIntoBatches, clientsKeys, cloudStorageKeys, collectResourceFilterFacets, companyKeys, contactKeys, contentKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, getResourceFilterFacetIds, isSessionCapable, joinSourceAssetDetails, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, measureImageDimensions, mergeSessionMessages, mergeThumbnailBatches, milestoneKeys, noteKeys, observabilityKeys, operationsKeys, pickCoverSourceAsset, pickLatestRunAt, projectActivityKeys, projectKeys, readItemSourceAssets, requestsKeys, scheduleKeys, sessionsKeys, sortData, storageKeys, storageObjectRefKey, sumStatusCounts, taskKeys, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useAddContentItemSourceAsset, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCloudStorageFolder, useCloudStorageImageDimensions, useCloudStorageTemporaryLinks, useCloudStorageThumbnails, useCommandQueue, useCommandQueueTask, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useContentDistribution, useContentDistributionMetrics, useContentDistributions, useContentItem, useContentItemAttempts, useContentItemSourceAssetDetails, useContentItemSourceAssets, useContentItems, useContentPipelineSummary, useContentSourceAsset, useContentSourceAssets, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateContentDistribution, useCreateContentItem, useCreateContentSourceAsset, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteOrgRole, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask$1 as useDeleteTask, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useEndSession, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useInFlightExecutions, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMergedExecution, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrgRoles, useOrganizationMembers, useOrganizationModelDrift, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRemoveContentItemSourceAsset, useReorderContentItemSourceAssets, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useReviewContentItem, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useStorageSignedUrls, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateContentDistribution, useUpdateContentItem, useUpdateContentItemSourceAsset, useUpdateContentSourceAsset, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUploadStorageFile, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
14245
+ export type { AccessKeyInput, AcqCompanyWithCount, AcqContactWithCompany, AcqDealNote, AcqDealTask, AcqDealTaskKind, ActivityFilters, ActivityTrendResponse, AddCompaniesToListResult, AddContactsToListResult, AssignRoleInput, BulkDeleteExecutionsParams, BulkDeleteExecutionsResult, BusinessImpactMetrics, CancelExecutionParams, CancelExecutionResult, ChatMessage, ClientDetailResponse, ClientResponse, ClientStatus, ClientStatusResponse, ClientsListFilters, CloudStorageDimensionMap, CloudStorageDimensions, CloudStorageFolderFilters, CloudStorageFolderParams, CloudStorageFolderResponse, CloudStorageImageDimensionsResult, CloudStorageTemporaryLink, CloudStorageTemporaryLinkMap, CloudStorageTemporaryLinksResult, CloudStorageThumbnailMap, CloudStorageThumbnailsResult, ContentAssetCrop, ContentAssetCropInput, ContentDistributionListResponse, ContentDistributionMetrics, ContentDistributionMetricsListResponse, ContentDistributionMetricsResponse, ContentDistributionResponse, ContentDistributionsListFilters, ContentItemAttemptListResponse, ContentItemAttemptResponse, ContentItemListResponse, ContentItemResponse, ContentItemReviewDecision, ContentItemSourceAssetDetail, ContentItemSourceAssetDetailsResult, ContentItemSourceAssetExpansion, ContentItemSourceAssetInput, ContentItemSourceAssetListResponse, ContentItemSourceAssetResponse, ContentItemStatus, ContentItemsListFilters, ContentPillar, ContentPipelineId, ContentPipelineSummary, ContentSourceAssetKind, ContentSourceAssetListResponse, ContentSourceAssetResponse, ContentSourceAssetsListFilters, CreateApiKeyRequest, CreateApiKeyResponse, CreateClientRequest, CreateContentDistributionRequest, CreateContentSourceAssetRequest, CreateCredentialRequest, CreateCredentialResponse, CreateOrgRoleInput, CreateScheduleInput, CreateSessionResponse, CredentialListItem, DealDetail, DealLookupFilters, DealLookupItem, DealSummaryStageItem, DealsSummaryResponse, DeleteExecutionParams, Deployment, ErrorDistributionItem, ErrorDistributionParams, ErrorFilters, ErrorTrendsParams, ExecuteActionInput, ExecuteAsyncParams, ExecuteAsyncResult, ExecutionErrorDetails, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogsFilters, ExecutionLogsPageResponse, FailingResource, GetMessagesResponse, ListActivitiesResponse, ListApiKeysResponse, ListCredentialsResponse, ListExecutionsFilters, ListRecordsFilters, ListSchedulesFilters, ListSchedulesResponse, ListWebhookEndpointsResponse, MessageEvent, MessageType, OrgRole, OrganizationModelDriftState, RemoveCompaniesFromListResult, ReorderContentItemSourceAssetsRequest, RequestRow, RequestSeverity, RequestType, RequestsListFilters, ResourceFilterFacet, ResourcesResponse, RetryExecutionParams, ReviewContentItemRequest, RevokeRoleInput, SessionDTO, SessionExecution, SessionExecutionsResponse, SessionListItem, SessionTokenUsage, SortDirection, SortState, StaleDealSummaryItem, StatefulItem, StatusFilter, StorageObjectRef, StorageSignedUrlMap, StorageSignedUrlsResult, SubmitActionRequest, SubmitActionResponse, SubmitRequestInput, SystemHealthExecutionSummary, SystemHealthResponse, TaskSchedule, TopFailingResourcesParams, TransitionItemInput, TransitionListCompanyInput, TransitionListMemberInput, TransitionStateInput, UpdateClientRequest, UpdateContentDistributionRequest, UpdateContentItemRequest, UpdateContentItemSourceAssetRequest, UpdateContentSourceAssetRequest, UpdateListStatusInput, UpdateOrgRoleInput, UpdateScheduleInput, UploadStorageFileParams, UploadStorageFileResult, UseAccessResult, UseActivitiesParams, UseActivityTrendParams, UseArtifactsParams, UseBatchedResourcesHealthParams, UseExecuteResourceOptions, UseExecutionHealthParams, UseExecutionLogsParams, UseExecutionPanelStateOptions, UseExecutionPanelStateReturn, UseExecutionSSEOptions, UseExecutionSSEResult, UseInFlightExecutionsOptions, UseListProgressOptions, UseNotificationCountArgs, UseResourcesHealthParams, UseSSEConnectionOptions, UseScheduledTasksOptions, UseSystemHealthParams, UseWorkflowExecutionOptions, UseWorkflowExecutionResult, VerifyCredentialResponse, WebSocketState, WorkflowExecutionTriggerParams };