@joai/core 5.0.3 → 5.1.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 (2) hide show
  1. package/dist/index.d.mts +751 -728
  2. package/package.json +1 -1
package/dist/index.d.mts CHANGED
@@ -419,6 +419,41 @@ type SubscriptionDelivery = {
419
419
  } | null;
420
420
  };
421
421
  //#endregion
422
+ //#region src/flow/types.d.ts
423
+ type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
424
+ type FlowStatus = 'draft' | 'published';
425
+ type Flow = {
426
+ slug: string;
427
+ team: Team;
428
+ name: string;
429
+ description: string | null;
430
+ category: FlowCategory;
431
+ status: FlowStatus;
432
+ publishedAt: string | null;
433
+ createdAt: string;
434
+ updatedAt: string;
435
+ steps: FlowStep[];
436
+ locales: WarpLocale[];
437
+ store: StoreInfo;
438
+ screenshots: string[];
439
+ };
440
+ type FlowStep = {
441
+ stepId: string;
442
+ order: number;
443
+ type: 'warp' | 'condition' | 'delay';
444
+ warpIdentifier: string | null;
445
+ dependsOn: string[] | null;
446
+ inputMappings: FlowInputMapping[] | null;
447
+ staticInputs: Record<string, any> | null;
448
+ condition: Record<string, any> | null;
449
+ };
450
+ type FlowInputMapping = {
451
+ sourceStepId: string;
452
+ sourceKey: string;
453
+ targetInput: string;
454
+ transform?: string;
455
+ };
456
+ //#endregion
422
457
  //#region src/wallet/types.d.ts
423
458
  type Wallet = {
424
459
  chain: WarpChainName;
@@ -433,816 +468,783 @@ type WalletList = Partial<Record<WarpChainName, {
433
468
  address?: string;
434
469
  }>>;
435
470
  //#endregion
436
- //#region src/json/types.d.ts
437
- type JsonValue = string | number | boolean | null | JsonValue[] | {
438
- [key: string]: JsonValue;
471
+ //#region src/user/permissions.d.ts
472
+ /** Permission string values — must match joai--api `UserPermission::value`. */
473
+ declare const UserPermissions: {
474
+ readonly BillingManage: "billing-manage";
475
+ readonly TeamManage: "team-manage";
476
+ readonly TeamView: "team-view";
477
+ readonly ContentEdit: "content-edit";
478
+ readonly ContentPublish: "content-publish";
479
+ readonly TeamMemberInvite: "team-member-invite";
480
+ readonly TeamMemberRemove: "team-member-remove";
481
+ readonly TeamMemberRole: "team-member-role";
482
+ readonly TeamSecretView: "team-secret-view";
483
+ readonly TeamSecretManage: "team-secret-manage";
484
+ readonly AgentExecute: "agent-execute";
485
+ readonly AgentWalletManage: "agent-wallet-manage";
486
+ readonly SwarmCreate: "swarm-create";
487
+ };
488
+ type UserPermission = (typeof UserPermissions)[keyof typeof UserPermissions];
489
+ declare const userPermissionValues: [UserPermission, ...UserPermission[]];
490
+ declare const hasPermission: (granted: readonly UserPermission[] | undefined, required: UserPermission) => boolean;
491
+ declare const hasAllPermissions: (granted: readonly UserPermission[] | undefined, required: readonly UserPermission[]) => boolean;
492
+ declare const hasAnyPermissions: (granted: readonly UserPermission[] | undefined, required: readonly UserPermission[]) => boolean;
493
+ declare const hasTeamPermission: (team: {
494
+ permissions?: UserPermission[];
495
+ } | null | undefined, permission: UserPermission) => boolean;
496
+ declare const hasAllTeamPermissions: (team: {
497
+ permissions?: UserPermission[];
498
+ } | null | undefined, permissions: UserPermission[]) => boolean;
499
+ //#endregion
500
+ //#region src/user/roles.d.ts
501
+ /** Team member roles — values must match joai--api `UserRole::toName()`. */
502
+ declare const UserRoles: {
503
+ readonly Owner: "owner";
504
+ readonly Admin: "admin";
505
+ readonly Member: "member";
506
+ readonly Developer: "developer";
439
507
  };
508
+ type UserRole = (typeof UserRoles)[keyof typeof UserRoles];
509
+ declare const userRoleValues: [UserRole, ...UserRole[]];
510
+ declare const isUserRole: (value: string) => value is UserRole;
511
+ /** Roles assignable via team invite — owner is never inviteable. Must match API `RolePermissions::inviteable()`. */
512
+ declare const InviteableTeamRoles: readonly ["member", "developer", "admin"];
513
+ declare const DefaultInviteTeamRole: "member";
514
+ declare const inviteableTeamRoles: () => UserRole[];
515
+ /** Roles assignable to an existing member — unlike invites, ownership can be transferred. */
516
+ declare const AssignableTeamRoles: readonly ["owner", "admin", "developer", "member"];
517
+ declare const assignableTeamRoles: () => UserRole[];
518
+ declare const defaultInviteTeamRole: () => UserRole;
440
519
  //#endregion
441
- //#region src/contact/types.d.ts
442
- type ContactHealth = 'active' | 'lukewarm' | 'cold' | 'stale' | 'unknown';
443
- type ContactConsentStatus = 'pending' | 'confirmed' | 'superseded' | 'unsubscribed';
444
- type ContactConsent = {
445
- id: string;
446
- purpose: string;
447
- status: ContactConsentStatus;
448
- email: string;
449
- consentText: {
450
- label?: string | Record<string, string>;
451
- description?: string | Record<string, string> | null;
452
- };
453
- privacyUrl: string | null;
454
- source: {
455
- formIdentifier?: string | null;
456
- formTitle?: string | Record<string, string> | null;
457
- };
458
- requestedAt: string;
459
- confirmedAt: string | null;
460
- unsubscribedAt: string | null;
520
+ //#region src/user/types.d.ts
521
+ type UserMode = 'simple' | 'advanced';
522
+ type UserInterest = 'payments' | 'health' | 'content' | 'business' | 'finance' | 'research' | 'shopping' | 'web3' | 'developer' | 'fitness' | 'ecommerce';
523
+ type UserSettings = {
524
+ mode: UserMode;
525
+ interests: UserInterest[];
526
+ hotkeys?: Record<string, string> | null;
527
+ 'payout.address'?: string | null;
528
+ 'payout.chain'?: string | null;
529
+ 'voice.playback-mode'?: 'voice-control' | 'chat' | 'both' | null;
530
+ 'voice.corrections'?: {
531
+ wrong: string;
532
+ correct: string;
533
+ }[];
534
+ 'warp.notifications'?: Record<string, Record<string, boolean>>;
535
+ 'withdrawal.waiver.accepted-at'?: string | null;
536
+ 'active.team'?: string | null;
461
537
  };
462
- type Contact = {
538
+ type KycStatus = 'pending' | 'approved' | 'rejected';
539
+ type Kyc = {
540
+ status: KycStatus;
541
+ };
542
+ type UserPrivate = {
463
543
  id: string;
464
544
  name: string;
545
+ email: string;
546
+ hasVerifiedEmail: boolean;
547
+ balance: number;
465
548
  wallets: Wallet[];
466
- email: string | null;
467
- phone: string | null;
468
- company: string | null;
469
- title: string | null;
470
- birthday: string | null;
471
- website: string | null;
472
- location: string | null;
473
- avatar: string | null;
474
- socials: Record<string, string> | null;
475
- notes: string | null;
476
- tags: string[] | null;
477
- userId: string | null;
478
- locale?: string | null;
479
- props?: Record<string, string> | null;
480
- settings?: {
481
- marketingOptOut?: boolean;
482
- } | null;
483
- consents?: ContactConsent[];
484
- lastActivityAt?: string | null;
485
- health?: ContactHealth;
486
- nextFollowUpAt?: string | null;
487
- followUpNote?: string | null;
488
- };
489
- type ContactActivityType = 'note' | 'call' | 'meeting' | 'task' | 'update' | 'custom' | 'form' | 'loyalty' | 'follow_up';
490
- type ContactActivityAuthor = {
491
- name: string;
492
- imageUrl: string | null;
549
+ hasProfileImage: boolean;
550
+ profileImageUrl: string;
551
+ country: string | null;
552
+ timezone: string | null;
553
+ socials: UserSocialAccount[];
554
+ justCreated: boolean;
555
+ affiliate: Affiliate | null;
556
+ kyc?: Kyc | null;
557
+ settings: UserSettings;
558
+ contacts?: Contact[];
493
559
  };
494
- type ContactActivity = {
495
- id: string;
496
- type: ContactActivityType;
560
+ type Earning = {
561
+ id: number;
562
+ amount: number;
563
+ type: string;
497
564
  description: string | null;
498
- meta: Record<string, JsonValue> | null;
499
- agentName: string | null;
500
565
  createdAt: string;
501
- author?: ContactActivityAuthor | null;
502
566
  };
503
- type ContactFormData = {
504
- name?: string;
505
- email?: string | null;
506
- phone?: string | null;
507
- company?: string | null;
508
- title?: string | null;
509
- birthday?: string | null;
510
- website?: string | null;
511
- location?: string | null;
512
- socials?: Record<string, string> | null;
513
- notes?: string | null;
514
- tags?: string[] | null;
515
- locale?: string | null;
516
- props?: Record<string, string> | null;
517
- settings?: {
518
- marketingOptOut?: boolean;
519
- };
520
- nextFollowUpAt?: string | null;
521
- followUpNote?: string | null;
522
- avatar?: string[];
567
+ type PayoutEntry = {
568
+ id: number;
569
+ amount: number;
570
+ status: string;
571
+ tx: string | null;
572
+ failureReason: string | null;
573
+ processedAt: string | null;
574
+ createdAt: string;
523
575
  };
524
- type ContactCreatePayload = ContactFormData & {
525
- name: string;
526
- wallets?: WalletList;
576
+ type UserSocialAccount = {
577
+ platform: string;
578
+ id: string;
579
+ username: string;
580
+ profileUrl: string;
527
581
  };
528
- type ContactRelationType = 'parent_of' | 'child_of' | 'spouse_of' | 'sibling_of' | 'aunt_of' | 'nibling_of' | 'friend_of' | 'manages' | 'reports_to' | 'colleague_of' | 'partner_of' | 'client_of' | 'supplier_of' | 'referred_by' | 'referred';
529
- type ContactRelationCategory = 'family' | 'social' | 'organization' | 'business' | 'referral';
530
- type ContactRelationDirection = 'outgoing' | 'incoming';
531
- type ContactRelationContact = {
582
+ type User = {
532
583
  id: string;
533
584
  name: string;
534
- avatar: string | null;
535
- company: string | null;
536
- title: string | null;
585
+ address: string;
586
+ balance: number | null;
587
+ hasProfileImage: boolean;
588
+ profileImageUrl: string;
589
+ swarmRole: string | null;
537
590
  };
538
- type ContactRelation = {
591
+ type AuthUser = {
539
592
  id: string;
540
- type: ContactRelationType;
541
- category: ContactRelationCategory;
542
- direction: ContactRelationDirection;
543
- contact: ContactRelationContact;
544
- meta: Record<string, JsonValue> | null;
545
- notes: string | null;
593
+ name: string;
594
+ phone: string | null;
595
+ email: string | null;
596
+ };
597
+ type Affiliate = {
598
+ name: string;
599
+ tier: AffiliateTier;
600
+ balance: number;
601
+ payoutAddress: string;
602
+ application: string;
603
+ status: AffiliateStatus;
546
604
  createdAt: string;
605
+ inviteLinkUrl: string;
606
+ settings: {
607
+ minPayoutBalance: number;
608
+ commissionExtraPercent?: number;
609
+ customerDiscountPercent: number;
610
+ };
611
+ clicks: number;
612
+ coupons: Coupon[];
613
+ user: User | null;
547
614
  };
548
- type ContactRelationPayload = {
549
- relatedContactId: string;
550
- type: ContactRelationType;
551
- notes?: string;
552
- meta?: Record<string, JsonValue>;
553
- };
554
- type ContactRelationUpdatePayload = {
555
- type?: ContactRelationType;
556
- notes?: string;
557
- meta?: Record<string, JsonValue>;
615
+ type AffiliateTierName = 'bronze' | 'silver' | 'gold';
616
+ type AffiliateTier = {
617
+ name: AffiliateTierName;
618
+ displayName: string;
619
+ commission: number;
620
+ threshold: number;
558
621
  };
622
+ type AffiliateStatus = 'pending' | 'approved' | 'rejected' | 'suspended' | 'demoted';
559
623
  //#endregion
560
- //#region src/media/types.d.ts
561
- type AppFileType = 'abi' | 'pdf' | 'image' | 'video' | 'json';
562
- type AppFile = {
563
- type: AppFileType;
564
- original: File;
565
- };
566
- type MediaLibraryAttributes = {
567
- uuid: string;
568
- order: number;
569
- name: string;
570
- custom_properties: {
571
- [key: string]: JsonValue;
572
- };
573
- preview_url: null | string;
574
- original_url: null | string;
575
- extension?: string;
576
- size?: number;
577
- };
578
- type MediaMime = 'image/png' | 'image/jpeg' | 'image/gif' | 'image/webp' | 'video/mp4' | 'video/webm' | 'video/quicktime' | 'video/x-msvideo' | 'audio/mpeg' | 'audio/mp3' | 'audio/ogg' | 'audio/wav' | 'audio/webm' | 'audio/aac' | 'audio/m4a' | 'audio/m4b' | 'audio/m4p' | 'audio/m4v' | 'application/pdf' | 'application/json';
579
- type MediaAspectRatio = 'free' | '1:1' | '16:9' | '9:16' | '4:3' | '3:4';
580
- type Media = {
581
- id: string;
582
- name: string;
583
- mime: MediaMime;
584
- url: string;
585
- library: MediaLibraryAttributes;
586
- tags?: string[];
587
- copyright?: string | null;
588
- aiGenerated?: boolean;
624
+ //#region src/team/apps.d.ts
625
+ declare const NativeApps: {
626
+ readonly Board: "board";
627
+ readonly Shop: "shop";
628
+ readonly SmartLinks: "smart-links";
629
+ readonly Contacts: "contacts";
630
+ readonly Forms: "forms";
631
+ readonly Appointments: "appointments";
632
+ readonly Workspace: "workspace";
633
+ readonly Meeting: "meeting";
634
+ readonly VoiceDictation: "voice-dictation";
635
+ readonly Heartbeats: "heartbeats";
636
+ readonly Wallets: "wallets";
637
+ readonly Campaigns: "campaigns";
638
+ readonly Automations: "automations";
639
+ readonly News: "news";
640
+ readonly Sites: "sites";
641
+ readonly Contracts: "contracts";
642
+ readonly Artifacts: "artifacts";
643
+ readonly Social: "social";
644
+ readonly Studio: "studio";
645
+ readonly Loyalty: "loyalty";
646
+ readonly Documents: "documents";
589
647
  };
648
+ type NativeApp = (typeof NativeApps)[keyof typeof NativeApps];
649
+ declare const nativeAppSlugs: NativeApp[];
650
+ declare const isNativeApp: (value: unknown) => value is NativeApp;
590
651
  //#endregion
591
- //#region src/integration/types.d.ts
592
- type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'whatsapp-personal' | 'twilio' | 'sms' | 'n8n' | 'apple-health' | 'mcp' | 'x' | 'xchat' | 'instagram' | 'facebook' | 'linkedin' | 'grok' | 'cloudflare' | 'google-search-console' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'push' | 'sentry' | 'readwise';
593
- type IntegrationDetails = {
594
- type: IntegrationType;
595
- name: string;
596
- description?: string;
597
- logoUrl?: string;
598
- logoUrlDark?: string;
599
- slug?: string;
600
- category?: string;
601
- [key: string]: unknown;
602
- };
603
- type IntegrationMeta = {
604
- handle?: string;
605
- provider?: EmailProvider | null;
606
- hookSource?: string;
607
- [key: string]: unknown;
608
- };
609
- type IntegrationConnectionDetails = IntegrationDetails & {
610
- phoneNumberId?: string;
611
- phoneNumber?: string;
612
- webhookUrl?: string;
613
- webhookSecret?: string;
614
- webhookSecretKey?: string;
615
- };
616
- type Integration = {
617
- id: string;
618
- type: IntegrationType;
619
- name: string;
620
- active: boolean;
621
- configured: boolean;
622
- createdAt: string;
623
- meta?: IntegrationMeta;
624
- details?: IntegrationConnectionDetails;
652
+ //#region src/access/team-access.d.ts
653
+ type TeamFeatureArea = 'nativeApps' | 'agentSettings' | 'teamSettings' | 'developerHub' | 'areas' | 'commerce';
654
+ type GatedFeatureArea = Exclude<TeamFeatureArea, 'nativeApps'>;
655
+ /** Keys per area that the API evaluates in `team.access`. */
656
+ type TeamAccessCatalog = Partial<Record<TeamFeatureArea, string[]>>;
657
+ type TeamAccessConfig = {
658
+ accessCatalog: TeamAccessCatalog;
625
659
  };
626
- type SocialPlatform = 'telegram' | 'slack' | 'whatsapp' | 'sms' | 'discord' | 'github' | 'xchat' | 'instagram';
627
- type SocialBot = {
628
- name: string;
629
- createdAt: string;
630
- phoneNumberId?: string;
631
- phoneNumber?: string;
632
- applicationId?: string;
633
- appId?: string;
634
- installationId?: string;
635
- username?: string;
660
+ /** Resolved feature access from API `TeamPrivate.access` — do not evaluate rules on the client. */
661
+ type TeamFeatureAccess = {
662
+ nativeApps?: Partial<Record<NativeApp, boolean>>;
663
+ agentSettings?: Partial<Record<string, boolean>>;
664
+ teamSettings?: Partial<Record<string, boolean>>;
665
+ developerHub?: Partial<Record<string, boolean>>;
666
+ areas?: Partial<Record<string, boolean>>;
667
+ commerce?: Partial<Record<string, boolean>>;
636
668
  };
637
- type XIntegrationStatus = {
638
- enabled: boolean;
639
- integrationId: string | null;
640
- xAccountLinked: boolean;
641
- currentAgentName: string | null;
669
+ type TeamWithAccess = {
670
+ access?: TeamFeatureAccess | null;
671
+ accessCatalog?: TeamAccessCatalog | null;
642
672
  };
643
- type EmbedStatus = {
644
- integrationId: string;
645
- agentName: string;
646
- agentAvatar: string | null;
647
- active: boolean;
648
- allowedDomains: string[];
673
+ declare const resolveAccessCatalog: (team: TeamWithAccess | null | undefined, accessConfig: TeamAccessConfig | null | undefined) => TeamAccessCatalog | null | undefined;
674
+ declare const isTeamFeatureGated: (catalog: TeamAccessCatalog | null | undefined, area: GatedFeatureArea, key: string) => boolean;
675
+ declare const isNativeAppGated: (catalog: TeamAccessCatalog | null | undefined, app: NativeApp) => boolean;
676
+ declare const isTeamFeatureAccessible: (team: TeamWithAccess | null | undefined, area: GatedFeatureArea, key: string) => boolean;
677
+ declare const isTeamFeatureLocked: (team: TeamWithAccess | null | undefined, catalog: TeamAccessCatalog | null | undefined, area: GatedFeatureArea, key: string) => boolean;
678
+ declare const isNativeAppAccessible: (team: TeamWithAccess | null | undefined, app: NativeApp) => boolean;
679
+ declare const isNativeAppLocked: (team: TeamWithAccess | null | undefined, catalog: TeamAccessCatalog | null | undefined, app: NativeApp) => boolean;
680
+ //#endregion
681
+ //#region src/team/constants.d.ts
682
+ declare const teamCategories: readonly ["general", "food-drink", "retail", "beauty-wellness", "health", "sports-fitness", "trades-services", "professional-services", "education-culture", "clubs-organizations", "leisure-tourism"];
683
+ //#endregion
684
+ //#region src/team/types.d.ts
685
+ type TeamCategory = (typeof teamCategories)[number];
686
+ type TeamFeature = 'shop' | 'appointments';
687
+ type TeamMember = User & {
688
+ role: UserRole | null;
689
+ roleAcceptedAt: string | null;
690
+ email: string | null;
649
691
  };
650
- type EmailProvider = 'resend' | 'mailgun' | 'sendgrid';
651
- type CalendarProvider = 'google' | 'apple' | 'microsoft';
652
- type CalendarStatus = {
653
- connected: boolean;
654
- provider?: CalendarProvider;
655
- providerDisplayName?: string;
656
- accountEmail?: string;
657
- lastSynced?: string;
658
- tokenHealthy?: boolean;
659
- upcomingEvents?: {
660
- title: string;
661
- startAt: string;
662
- endAt: string;
663
- allDay: boolean;
664
- }[];
692
+ type TeamMeta = {
693
+ 'extra.messages'?: number;
694
+ 'limit.spending'?: number | null;
695
+ currency?: string;
696
+ 'extra.usage.enabled'?: boolean;
697
+ 'auto.reload.enabled'?: boolean;
698
+ 'auto.reload.threshold_cents'?: number | null;
699
+ 'auto.reload.amount_cents'?: number | null;
700
+ 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
701
+ 'byok.providers'?: ByokProviders | null;
702
+ 'board.auto.enabled'?: boolean;
703
+ 'payments.online'?: boolean;
704
+ 'payments.coupons'?: boolean;
705
+ 'shop.kiosk.enabled'?: boolean;
706
+ 'shop.stock.enabled'?: boolean;
707
+ 'shop.reorder.enabled'?: boolean;
708
+ 'shop.legal.terms_url'?: string | null;
709
+ 'shop.legal.privacy_url'?: string | null;
710
+ 'shop.legal.withdrawal_url'?: string | null;
711
+ 'shop.legal.imprint_url'?: string | null;
712
+ 'orders.notify_emails'?: string[];
713
+ 'orders.payment_reminders'?: boolean;
714
+ contactPropertyMaskWarp?: string;
715
+ branding?: TeamBrand | null;
716
+ settings: Record<string, unknown> & {
717
+ apps?: NativeApp[];
718
+ };
665
719
  };
666
- //#endregion
667
- //#region src/agent/types.d.ts
668
- type AgentCharacter = {
720
+ type TeamPlace = {
721
+ provider: 'google';
722
+ sourceId: string;
669
723
  name: string | null;
670
- system: string | null;
671
- bio: string | null;
672
- };
673
- type Agent = {
674
- uuid: string;
675
- name: string;
676
- description: string;
677
- avatar: string;
678
- wallets: Wallet[];
679
- settings: AgentSettings;
680
- store: StoreInfo;
681
- character?: AgentCharacter | null;
682
- room: Room;
683
- role: string | null;
684
- blueprint: Blueprint | null;
685
- team: string;
724
+ address: string | null;
725
+ location: {
726
+ lat: number | null;
727
+ lng: number | null;
728
+ };
729
+ rating?: number | null;
730
+ reviewCount?: number | null;
731
+ websiteUrl?: string | null;
732
+ mapsUrl?: string | null;
733
+ businessStatus?: string | null;
686
734
  };
687
- type AgentPrivate = {
688
- uuid: string;
735
+ type Team = {
736
+ slug: string;
689
737
  name: string;
690
- description: string;
691
- avatar: string;
692
- wallets: Wallet[];
693
- settings: AgentSettings;
694
- store: StoreInfo;
695
- password: string | null;
696
- authKey: string | null;
697
- secKey: string;
698
- phoneNumber: string | null;
699
- room: Room;
700
- role: string | null;
701
- blueprint: Blueprint | null;
702
- justCreated?: boolean;
703
- team: string;
738
+ personal: boolean;
739
+ category: TeamCategory;
740
+ tags?: string[] | null;
741
+ description: TranslatableValue | null;
742
+ locale: WarpLocale;
743
+ timezone: string;
744
+ place?: TeamPlace | null;
745
+ meta?: TeamMeta;
746
+ features?: TeamFeature[];
747
+ cover?: string | null;
748
+ logo: string | null;
749
+ tagline?: TranslatableValue | null;
750
+ public: boolean;
751
+ createdAt: string;
752
+ blueprints?: Blueprint[];
753
+ flows?: Flow[];
754
+ coupons?: Coupon[];
704
755
  };
705
- type AgentActionHistoryEntry = {
706
- id: string;
707
- action: string | null;
708
- outcome: 'succeeded' | 'failed';
709
- outcomeDetail: string | null;
710
- warpIdentifier: string | null;
711
- meta: Record<string, unknown> | null;
712
- createdAt: string | null;
756
+ type TeamBrand = {
757
+ bg?: string;
758
+ fg?: string;
759
+ label?: string;
760
+ logo?: string;
761
+ bankAccountHolder?: string;
762
+ bankIban?: string;
763
+ bankBic?: string;
764
+ invoiceAddress?: string;
765
+ invoiceVat?: string;
766
+ invoiceCity?: string;
767
+ invoiceZip?: string;
768
+ invoiceCountry?: string;
713
769
  };
714
- type AgentSimple = {
715
- uuid: string;
770
+ type TeamPrivate = {
771
+ slug: string;
716
772
  name: string;
717
- avatar?: string | null;
718
- authKey?: string | null;
719
- team?: {
720
- slug: string;
721
- } | null;
722
- settings?: Pick<AgentSettings, 'auto'>;
723
- };
724
- type AgentWalletMode = 'local' | 'cloud' | 'external';
725
- type AgentEngine = 'cortex' | 'openclaw';
726
- type AgentGender = 'male' | 'female' | 'neutral';
727
- type AgentTrustedActionRule = {
728
- id: string;
729
- hash: string;
730
- match?: Record<string, string>;
731
- identifier?: string;
732
- title?: string;
773
+ personal: boolean;
774
+ description: TranslatableValue | null;
775
+ tags?: string[] | null;
776
+ tagline: TranslatableValue | null;
777
+ balance: number;
778
+ locale: WarpLocale;
779
+ timezone: string;
780
+ place?: TeamPlace | null;
781
+ logo: string | null;
782
+ cover: string | null;
783
+ subscription: {
784
+ premium: boolean;
785
+ lifetime: boolean;
786
+ plan: Plan;
787
+ provider: PaymentProvider | null;
788
+ payer: User | null;
789
+ gracePeriod: boolean;
790
+ autoRenew: boolean;
791
+ cycleEndsAt: string | null;
792
+ resetsAt: string | null;
793
+ startedAt: string | null;
794
+ renewedAt: string | null;
795
+ expiresAt: string | null;
796
+ };
797
+ meta: TeamMeta;
798
+ branding: TeamBrand;
799
+ category: TeamCategory;
800
+ createdAt: string;
801
+ justCreated: boolean;
802
+ role?: UserRole | null;
803
+ permissions?: UserPermission[];
804
+ access?: TeamFeatureAccess;
805
+ accessCatalog?: TeamAccessCatalog;
733
806
  };
734
- type AgentSettings = {
735
- auto: boolean;
736
- 'model.url': string;
737
- 'voice.output': boolean;
738
- 'voice.id': string | null;
739
- 'agent.gender'?: AgentGender;
740
- 'proactivity.enabled': boolean;
741
- 'proactivity.quietHoursStart'?: number;
742
- 'proactivity.quietHoursEnd'?: number;
743
- 'proactivity.maxMessagesPerDay'?: number;
744
- 'proactivity.timezone'?: string;
745
- 'proactivity.blockedBehaviors'?: string[];
746
- engine: AgentEngine;
747
- 'training.url'?: string | null;
748
- 'training.status'?: 'idle' | 'training' | 'completed' | 'failed' | null;
749
- 'training.recrawlInterval'?: number | null;
750
- 'email_provider'?: EmailProvider | null;
807
+ type ByokProviderConfig = {
808
+ apiKey?: string;
809
+ accessKey?: string;
810
+ secretKey?: string;
751
811
  };
752
- type LocalAgentWallet = {
753
- provider: WarpWalletProvider;
754
- address: string;
755
- mnemonic?: string | null;
756
- privateKey?: string | null;
812
+ type ByokProviders = {
813
+ openai?: ByokProviderConfig;
814
+ anthropic?: ByokProviderConfig;
815
+ google?: ByokProviderConfig;
816
+ xai?: ByokProviderConfig;
817
+ klingai?: ByokProviderConfig;
757
818
  };
758
- type AgentExecuteHandler = (prompt: string, options?: AgentExecuteOptions) => void;
759
- type AgentExecuteOptions = {
760
- audio?: File;
761
- sender?: string;
762
- media?: Media[];
763
- ghost?: boolean;
764
- context?: Record<string, unknown>;
819
+ type ByokProviderName = keyof ByokProviders;
820
+ type TeamSettings = {
821
+ 'extra.messages': number;
822
+ 'limit.spending': number | null;
823
+ currency: string;
824
+ 'extra.usage.enabled'?: boolean;
825
+ 'auto.reload.enabled'?: boolean;
826
+ 'auto.reload.threshold_cents'?: number | null;
827
+ 'auto.reload.amount_cents'?: number | null;
828
+ 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
829
+ 'byok.providers'?: ByokProviders | null;
830
+ 'board.auto.enabled'?: boolean;
831
+ 'payments.online'?: boolean;
832
+ 'payments.coupons'?: boolean;
833
+ 'shop.kiosk.enabled'?: boolean;
834
+ 'shop.stock.enabled'?: boolean;
835
+ 'shop.reorder.enabled'?: boolean;
836
+ 'shop.legal.terms_url'?: string | null;
837
+ 'shop.legal.privacy_url'?: string | null;
838
+ 'shop.legal.withdrawal_url'?: string | null;
839
+ 'shop.legal.imprint_url'?: string | null;
840
+ 'orders.notify_emails'?: string[];
841
+ 'orders.payment_reminders'?: boolean;
842
+ branding?: TeamBrand | null;
765
843
  };
766
- //#endregion
767
- //#region src/room/types.d.ts
768
- type RoomId = string;
769
- type RoomKind = 'default' | 'phone' | 'meeting';
770
- type Room = {
771
- id: string;
772
- name: string;
773
- description: string | null;
774
- public: boolean;
775
- default: boolean;
776
- active: boolean;
777
- kind?: RoomKind | null;
778
- archivedAt?: string | null;
779
- secKey: string | null;
780
- createdAt: string | null;
781
- contactId?: string | null;
782
- agent: AgentSimple;
783
- integration: Integration | null;
844
+ type TeamUsage = Partial<Record<PlanFeature, TeamFeatureUsage>> & {
845
+ extraUsageEnabled?: boolean;
846
+ currentSpending?: number;
847
+ walletCloudUsed?: number;
848
+ walletCloudPremiumUsed?: number;
849
+ spendingLimit?: number | null;
850
+ cycleEndsAt?: string | null;
851
+ resetsAt?: string | null;
852
+ autoReload?: {
853
+ enabled: boolean;
854
+ thresholdCents: number | null;
855
+ amountCents: number | null;
856
+ };
784
857
  };
785
- //#endregion
786
- //#region src/flow/types.d.ts
787
- type FlowCategory = 'none' | 'defi' | 'nft' | 'social' | 'devtools' | 'productivity' | 'trading' | 'portfolio';
788
- type FlowStatus = 'draft' | 'published';
789
- type Flow = {
790
- slug: string;
791
- team: Team;
792
- name: string;
793
- description: string | null;
794
- category: FlowCategory;
795
- status: FlowStatus;
796
- publishedAt: string | null;
797
- createdAt: string;
798
- updatedAt: string;
799
- steps: FlowStep[];
800
- locales: WarpLocale[];
801
- store: StoreInfo;
802
- screenshots: string[];
858
+ type TeamFeatureUsage = {
859
+ current: number;
860
+ limit: number;
861
+ reached?: boolean;
803
862
  };
804
- type FlowStep = {
805
- stepId: string;
806
- order: number;
807
- type: 'warp' | 'condition' | 'delay';
808
- warpIdentifier: string | null;
809
- dependsOn: string[] | null;
810
- inputMappings: FlowInputMapping[] | null;
811
- staticInputs: Record<string, any> | null;
812
- condition: Record<string, any> | null;
863
+ type AiCostEntry = {
864
+ id: number;
865
+ model: string | null;
866
+ agent: {
867
+ name: string;
868
+ uuid: string;
869
+ } | null;
870
+ inputTokens: number;
871
+ outputTokens: number;
872
+ totalTokens: number;
873
+ costCents: number | null;
874
+ createdAt: string;
813
875
  };
814
- type FlowInputMapping = {
815
- sourceStepId: string;
816
- sourceKey: string;
817
- targetInput: string;
818
- transform?: string;
876
+ type AiCostsSummary = {
877
+ totalCostCents: number;
878
+ totalTokens: number;
879
+ totalRequests: number;
880
+ byModel: Record<string, {
881
+ costCents: number;
882
+ tokens: number;
883
+ count: number;
884
+ }>;
819
885
  };
820
- //#endregion
821
- //#region src/user/permissions.d.ts
822
- /** Permission string values — must match joai--api `UserPermission::value`. */
823
- declare const UserPermissions: {
824
- readonly BillingManage: "billing-manage";
825
- readonly TeamManage: "team-manage";
826
- readonly TeamView: "team-view";
827
- readonly ContentEdit: "content-edit";
828
- readonly ContentPublish: "content-publish";
829
- readonly TeamMemberInvite: "team-member-invite";
830
- readonly TeamMemberRemove: "team-member-remove";
831
- readonly TeamMemberRole: "team-member-role";
832
- readonly TeamSecretView: "team-secret-view";
833
- readonly TeamSecretManage: "team-secret-manage";
834
- readonly AgentExecute: "agent-execute";
835
- readonly AgentWalletManage: "agent-wallet-manage";
836
- readonly SwarmCreate: "swarm-create";
886
+ type AiCostsResponse = {
887
+ summary: AiCostsSummary;
888
+ usages: {
889
+ data: AiCostEntry[];
890
+ pagination: {
891
+ currentPage: number;
892
+ lastPage: number;
893
+ perPage: number;
894
+ total: number;
895
+ };
896
+ };
837
897
  };
838
- type UserPermission = (typeof UserPermissions)[keyof typeof UserPermissions];
839
- declare const userPermissionValues: [UserPermission, ...UserPermission[]];
840
- declare const hasPermission: (granted: readonly UserPermission[] | undefined, required: UserPermission) => boolean;
841
- declare const hasAllPermissions: (granted: readonly UserPermission[] | undefined, required: readonly UserPermission[]) => boolean;
842
- declare const hasAnyPermissions: (granted: readonly UserPermission[] | undefined, required: readonly UserPermission[]) => boolean;
843
- declare const hasTeamPermission: (team: {
844
- permissions?: UserPermission[];
845
- } | null | undefined, permission: UserPermission) => boolean;
846
- declare const hasAllTeamPermissions: (team: {
847
- permissions?: UserPermission[];
848
- } | null | undefined, permissions: UserPermission[]) => boolean;
849
898
  //#endregion
850
- //#region src/user/roles.d.ts
851
- /** Team member roles — values must match joai--api `UserRole::toName()`. */
852
- declare const UserRoles: {
853
- readonly Owner: "owner";
854
- readonly Admin: "admin";
855
- readonly Member: "member";
856
- readonly Developer: "developer";
899
+ //#region src/json/types.d.ts
900
+ type JsonValue = string | number | boolean | null | JsonValue[] | {
901
+ [key: string]: JsonValue;
857
902
  };
858
- type UserRole = (typeof UserRoles)[keyof typeof UserRoles];
859
- declare const userRoleValues: [UserRole, ...UserRole[]];
860
- declare const isUserRole: (value: string) => value is UserRole;
861
- /** Roles assignable via team invite — owner is never inviteable. Must match API `RolePermissions::inviteable()`. */
862
- declare const InviteableTeamRoles: readonly ["member", "developer", "admin"];
863
- declare const DefaultInviteTeamRole: "member";
864
- declare const inviteableTeamRoles: () => UserRole[];
865
- /** Roles assignable to an existing member — unlike invites, ownership can be transferred. */
866
- declare const AssignableTeamRoles: readonly ["owner", "admin", "developer", "member"];
867
- declare const assignableTeamRoles: () => UserRole[];
868
- declare const defaultInviteTeamRole: () => UserRole;
869
903
  //#endregion
870
- //#region src/user/types.d.ts
871
- type UserMode = 'simple' | 'advanced';
872
- type UserInterest = 'payments' | 'health' | 'content' | 'business' | 'finance' | 'research' | 'shopping' | 'web3' | 'developer' | 'fitness' | 'ecommerce';
873
- type UserSettings = {
874
- mode: UserMode;
875
- interests: UserInterest[];
876
- hotkeys?: Record<string, string> | null;
877
- 'payout.address'?: string | null;
878
- 'payout.chain'?: string | null;
879
- 'voice.playback-mode'?: 'voice-control' | 'chat' | 'both' | null;
880
- 'voice.corrections'?: {
881
- wrong: string;
882
- correct: string;
883
- }[];
884
- 'warp.notifications'?: Record<string, Record<string, boolean>>;
885
- 'withdrawal.waiver.accepted-at'?: string | null;
886
- 'active.team'?: string | null;
887
- };
888
- type KycStatus = 'pending' | 'approved' | 'rejected';
889
- type Kyc = {
890
- status: KycStatus;
904
+ //#region src/contact/types.d.ts
905
+ type ContactHealth = 'active' | 'lukewarm' | 'cold' | 'stale' | 'unknown';
906
+ type ContactConsentStatus = 'pending' | 'confirmed' | 'superseded' | 'unsubscribed';
907
+ type ContactConsent = {
908
+ id: string;
909
+ purpose: string;
910
+ status: ContactConsentStatus;
911
+ email: string;
912
+ consentText: {
913
+ label?: string | Record<string, string>;
914
+ description?: string | Record<string, string> | null;
915
+ };
916
+ privacyUrl: string | null;
917
+ source: {
918
+ formIdentifier?: string | null;
919
+ formTitle?: string | Record<string, string> | null;
920
+ };
921
+ requestedAt: string;
922
+ confirmedAt: string | null;
923
+ unsubscribedAt: string | null;
891
924
  };
892
- type UserPrivate = {
925
+ type Contact = {
893
926
  id: string;
894
927
  name: string;
895
- email: string;
896
- hasVerifiedEmail: boolean;
897
- balance: number;
898
928
  wallets: Wallet[];
899
- hasProfileImage: boolean;
900
- profileImageUrl: string;
901
- country: string | null;
902
- timezone: string | null;
903
- socials: UserSocialAccount[];
904
- justCreated: boolean;
905
- affiliate: Affiliate | null;
906
- kyc?: Kyc | null;
907
- settings: UserSettings;
929
+ email: string | null;
930
+ phone: string | null;
931
+ company: string | null;
932
+ title: string | null;
933
+ birthday: string | null;
934
+ website: string | null;
935
+ location: string | null;
936
+ avatar: string | null;
937
+ socials: Record<string, string> | null;
938
+ notes: string | null;
939
+ tags: string[] | null;
940
+ userId: string | null;
941
+ locale?: string | null;
942
+ props?: Record<string, string> | null;
943
+ settings?: {
944
+ marketingOptOut?: boolean;
945
+ } | null;
946
+ consents?: ContactConsent[];
947
+ lastActivityAt?: string | null;
948
+ health?: ContactHealth;
949
+ nextFollowUpAt?: string | null;
950
+ followUpNote?: string | null;
951
+ team?: Team;
908
952
  };
909
- type Earning = {
910
- id: number;
911
- amount: number;
912
- type: string;
913
- description: string | null;
914
- createdAt: string;
953
+ type ContactActivityType = 'note' | 'call' | 'meeting' | 'task' | 'update' | 'custom' | 'form' | 'loyalty' | 'follow_up';
954
+ type ContactActivityAuthor = {
955
+ name: string;
956
+ imageUrl: string | null;
915
957
  };
916
- type PayoutEntry = {
917
- id: number;
918
- amount: number;
919
- status: string;
920
- tx: string | null;
921
- failureReason: string | null;
922
- processedAt: string | null;
958
+ type ContactActivity = {
959
+ id: string;
960
+ type: ContactActivityType;
961
+ description: string | null;
962
+ meta: Record<string, JsonValue> | null;
963
+ agentName: string | null;
923
964
  createdAt: string;
965
+ author?: ContactActivityAuthor | null;
924
966
  };
925
- type UserSocialAccount = {
926
- platform: string;
927
- id: string;
928
- username: string;
929
- profileUrl: string;
967
+ type ContactFormData = {
968
+ name?: string;
969
+ email?: string | null;
970
+ phone?: string | null;
971
+ company?: string | null;
972
+ title?: string | null;
973
+ birthday?: string | null;
974
+ website?: string | null;
975
+ location?: string | null;
976
+ socials?: Record<string, string> | null;
977
+ notes?: string | null;
978
+ tags?: string[] | null;
979
+ locale?: string | null;
980
+ props?: Record<string, string> | null;
981
+ settings?: {
982
+ marketingOptOut?: boolean;
983
+ };
984
+ nextFollowUpAt?: string | null;
985
+ followUpNote?: string | null;
986
+ avatar?: string[];
930
987
  };
931
- type User = {
932
- id: string;
988
+ type ContactCreatePayload = ContactFormData & {
933
989
  name: string;
934
- address: string;
935
- balance: number | null;
936
- hasProfileImage: boolean;
937
- profileImageUrl: string;
938
- swarmRole: string | null;
990
+ wallets?: WalletList;
939
991
  };
940
- type AuthUser = {
992
+ type ContactRelationType = 'parent_of' | 'child_of' | 'spouse_of' | 'sibling_of' | 'aunt_of' | 'nibling_of' | 'friend_of' | 'manages' | 'reports_to' | 'colleague_of' | 'partner_of' | 'client_of' | 'supplier_of' | 'referred_by' | 'referred';
993
+ type ContactRelationCategory = 'family' | 'social' | 'organization' | 'business' | 'referral';
994
+ type ContactRelationDirection = 'outgoing' | 'incoming';
995
+ type ContactRelationContact = {
941
996
  id: string;
942
997
  name: string;
943
- phone: string | null;
944
- email: string | null;
998
+ avatar: string | null;
999
+ company: string | null;
1000
+ title: string | null;
945
1001
  };
946
- type Affiliate = {
947
- name: string;
948
- tier: AffiliateTier;
949
- balance: number;
950
- payoutAddress: string;
951
- application: string;
952
- status: AffiliateStatus;
1002
+ type ContactRelation = {
1003
+ id: string;
1004
+ type: ContactRelationType;
1005
+ category: ContactRelationCategory;
1006
+ direction: ContactRelationDirection;
1007
+ contact: ContactRelationContact;
1008
+ meta: Record<string, JsonValue> | null;
1009
+ notes: string | null;
953
1010
  createdAt: string;
954
- inviteLinkUrl: string;
955
- settings: {
956
- minPayoutBalance: number;
957
- commissionExtraPercent?: number;
958
- customerDiscountPercent: number;
959
- };
960
- clicks: number;
961
- coupons: Coupon[];
962
- user: User | null;
963
1011
  };
964
- type AffiliateTierName = 'bronze' | 'silver' | 'gold';
965
- type AffiliateTier = {
966
- name: AffiliateTierName;
967
- displayName: string;
968
- commission: number;
969
- threshold: number;
1012
+ type ContactRelationPayload = {
1013
+ relatedContactId: string;
1014
+ type: ContactRelationType;
1015
+ notes?: string;
1016
+ meta?: Record<string, JsonValue>;
970
1017
  };
971
- type AffiliateStatus = 'pending' | 'approved' | 'rejected' | 'suspended' | 'demoted';
972
- //#endregion
973
- //#region src/team/apps.d.ts
974
- declare const NativeApps: {
975
- readonly Board: "board";
976
- readonly Shop: "shop";
977
- readonly SmartLinks: "smart-links";
978
- readonly Contacts: "contacts";
979
- readonly Forms: "forms";
980
- readonly Appointments: "appointments";
981
- readonly Workspace: "workspace";
982
- readonly Meeting: "meeting";
983
- readonly VoiceDictation: "voice-dictation";
984
- readonly Heartbeats: "heartbeats";
985
- readonly Wallets: "wallets";
986
- readonly Campaigns: "campaigns";
987
- readonly Automations: "automations";
988
- readonly News: "news";
989
- readonly Sites: "sites";
990
- readonly Contracts: "contracts";
991
- readonly Artifacts: "artifacts";
992
- readonly Social: "social";
993
- readonly Studio: "studio";
994
- readonly Loyalty: "loyalty";
995
- readonly Documents: "documents";
1018
+ type ContactRelationUpdatePayload = {
1019
+ type?: ContactRelationType;
1020
+ notes?: string;
1021
+ meta?: Record<string, JsonValue>;
996
1022
  };
997
- type NativeApp = (typeof NativeApps)[keyof typeof NativeApps];
998
- declare const nativeAppSlugs: NativeApp[];
999
- declare const isNativeApp: (value: unknown) => value is NativeApp;
1000
1023
  //#endregion
1001
- //#region src/access/team-access.d.ts
1002
- type TeamFeatureArea = 'nativeApps' | 'agentSettings' | 'teamSettings' | 'developerHub' | 'areas' | 'commerce';
1003
- type GatedFeatureArea = Exclude<TeamFeatureArea, 'nativeApps'>;
1004
- /** Keys per area that the API evaluates in `team.access`. */
1005
- type TeamAccessCatalog = Partial<Record<TeamFeatureArea, string[]>>;
1006
- type TeamAccessConfig = {
1007
- accessCatalog: TeamAccessCatalog;
1024
+ //#region src/media/types.d.ts
1025
+ type AppFileType = 'abi' | 'pdf' | 'image' | 'video' | 'json';
1026
+ type AppFile = {
1027
+ type: AppFileType;
1028
+ original: File;
1008
1029
  };
1009
- /** Resolved feature access from API `TeamPrivate.access` — do not evaluate rules on the client. */
1010
- type TeamFeatureAccess = {
1011
- nativeApps?: Partial<Record<NativeApp, boolean>>;
1012
- agentSettings?: Partial<Record<string, boolean>>;
1013
- teamSettings?: Partial<Record<string, boolean>>;
1014
- developerHub?: Partial<Record<string, boolean>>;
1015
- areas?: Partial<Record<string, boolean>>;
1016
- commerce?: Partial<Record<string, boolean>>;
1030
+ type MediaLibraryAttributes = {
1031
+ uuid: string;
1032
+ order: number;
1033
+ name: string;
1034
+ custom_properties: {
1035
+ [key: string]: JsonValue;
1036
+ };
1037
+ preview_url: null | string;
1038
+ original_url: null | string;
1039
+ extension?: string;
1040
+ size?: number;
1017
1041
  };
1018
- type TeamWithAccess = {
1019
- access?: TeamFeatureAccess | null;
1020
- accessCatalog?: TeamAccessCatalog | null;
1042
+ type MediaMime = 'image/png' | 'image/jpeg' | 'image/gif' | 'image/webp' | 'video/mp4' | 'video/webm' | 'video/quicktime' | 'video/x-msvideo' | 'audio/mpeg' | 'audio/mp3' | 'audio/ogg' | 'audio/wav' | 'audio/webm' | 'audio/aac' | 'audio/m4a' | 'audio/m4b' | 'audio/m4p' | 'audio/m4v' | 'application/pdf' | 'application/json';
1043
+ type MediaAspectRatio = 'free' | '1:1' | '16:9' | '9:16' | '4:3' | '3:4';
1044
+ type Media = {
1045
+ id: string;
1046
+ name: string;
1047
+ mime: MediaMime;
1048
+ url: string;
1049
+ library: MediaLibraryAttributes;
1050
+ tags?: string[];
1051
+ copyright?: string | null;
1052
+ aiGenerated?: boolean;
1021
1053
  };
1022
- declare const resolveAccessCatalog: (team: TeamWithAccess | null | undefined, accessConfig: TeamAccessConfig | null | undefined) => TeamAccessCatalog | null | undefined;
1023
- declare const isTeamFeatureGated: (catalog: TeamAccessCatalog | null | undefined, area: GatedFeatureArea, key: string) => boolean;
1024
- declare const isNativeAppGated: (catalog: TeamAccessCatalog | null | undefined, app: NativeApp) => boolean;
1025
- declare const isTeamFeatureAccessible: (team: TeamWithAccess | null | undefined, area: GatedFeatureArea, key: string) => boolean;
1026
- declare const isTeamFeatureLocked: (team: TeamWithAccess | null | undefined, catalog: TeamAccessCatalog | null | undefined, area: GatedFeatureArea, key: string) => boolean;
1027
- declare const isNativeAppAccessible: (team: TeamWithAccess | null | undefined, app: NativeApp) => boolean;
1028
- declare const isNativeAppLocked: (team: TeamWithAccess | null | undefined, catalog: TeamAccessCatalog | null | undefined, app: NativeApp) => boolean;
1029
- //#endregion
1030
- //#region src/team/constants.d.ts
1031
- declare const teamCategories: readonly ["general", "food-drink", "retail", "beauty-wellness", "health", "sports-fitness", "trades-services", "professional-services", "education-culture", "clubs-organizations", "leisure-tourism"];
1032
1054
  //#endregion
1033
- //#region src/team/types.d.ts
1034
- type TeamCategory = (typeof teamCategories)[number];
1035
- type TeamFeature = 'shop' | 'appointments';
1036
- type TeamMember = User & {
1037
- role: UserRole | null;
1038
- roleAcceptedAt: string | null;
1039
- email: string | null;
1055
+ //#region src/integration/types.d.ts
1056
+ type IntegrationType = 'none' | 'webhook' | 'api-token' | 'telegram' | 'slack' | 'whatsapp' | 'whatsapp-personal' | 'twilio' | 'sms' | 'n8n' | 'apple-health' | 'mcp' | 'x' | 'xchat' | 'instagram' | 'facebook' | 'linkedin' | 'grok' | 'cloudflare' | 'google-search-console' | 'email' | 'calendar' | 'embed' | 'discord' | 'github' | 'push' | 'sentry' | 'readwise';
1057
+ type IntegrationDetails = {
1058
+ type: IntegrationType;
1059
+ name: string;
1060
+ description?: string;
1061
+ logoUrl?: string;
1062
+ logoUrlDark?: string;
1063
+ slug?: string;
1064
+ category?: string;
1065
+ [key: string]: unknown;
1040
1066
  };
1041
- type TeamMeta = {
1042
- 'extra.messages'?: number;
1043
- 'limit.spending'?: number | null;
1044
- currency?: string;
1045
- 'extra.usage.enabled'?: boolean;
1046
- 'auto.reload.enabled'?: boolean;
1047
- 'auto.reload.threshold_cents'?: number | null;
1048
- 'auto.reload.amount_cents'?: number | null;
1049
- 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
1050
- 'byok.providers'?: ByokProviders | null;
1051
- 'board.auto.enabled'?: boolean;
1052
- 'payments.online'?: boolean;
1053
- 'payments.coupons'?: boolean;
1054
- 'shop.kiosk.enabled'?: boolean;
1055
- 'shop.stock.enabled'?: boolean;
1056
- 'shop.reorder.enabled'?: boolean;
1057
- 'shop.legal.terms_url'?: string | null;
1058
- 'shop.legal.privacy_url'?: string | null;
1059
- 'shop.legal.withdrawal_url'?: string | null;
1060
- 'shop.legal.imprint_url'?: string | null;
1061
- 'orders.notify_emails'?: string[];
1062
- 'orders.payment_reminders'?: boolean;
1063
- contactPropertyMaskWarp?: string;
1064
- branding?: TeamBrand | null;
1065
- settings: Record<string, unknown> & {
1066
- apps?: NativeApp[];
1067
- };
1067
+ type IntegrationMeta = {
1068
+ handle?: string; /** Channel-specific provider id (email: resend|mailgun|sendgrid, push: onesignal, …). */
1069
+ provider?: string | null;
1070
+ hookSource?: string;
1071
+ [key: string]: unknown;
1068
1072
  };
1069
- type TeamPlace = {
1070
- provider: 'google';
1071
- sourceId: string;
1072
- name: string | null;
1073
- address: string | null;
1074
- location: {
1075
- lat: number | null;
1076
- lng: number | null;
1077
- };
1078
- rating?: number | null;
1079
- reviewCount?: number | null;
1080
- websiteUrl?: string | null;
1081
- mapsUrl?: string | null;
1082
- businessStatus?: string | null;
1073
+ type IntegrationConnectionDetails = IntegrationDetails & {
1074
+ phoneNumberId?: string;
1075
+ phoneNumber?: string;
1076
+ webhookUrl?: string;
1077
+ webhookSecret?: string;
1078
+ webhookSecretKey?: string;
1083
1079
  };
1084
- type Team = {
1085
- slug: string;
1080
+ type Integration = {
1081
+ id: string;
1082
+ type: IntegrationType;
1086
1083
  name: string;
1087
- personal: boolean;
1088
- category: TeamCategory;
1089
- tags?: string[] | null;
1090
- description: TranslatableValue | null;
1091
- locale: WarpLocale;
1092
- timezone: string;
1093
- place?: TeamPlace | null;
1094
- meta?: TeamMeta;
1095
- features?: TeamFeature[];
1096
- cover?: string | null;
1097
- logo: string | null;
1098
- tagline?: TranslatableValue | null;
1099
- public: boolean;
1084
+ active: boolean;
1085
+ configured: boolean;
1100
1086
  createdAt: string;
1101
- blueprints?: Blueprint[];
1102
- flows?: Flow[];
1103
- coupons?: Coupon[];
1087
+ meta?: IntegrationMeta;
1088
+ details?: IntegrationConnectionDetails;
1089
+ };
1090
+ type SocialPlatform = 'telegram' | 'slack' | 'whatsapp' | 'sms' | 'discord' | 'github' | 'xchat' | 'instagram';
1091
+ type SocialBot = {
1092
+ name: string;
1093
+ createdAt: string;
1094
+ phoneNumberId?: string;
1095
+ phoneNumber?: string;
1096
+ applicationId?: string;
1097
+ appId?: string;
1098
+ installationId?: string;
1099
+ username?: string;
1100
+ };
1101
+ type XIntegrationStatus = {
1102
+ enabled: boolean;
1103
+ integrationId: string | null;
1104
+ xAccountLinked: boolean;
1105
+ currentAgentName: string | null;
1106
+ };
1107
+ type EmbedStatus = {
1108
+ integrationId: string;
1109
+ agentName: string;
1110
+ agentAvatar: string | null;
1111
+ active: boolean;
1112
+ allowedDomains: string[];
1113
+ };
1114
+ type EmailProvider = 'resend' | 'mailgun' | 'sendgrid';
1115
+ type CalendarProvider = 'google' | 'apple' | 'microsoft';
1116
+ type CalendarStatus = {
1117
+ connected: boolean;
1118
+ provider?: CalendarProvider;
1119
+ providerDisplayName?: string;
1120
+ accountEmail?: string;
1121
+ lastSynced?: string;
1122
+ tokenHealthy?: boolean;
1123
+ upcomingEvents?: {
1124
+ title: string;
1125
+ startAt: string;
1126
+ endAt: string;
1127
+ allDay: boolean;
1128
+ }[];
1104
1129
  };
1105
- type TeamBrand = {
1106
- bg?: string;
1107
- fg?: string;
1108
- label?: string;
1109
- logo?: string;
1110
- bankAccountHolder?: string;
1111
- bankIban?: string;
1112
- bankBic?: string;
1113
- invoiceAddress?: string;
1114
- invoiceVat?: string;
1115
- invoiceCity?: string;
1116
- invoiceZip?: string;
1117
- invoiceCountry?: string;
1130
+ //#endregion
1131
+ //#region src/agent/types.d.ts
1132
+ type AgentCharacter = {
1133
+ name: string | null;
1134
+ system: string | null;
1135
+ bio: string | null;
1118
1136
  };
1119
- type TeamPrivate = {
1120
- slug: string;
1137
+ type Agent = {
1138
+ uuid: string;
1121
1139
  name: string;
1122
- personal: boolean;
1123
- description: TranslatableValue | null;
1124
- tags?: string[] | null;
1125
- tagline: TranslatableValue | null;
1126
- balance: number;
1127
- locale: WarpLocale;
1128
- timezone: string;
1129
- place?: TeamPlace | null;
1130
- logo: string | null;
1131
- cover: string | null;
1132
- subscription: {
1133
- premium: boolean;
1134
- lifetime: boolean;
1135
- plan: Plan;
1136
- provider: PaymentProvider | null;
1137
- payer: User | null;
1138
- gracePeriod: boolean;
1139
- autoRenew: boolean;
1140
- cycleEndsAt: string | null;
1141
- resetsAt: string | null;
1142
- startedAt: string | null;
1143
- renewedAt: string | null;
1144
- expiresAt: string | null;
1145
- };
1146
- meta: TeamMeta;
1147
- branding: TeamBrand;
1148
- category: TeamCategory;
1149
- createdAt: string;
1150
- justCreated: boolean;
1151
- role?: UserRole | null;
1152
- permissions?: UserPermission[];
1153
- access?: TeamFeatureAccess;
1154
- accessCatalog?: TeamAccessCatalog;
1140
+ description: string;
1141
+ avatar: string;
1142
+ wallets: Wallet[];
1143
+ settings: AgentSettings;
1144
+ store: StoreInfo;
1145
+ character?: AgentCharacter | null;
1146
+ room: Room;
1147
+ role: string | null;
1148
+ blueprint: Blueprint | null;
1149
+ team: string;
1155
1150
  };
1156
- type ByokProviderConfig = {
1157
- apiKey?: string;
1158
- accessKey?: string;
1159
- secretKey?: string;
1151
+ type AgentPrivate = {
1152
+ uuid: string;
1153
+ name: string;
1154
+ description: string;
1155
+ avatar: string;
1156
+ wallets: Wallet[];
1157
+ settings: AgentSettings;
1158
+ store: StoreInfo;
1159
+ password: string | null;
1160
+ authKey: string | null;
1161
+ secKey: string;
1162
+ phoneNumber: string | null;
1163
+ room: Room;
1164
+ role: string | null;
1165
+ blueprint: Blueprint | null;
1166
+ justCreated?: boolean;
1167
+ team: string;
1160
1168
  };
1161
- type ByokProviders = {
1162
- openai?: ByokProviderConfig;
1163
- anthropic?: ByokProviderConfig;
1164
- google?: ByokProviderConfig;
1165
- xai?: ByokProviderConfig;
1166
- klingai?: ByokProviderConfig;
1169
+ type AgentActionHistoryEntry = {
1170
+ id: string;
1171
+ action: string | null;
1172
+ outcome: 'succeeded' | 'failed';
1173
+ outcomeDetail: string | null;
1174
+ warpIdentifier: string | null;
1175
+ meta: Record<string, unknown> | null;
1176
+ createdAt: string | null;
1167
1177
  };
1168
- type ByokProviderName = keyof ByokProviders;
1169
- type TeamSettings = {
1170
- 'extra.messages': number;
1171
- 'limit.spending': number | null;
1172
- currency: string;
1173
- 'extra.usage.enabled'?: boolean;
1174
- 'auto.reload.enabled'?: boolean;
1175
- 'auto.reload.threshold_cents'?: number | null;
1176
- 'auto.reload.amount_cents'?: number | null;
1177
- 'llm.provider'?: 'openai' | 'anthropic' | 'google' | 'xai' | null;
1178
- 'byok.providers'?: ByokProviders | null;
1179
- 'board.auto.enabled'?: boolean;
1180
- 'payments.online'?: boolean;
1181
- 'payments.coupons'?: boolean;
1182
- 'shop.kiosk.enabled'?: boolean;
1183
- 'shop.stock.enabled'?: boolean;
1184
- 'shop.reorder.enabled'?: boolean;
1185
- 'shop.legal.terms_url'?: string | null;
1186
- 'shop.legal.privacy_url'?: string | null;
1187
- 'shop.legal.withdrawal_url'?: string | null;
1188
- 'shop.legal.imprint_url'?: string | null;
1189
- 'orders.notify_emails'?: string[];
1190
- 'orders.payment_reminders'?: boolean;
1191
- branding?: TeamBrand | null;
1178
+ type AgentSimple = {
1179
+ uuid: string;
1180
+ name: string;
1181
+ avatar?: string | null;
1182
+ authKey?: string | null;
1183
+ team?: {
1184
+ slug: string;
1185
+ } | null;
1186
+ settings?: Pick<AgentSettings, 'auto'>;
1192
1187
  };
1193
- type TeamUsage = Partial<Record<PlanFeature, TeamFeatureUsage>> & {
1194
- extraUsageEnabled?: boolean;
1195
- currentSpending?: number;
1196
- walletCloudUsed?: number;
1197
- walletCloudPremiumUsed?: number;
1198
- spendingLimit?: number | null;
1199
- cycleEndsAt?: string | null;
1200
- resetsAt?: string | null;
1201
- autoReload?: {
1202
- enabled: boolean;
1203
- thresholdCents: number | null;
1204
- amountCents: number | null;
1205
- };
1188
+ type AgentWalletMode = 'local' | 'cloud' | 'external';
1189
+ type AgentEngine = 'cortex' | 'openclaw';
1190
+ type AgentGender = 'male' | 'female' | 'neutral';
1191
+ type AgentTrustedActionRule = {
1192
+ id: string;
1193
+ hash: string;
1194
+ match?: Record<string, string>;
1195
+ identifier?: string;
1196
+ title?: string;
1206
1197
  };
1207
- type TeamFeatureUsage = {
1208
- current: number;
1209
- limit: number;
1210
- reached?: boolean;
1198
+ type AgentSettings = {
1199
+ auto: boolean;
1200
+ 'model.url': string;
1201
+ 'voice.output': boolean;
1202
+ 'voice.id': string | null;
1203
+ 'agent.gender'?: AgentGender;
1204
+ 'proactivity.enabled': boolean;
1205
+ 'proactivity.quietHoursStart'?: number;
1206
+ 'proactivity.quietHoursEnd'?: number;
1207
+ 'proactivity.maxMessagesPerDay'?: number;
1208
+ 'proactivity.timezone'?: string;
1209
+ 'proactivity.blockedBehaviors'?: string[];
1210
+ engine: AgentEngine;
1211
+ 'training.url'?: string | null;
1212
+ 'training.status'?: 'idle' | 'training' | 'completed' | 'failed' | null;
1213
+ 'training.recrawlInterval'?: number | null;
1214
+ 'email_provider'?: EmailProvider | null;
1211
1215
  };
1212
- type AiCostEntry = {
1213
- id: number;
1214
- model: string | null;
1215
- agent: {
1216
- name: string;
1217
- uuid: string;
1218
- } | null;
1219
- inputTokens: number;
1220
- outputTokens: number;
1221
- totalTokens: number;
1222
- costCents: number | null;
1223
- createdAt: string;
1216
+ type LocalAgentWallet = {
1217
+ provider: WarpWalletProvider;
1218
+ address: string;
1219
+ mnemonic?: string | null;
1220
+ privateKey?: string | null;
1224
1221
  };
1225
- type AiCostsSummary = {
1226
- totalCostCents: number;
1227
- totalTokens: number;
1228
- totalRequests: number;
1229
- byModel: Record<string, {
1230
- costCents: number;
1231
- tokens: number;
1232
- count: number;
1233
- }>;
1222
+ type AgentExecuteHandler = (prompt: string, options?: AgentExecuteOptions) => void;
1223
+ type AgentExecuteOptions = {
1224
+ audio?: File;
1225
+ sender?: string;
1226
+ media?: Media[];
1227
+ ghost?: boolean;
1228
+ context?: Record<string, unknown>;
1234
1229
  };
1235
- type AiCostsResponse = {
1236
- summary: AiCostsSummary;
1237
- usages: {
1238
- data: AiCostEntry[];
1239
- pagination: {
1240
- currentPage: number;
1241
- lastPage: number;
1242
- perPage: number;
1243
- total: number;
1244
- };
1245
- };
1230
+ //#endregion
1231
+ //#region src/room/types.d.ts
1232
+ type RoomId = string;
1233
+ type RoomKind = 'default' | 'phone' | 'meeting';
1234
+ type Room = {
1235
+ id: string;
1236
+ name: string;
1237
+ description: string | null;
1238
+ public: boolean;
1239
+ default: boolean;
1240
+ active: boolean;
1241
+ kind?: RoomKind | null;
1242
+ archivedAt?: string | null;
1243
+ secKey: string | null;
1244
+ createdAt: string | null;
1245
+ contactId?: string | null;
1246
+ agent: AgentSimple;
1247
+ integration: Integration | null;
1246
1248
  };
1247
1249
  //#endregion
1248
1250
  //#region src/meeting/types.d.ts
@@ -4540,6 +4542,7 @@ type Install = {
4540
4542
  appBundleId: string | null;
4541
4543
  userId: string | null;
4542
4544
  contactId: string | null;
4545
+ contactName?: string | null;
4543
4546
  lastSeenAt: string | null;
4544
4547
  createdAt: string | null;
4545
4548
  updatedAt: string | null;
@@ -4567,7 +4570,8 @@ type InstallOptOutPayload = {
4567
4570
  };
4568
4571
  //#endregion
4569
4572
  //#region src/segment/types.d.ts
4570
- type SegmentConditionType = 'tag' | 'has_email' | 'has_phone' | 'has_user' | 'last_purchase_after' | 'last_purchase_before' | 'total_order_amount' | 'order_count_at_least' | 'never_purchased' | 'avg_order_value_at_least' | 'last_contact_after' | 'last_contact_before' | 'waiting_on' | 'created_after' | 'created_before' | 'email_contains' | 'prop' | 'marketing_opt_out';
4573
+ type SegmentConditionType = 'tag' | 'has_email' | 'has_phone' | 'has_user' | 'has_install' | 'install_push_status' | 'last_purchase_after' | 'last_purchase_before' | 'total_order_amount' | 'order_count_at_least' | 'never_purchased' | 'avg_order_value_at_least' | 'last_contact_after' | 'last_contact_before' | 'waiting_on' | 'created_after' | 'created_before' | 'email_contains' | 'prop' | 'marketing_opt_out';
4574
+ type InstallPushStatusValue = 'subscribed' | 'opted_out' | 'unavailable';
4571
4575
  type SegmentCondition = {
4572
4576
  type: SegmentConditionType;
4573
4577
  value: string | boolean;
@@ -4607,9 +4611,12 @@ type CampaignSkipReasons = Record<CampaignSkipReason, number>;
4607
4611
  type CampaignRecipientStatus = 'sent' | 'failed' | 'skipped' | 'pending';
4608
4612
  type CampaignRecipient = {
4609
4613
  id: string;
4614
+ kind?: 'contact' | 'install';
4610
4615
  name: string | null;
4611
4616
  email: string | null;
4612
4617
  phone: string | null;
4618
+ platform?: string | null;
4619
+ pushStatus?: string | null;
4613
4620
  status: CampaignRecipientStatus;
4614
4621
  error: string | null;
4615
4622
  skipReason: CampaignSkipReason | null;
@@ -4648,6 +4655,7 @@ type Campaign = {
4648
4655
  tags: string[];
4649
4656
  segmentId?: string | null;
4650
4657
  contactIds?: string[];
4658
+ installIds?: string[];
4651
4659
  status: CampaignStatus;
4652
4660
  totalCount: number;
4653
4661
  remainingCount: number;
@@ -4688,6 +4696,21 @@ type CampaignUpdatePayload = {
4688
4696
  contactIds?: string[];
4689
4697
  segmentId?: string;
4690
4698
  };
4699
+ /** Test-send from the create/edit form without saving a campaign row. */
4700
+ type CampaignSendTestDraftPayload = {
4701
+ channel: 'email' | 'push';
4702
+ name?: string;
4703
+ subject?: string;
4704
+ content: string;
4705
+ contentHtml?: boolean;
4706
+ language?: string;
4707
+ category?: CampaignCategory;
4708
+ templateParams?: Record<string, string>;
4709
+ aiParams?: Record<string, string>;
4710
+ agentId?: string;
4711
+ contactId?: string;
4712
+ installId?: string;
4713
+ };
4691
4714
  type CampaignAudiencePreviewPayload = {
4692
4715
  campaignId: string;
4693
4716
  } | {
@@ -5097,4 +5120,4 @@ type CliSessionStatus = {
5097
5120
  meta: CliSessionMeta | null;
5098
5121
  };
5099
5122
  //#endregion
5100
- export { AUTOMATION_SEND_CHANNELS, Achievement, Address, AddressCreatePayload, AddressInput, AddressSnapshot, type AddressType, AddressTypes, AddressUpdatePayload, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSetupTarget, AgentSimple, AgentToolingAccess, AgentTrustedActionRule, AgentWalletMode, AggregatedRoute, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppAccessRule, AppEnv, AppFile, AppFileType, AppIngestion, AppSetupTarget, AppendKvEntryResult, AppointmentAvailability, AppointmentAvailabilityService, AppointmentAvailabilitySlot, AppointmentBooking, AppointmentBookingContext, AppointmentPolicy, AppointmentPolicySync, AppointmentPolicyUpsert, AppointmentRequest, AppointmentSlot, Artifact, ArtifactBlock, ArtifactBlockType, ArtifactContactSummary, ArtifactCreatePayload, ArtifactDeliverIntegration, ArtifactDeliverPayload, ArtifactDelivery, ArtifactDeliveryPreview, ArtifactLink, ArtifactStatus, ArtifactType, ArtifactUpdatePayload, AssignableTeamRoles, AuthUser, Automation, AutomationAction, AutomationActionConfig, AutomationActionInput, AutomationActionType, AutomationAudiencePreview, AutomationCreatePayload, AutomationEnrollment, AutomationEnrollmentChange, AutomationEnrollmentStatus, AutomationEnrollmentUpdatedPayload, AutomationSendChannel, AutomationSendChannelId, AutomationSkipReason, AutomationStats, AutomationTriggerConfig, AutomationTriggerType, AutomationUpdatePayload, BillingManageAccess, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CAMPAIGN_CHANNELS, CONTACT_MESSAGE_SEND_WARP, CalendarProvider, CalendarStatus, Campaign, CampaignApproval, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCategory, CampaignChannel, CampaignChannelId, CampaignCreatePayload, CampaignRecipient, CampaignRecipientStatus, CampaignSkipReason, CampaignSkipReasons, CampaignStats, CampaignStatus, CampaignUpdatePayload, Card, Cart, CartItem, CartLine, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CheckoutSnapshot, CheckoutSnapshotRequest, CliSessionMeta, CliSessionStatus, CommissionAgreement, Configuration, Contact, ContactActivity, ContactActivityAuthor, ContactActivityType, ContactConsent, ContactConsentStatus, ContactCreatePayload, ContactFormData, ContactHealth, ContactRelation, ContactRelationCategory, ContactRelationContact, ContactRelationDirection, ContactRelationPayload, ContactRelationType, ContactRelationUpdatePayload, ContactViewable, Content, ContentDefinition, ContentEntry, ContentField, ContentFieldType, ContentPatch, ContentStatus, ContentValue, ContentVersion, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, Coupon, CouponCondition, CouponRestrictedItem, CouponRestrictedItemType, CreateContentInput, CreateHookPayload, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, DefaultAppLocale, DefaultCodeMetadata, DefaultInviteTeamRole, DemoFlow, DemoMessage, Desk, DeskItem, DeskItemRole, Document, EarnResponse, Earning, Element, ElementSpec, ElementType, ElementVariation, EmailProvider, EmbedStatus, EncryptionStatus, Entity, EntityDirectExecuteRequest, EntityProposable, EntitySignable, EntityTemplate, Experience, FeatureSetupTarget, FileInfo, FileMetadata, Flow, FlowCategory, FlowInputMapping, FlowStatus, FlowStep, Fulfillment, FulfillmentFlowAction, FulfillmentFlowStep, FulfillmentLocation, type FulfillmentMethod, FulfillmentMethods, type FulfillmentStatus, FulfillmentStatuses, GamificationData, GamificationEventType, Goal, GoalCreatePayload, GoalPriority, GoalProgressViewable, GoalStatus, GuestBuyer, HintOptions, HintPosition, Hook, HookSample, HookTrigger, HookTriggerCondition, HookTriggerInput, HttpService, IAppResponse, IHttpService, INTERNAL_HOOK_TRIGGER_EVENTS, IRequestOptions, ImageCompressionOptions, ImageCropOptions, ImageCropRectangle, ImageCropState, ImageDimensionRules, ImageDimensions, IngestionSourceType, IngestionStatus, Inquiry, InquiryStatus, InquiryType, Install, InstallClaimPayload, InstallOptOutPayload, InstallPlatform, InstallPushStatus, InstallRegisterPayload, Integration, IntegrationConnectionDetails, IntegrationDetails, IntegrationMeta, IntegrationType, Intent, InternalHookTriggerEvent, InviteableTeamRoles, Item, ItemCreatePayload, ItemExecutionStatus, ItemPriority, ItemStatus, ItemUpdatePayload, ItemViewable, JoaiUrls, JsonValue, KvEntry, KvEntryPayload, KvField, KvFieldWithEntries, KvValue, Kyc, KycStatus, Link, LinkCreatePayload, LinkScanHistory, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LocalAgentWallet, LoyaltyAccount, LoyaltyCollectCodeRotation, LoyaltyCollectLimit, LoyaltyCollectPoint, LoyaltyCollectPointInput, LoyaltyCollectResponse, LoyaltyJoinResponse, LoyaltyMember, LoyaltyNextTier, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyStatus, LoyaltyTier, LoyaltyTierInfo, LoyaltyTransaction, LoyaltyWalletAccount, McpToolCall, McpToolCallBroadcast, McpToolCallStatus, Media, MediaAspectRatio, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaMime, Meeting, MeetingConferenceProvider, MeetingFeature, MeetingJoinInfo, MeetingJoinTeam, MeetingParticipant, MeetingSessionState, MeetingSpeakerAssignment, MeetingStatus, MeetingSummary, MeetingTranscriptEntry, MeetingUsage, Memory, Message, MessageId, MessageRole, Metric, MetricSource, MetricsResult, Milestone, MilestoneType, Mission, MissionBudget, MissionCreatePayload, MissionPlan, MissionPriority, MissionSchedule, MissionStatus, MissionViewable, MollieTerminalPaymentResult, MultimodalContent, MultimodalFile, NATIVE_AUTH_TOKEN_PARAM, NativeApp, NativeApps, Notification, NotificationAction, NotificationAgent, NotificationChannel, NotificationSetting, OG_IMAGE_CONFIG, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH, ORDER_FULFILLMENT_STATUSES, ORDER_POST_CHECKOUT_STATUSES, OUTBOUND_CHANNELS, OfficeAgent, OfficeEntity, OfficeEntityKind, OfficeLiveOverrides, OfficeMember, OfficeSnapshot, OfficeStatus, OfficeStatusFilter, OfficeTypeFilter, OgImageColors, Order, OrderConfigurationItem, OrderContext, OrderItem, OrderPriceMode, OrderSource, OrderStatus, OrderStatusDisplay, OrderType, OutboundChannel, OutboundChannelId, PLATFORM_CURRENCY, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PermissionPresetName, PermissionPresetNames, PersonaQuestionable, PickupNextAction, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductDetailKind, ProductDetailRow, ProductDetailSection, ProductDetailText, ProductDiscount, ProductMeta, ProductPieces, ProductRating, ProductRelation, ProductRelationType, ProductVariation, ProductVariationMeta, ProductVariationType, ProgramSettings, Project, ProjectAspectRatio, ProjectAssembly, ProjectCaptionStyle, ProjectClipCandidate, ProjectClips, ProjectExport, ProjectExportAsset, ProjectExportResponse, ProjectImages, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectPlan, ProjectRender, ProjectRenderMode, ProjectSelectedClip, ProjectShot, ProjectSoundtrack, ProjectSourceMedia, ProjectStatus, ProjectStudioHistoryEntry, ProjectStudioQuestion, ProjectStudioResponse, ProjectStudioStage, ProjectStudioState, ProjectStudioSummary, ProjectStyleDirection, ProjectTranscript, ProjectTranscriptSegment, Proposal, ProposalAction, ProposalActionPayment, ProposalActionPaymentSerializable, ProposalActionSerializable, ProposalPollOption, ProposalStatus, PublicFormResults, PurchaseOptions, PurchaseResult, PushProvider, RETURNABLE_FULFILLMENT_STATUSES, RampProvider, RampProviderInfo, Reactions, RecentExperience, RedeemResponse, Reminder, Return, ReturnCreatePayload, type ReturnStatus, ReturnStatuses, ReturnUpdateStatus, ReturnUpdateStatuses, ReturnableItem, Room, RoomId, RoomKind, ScInfo, SchedulePreset, SecretAuthorizable, SecretSettable, Segment, SegmentCondition, SegmentConditionType, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, SegmentGroup, SendableActivityUpdate, SendableAgentAction, SendableAgentMessage, SendableAgentThought, SendableMedia, SendableUserMessage, Service, SetKvEntryResult, SharedSocialPost, ShippingCarrierOption, ShippingRate, ShippingZone, Shortcut, Site, SiteAgent, SiteBrand, SiteRoute, SiteTeam, SiteType, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, SocialPost, SocialPostAccount, SocialPostConnection, SocialPostCreatePayload, SocialPostGenerateCaptionPayload, SocialPostGeneratedCaption, SocialPostPlatform, SocialPostStatus, SocialPostUpdatePayload, StampResponse, StoreAgent, StoreCheckoutItem, StoreData, StoreEntityType, StoreInfo, StoreItem, StoreListing, StorePriceTier, StorePricing, StorePurchasable, StorePurchaseResult, Streak, Subscription, SubscriptionDelivery, SubscriptionInterval, SubscriptionPlan, SubscriptionStatus, SupportedAppLocale, SupportedAppLocales, Swarm, Tag, TagType, Task, TaxBreakdownRow, TaxClass, Team, TeamAccessCatalog, TeamAccessConfig, TeamBrand, TeamCategory, TeamCurrencySource, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureAccess, TeamFeatureArea, TeamFeatureUsage, TeamManageAccess, TeamMember, TeamMeta, TeamOrderStats, TeamPayout, TeamPayoutAddress, TeamPlace, TeamPrivate, TeamSettings, TeamUsage, TeamViewAccess, TerminalConnectionToken, TerminalPaymentIntent, Tier, TierFeature, TierName, ToggleKvFieldResult, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, TranslatableValue, UNIFIED_MCP_SERVER_NAME, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateStatus, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeSourceType, UpgradeStatus, User, UserInterest, UserMode, type UserPermission, UserPermissions, UserPrivate, type UserRole, UserRoles, UserSettings, UserSocialAccount, UserStats, VolumePrice, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpExecutionBackend, WarpExtras, WarpExtrasFaq, WarpInputable, WarpScreenshotVariant, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, addressTypeValues, assignableTeamRoles, automationSendChannel, buildAgentMcpServerName, buildAgentSetupClipboardText, buildAppSetupClipboardText, buildFeatureSetupClipboardText, buildMcpServerName, buildReturnCreatePayloads, canOpenFulfillmentFlow, canTransitionOrderStatus, cartLineTotal, cartPayableTotal, containedImageDimensions, createCursorMcpInstallLink, cropOutputDimensions, defaultInviteTeamRole, documentShareUrl, firstValidationMessage, formatAddressSnapshotLines, fulfillmentMethodValues, fulfillmentStatusValues, getAgentSetupPromptUrl, getAgentsBaseUrl, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getDigestBaseUrl, getDocumentsBaseUrl, getEditableOrderStatuses, getFormsBaseUrl, getFulfillmentFlowAction, getFulfillmentFlowStepperIndex, getGenBaseUrl, getInvoiceEditableStatuses, getLoginUrl, getMcpServerAgentUrl, getMcpServerUrl, getPickupEditableStatuses, getPickupNextAction, getReturnRefundAmount, getReturnableItems, getShippingEditableStatuses, getSiteUrl, getSitesBaseUrl, getSitesRootDomain, getStoreBaseUrl, getWarpScreenshotUrl, hasAllPermissions, hasAllTeamPermissions, hasAnyPermissions, hasPermission, hasTeamPermission, imageCropRectangle, integrationSlugForChannel, inviteableTeamRoles, isAutomationSendChannelId, isCampaignChannelId, isCompleteAddressInput, isContactMessageAction, isContactMessageWarpId, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isNativeApp, isNativeAppAccessible, isNativeAppGated, isNativeAppLocked, isOrderCanceled, isOrderInFulfillment, isOrderPending, isOrderPostCheckout, isPickupOrderReady, isPickupReady, isSupportedAppLocale, isTeamFeatureAccessible, isTeamFeatureGated, isTeamFeatureLocked, isUnifiedMcpUrl, isUserRole, localize, nativeAppSlugs, normalizeAutomationActionType, ogImageUrl, outboundChannel, permissionPresetRules, resolveAccessCatalog, resolveAgentMcpUrl, resolveConnectMcpUrl, resolveFulfillmentFlowStep, resolveOrderStatusDisplay, resolveTeamCurrency, resolveWarpText, returnStatusValues, returnUpdateStatusValues, sanitizeAlphanumeric, sanitizeNumeric, slugifyMcpSegment, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, userPermissionValues, userRoleValues, validateImageDimensions, validationMessageFor, withRetry };
5123
+ export { AUTOMATION_SEND_CHANNELS, Achievement, Address, AddressCreatePayload, AddressInput, AddressSnapshot, type AddressType, AddressTypes, AddressUpdatePayload, Affiliate, AffiliateStatus, AffiliateTier, AffiliateTierName, Agent, AgentActionHistoryEntry, AgentCharacter, AgentDelegatable, AgentEngine, AgentExecuteHandler, AgentExecuteOptions, AgentGender, AgentMessageMeta, AgentMessageOptions, AgentPrivate, AgentSettings, AgentSetupTarget, AgentSimple, AgentToolingAccess, AgentTrustedActionRule, AgentWalletMode, AggregatedRoute, AiCostEntry, AiCostsResponse, AiCostsSummary, Alert, ApiToken, AppAccessRule, AppEnv, AppFile, AppFileType, AppIngestion, AppSetupTarget, AppendKvEntryResult, AppointmentAvailability, AppointmentAvailabilityService, AppointmentAvailabilitySlot, AppointmentBooking, AppointmentBookingContext, AppointmentPolicy, AppointmentPolicySync, AppointmentPolicyUpsert, AppointmentRequest, AppointmentSlot, Artifact, ArtifactBlock, ArtifactBlockType, ArtifactContactSummary, ArtifactCreatePayload, ArtifactDeliverIntegration, ArtifactDeliverPayload, ArtifactDelivery, ArtifactDeliveryPreview, ArtifactLink, ArtifactStatus, ArtifactType, ArtifactUpdatePayload, AssignableTeamRoles, AuthUser, Automation, AutomationAction, AutomationActionConfig, AutomationActionInput, AutomationActionType, AutomationAudiencePreview, AutomationCreatePayload, AutomationEnrollment, AutomationEnrollmentChange, AutomationEnrollmentStatus, AutomationEnrollmentUpdatedPayload, AutomationSendChannel, AutomationSendChannelId, AutomationSkipReason, AutomationStats, AutomationTriggerConfig, AutomationTriggerType, AutomationUpdatePayload, BillingManageAccess, Blueprint, BlueprintOnboardingStep, BlueprintRedirect, BlueprintSettings, BlueprintShortcut, BlueprintTask, BlueprintTeam, BoardSummaryViewable, BookmarkEntry, BrandBackend, BrandIntegration, BrandIntegrationAction, BrandIntegrationProvider, BrandSearchHit, BrandSiteConfig, BrandSourceConfig, Budget, ByokProviderConfig, ByokProviderName, ByokProviders, CAMPAIGN_CHANNELS, CONTACT_MESSAGE_SEND_WARP, CalendarProvider, CalendarStatus, Campaign, CampaignApproval, CampaignAudiencePreview, CampaignAudiencePreviewPayload, CampaignCategory, CampaignChannel, CampaignChannelId, CampaignCreatePayload, CampaignRecipient, CampaignRecipientStatus, CampaignSendTestDraftPayload, CampaignSkipReason, CampaignSkipReasons, CampaignStats, CampaignStatus, CampaignUpdatePayload, Card, Cart, CartItem, CartLine, Challenge, Challenges, ChangelogEntry, Character, ChatClientAction, ChatClientThought, ChatStreamData, ChatStreamEventType, CheckoutSnapshot, CheckoutSnapshotRequest, CliSessionMeta, CliSessionStatus, CommissionAgreement, Configuration, Contact, ContactActivity, ContactActivityAuthor, ContactActivityType, ContactConsent, ContactConsentStatus, ContactCreatePayload, ContactFormData, ContactHealth, ContactRelation, ContactRelationCategory, ContactRelationContact, ContactRelationDirection, ContactRelationPayload, ContactRelationType, ContactRelationUpdatePayload, ContactViewable, Content, ContentDefinition, ContentEntry, ContentField, ContentFieldType, ContentPatch, ContentStatus, ContentValue, ContentVersion, Contract, ContractCategoryDisplayNames, ContractCategoryName, ContractCodeMetadata, ContractEntity, ContractOnNetwork, ContractVersion, ContractsAddressConfig, CortexExecuteOptions, Coupon, CouponCondition, CouponRestrictedItem, CouponRestrictedItemType, CreateContentInput, CreateHookPayload, CreateInboundHookPayload, CreateInternalHookPayload, CreateKvFieldPayload, CreateWarpLinkedHookPayload, CreateWebHookPayload, DefaultAppLocale, DefaultCodeMetadata, DefaultInviteTeamRole, DemoFlow, DemoMessage, Desk, DeskItem, DeskItemRole, Document, EarnResponse, Earning, Element, ElementSpec, ElementType, ElementVariation, EmailProvider, EmbedStatus, EncryptionStatus, Entity, EntityDirectExecuteRequest, EntityProposable, EntitySignable, EntityTemplate, Experience, FeatureSetupTarget, FileInfo, FileMetadata, Flow, FlowCategory, FlowInputMapping, FlowStatus, FlowStep, Fulfillment, FulfillmentFlowAction, FulfillmentFlowStep, FulfillmentLocation, type FulfillmentMethod, FulfillmentMethods, type FulfillmentStatus, FulfillmentStatuses, GamificationData, GamificationEventType, Goal, GoalCreatePayload, GoalPriority, GoalProgressViewable, GoalStatus, GuestBuyer, HintOptions, HintPosition, Hook, HookSample, HookTrigger, HookTriggerCondition, HookTriggerInput, HttpService, IAppResponse, IHttpService, INTERNAL_HOOK_TRIGGER_EVENTS, IRequestOptions, ImageCompressionOptions, ImageCropOptions, ImageCropRectangle, ImageCropState, ImageDimensionRules, ImageDimensions, IngestionSourceType, IngestionStatus, Inquiry, InquiryStatus, InquiryType, Install, InstallClaimPayload, InstallOptOutPayload, InstallPlatform, InstallPushStatus, InstallPushStatusValue, InstallRegisterPayload, Integration, IntegrationConnectionDetails, IntegrationDetails, IntegrationMeta, IntegrationType, Intent, InternalHookTriggerEvent, InviteableTeamRoles, Item, ItemCreatePayload, ItemExecutionStatus, ItemPriority, ItemStatus, ItemUpdatePayload, ItemViewable, JoaiUrls, JsonValue, KvEntry, KvEntryPayload, KvField, KvFieldWithEntries, KvValue, Kyc, KycStatus, Link, LinkCreatePayload, LinkScanHistory, LinkStats, LinkUpdatePayload, LinkVariation, LinkVariationBatchCreatePayload, LinkVariationCreatePayload, LocalAgentWallet, LoyaltyAccount, LoyaltyCollectCodeRotation, LoyaltyCollectLimit, LoyaltyCollectPoint, LoyaltyCollectPointInput, LoyaltyCollectResponse, LoyaltyJoinResponse, LoyaltyMember, LoyaltyNextTier, LoyaltyProgram, LoyaltyPromotion, LoyaltyReward, LoyaltyStatus, LoyaltyTier, LoyaltyTierInfo, LoyaltyTransaction, LoyaltyWalletAccount, McpToolCall, McpToolCallBroadcast, McpToolCallStatus, Media, MediaAspectRatio, MediaAttributes, MediaItems, MediaLibraryAttributes, MediaMime, Meeting, MeetingConferenceProvider, MeetingFeature, MeetingJoinInfo, MeetingJoinTeam, MeetingParticipant, MeetingSessionState, MeetingSpeakerAssignment, MeetingStatus, MeetingSummary, MeetingTranscriptEntry, MeetingUsage, Memory, Message, MessageId, MessageRole, Metric, MetricSource, MetricsResult, Milestone, MilestoneType, Mission, MissionBudget, MissionCreatePayload, MissionPlan, MissionPriority, MissionSchedule, MissionStatus, MissionViewable, MollieTerminalPaymentResult, MultimodalContent, MultimodalFile, NATIVE_AUTH_TOKEN_PARAM, NativeApp, NativeApps, Notification, NotificationAction, NotificationAgent, NotificationChannel, NotificationSetting, OG_IMAGE_CONFIG, OG_IMAGE_HEIGHT, OG_IMAGE_WIDTH, ORDER_FULFILLMENT_STATUSES, ORDER_POST_CHECKOUT_STATUSES, OUTBOUND_CHANNELS, OfficeAgent, OfficeEntity, OfficeEntityKind, OfficeLiveOverrides, OfficeMember, OfficeSnapshot, OfficeStatus, OfficeStatusFilter, OfficeTypeFilter, OgImageColors, Order, OrderConfigurationItem, OrderContext, OrderItem, OrderPriceMode, OrderSource, OrderStatus, OrderStatusDisplay, OrderType, OutboundChannel, OutboundChannelId, PLATFORM_CURRENCY, PaginatedResponse, Pass, PatchContentInput, PaymentAccount, PaymentAccountOnboarding, PaymentProvider, PayoutEntry, PeriodTypeLabels, PeriodTypeOptions, PermissionConfigType, PermissionPresetName, PermissionPresetNames, PersonaQuestionable, PickupNextAction, Plan, PlanBenefit, PlanExtra, PlanFeature, PlanInterval, PolicyMethod, PolicySetting, PricingModel, Product, ProductDetailKind, ProductDetailRow, ProductDetailSection, ProductDetailText, ProductDiscount, ProductMeta, ProductPieces, ProductRating, ProductRelation, ProductRelationType, ProductVariation, ProductVariationMeta, ProductVariationType, ProgramSettings, Project, ProjectAspectRatio, ProjectAssembly, ProjectCaptionStyle, ProjectClipCandidate, ProjectClips, ProjectExport, ProjectExportAsset, ProjectExportResponse, ProjectImages, ProjectInputAssistIntent, ProjectInputAssistResponse, ProjectMutation, ProjectOutputPreset, ProjectOutputType, ProjectPlan, ProjectRender, ProjectRenderMode, ProjectSelectedClip, ProjectShot, ProjectSoundtrack, ProjectSourceMedia, ProjectStatus, ProjectStudioHistoryEntry, ProjectStudioQuestion, ProjectStudioResponse, ProjectStudioStage, ProjectStudioState, ProjectStudioSummary, ProjectStyleDirection, ProjectTranscript, ProjectTranscriptSegment, Proposal, ProposalAction, ProposalActionPayment, ProposalActionPaymentSerializable, ProposalActionSerializable, ProposalPollOption, ProposalStatus, PublicFormResults, PurchaseOptions, PurchaseResult, PushProvider, RETURNABLE_FULFILLMENT_STATUSES, RampProvider, RampProviderInfo, Reactions, RecentExperience, RedeemResponse, Reminder, Return, ReturnCreatePayload, type ReturnStatus, ReturnStatuses, ReturnUpdateStatus, ReturnUpdateStatuses, ReturnableItem, Room, RoomId, RoomKind, ScInfo, SchedulePreset, SecretAuthorizable, SecretSettable, Segment, SegmentCondition, SegmentConditionType, SegmentCountPayload, SegmentCountResult, SegmentCreatePayload, SegmentGroup, SendableActivityUpdate, SendableAgentAction, SendableAgentMessage, SendableAgentThought, SendableMedia, SendableUserMessage, Service, SetKvEntryResult, SharedSocialPost, ShippingCarrierOption, ShippingRate, ShippingZone, Shortcut, Site, SiteAgent, SiteBrand, SiteRoute, SiteTeam, SiteType, Skill, SkillMediaBindingRole, SkillMediaBindingRoleValue, SkillScope, SkillScopeValue, SkillType, SkillTypeValue, SocialAuthProvider, SocialBot, SocialPlatform, SocialPost, SocialPostAccount, SocialPostConnection, SocialPostCreatePayload, SocialPostGenerateCaptionPayload, SocialPostGeneratedCaption, SocialPostPlatform, SocialPostStatus, SocialPostUpdatePayload, StampResponse, StoreAgent, StoreCheckoutItem, StoreData, StoreEntityType, StoreInfo, StoreItem, StoreListing, StorePriceTier, StorePricing, StorePurchasable, StorePurchaseResult, Streak, Subscription, SubscriptionDelivery, SubscriptionInterval, SubscriptionPlan, SubscriptionStatus, SupportedAppLocale, SupportedAppLocales, Swarm, Tag, TagType, Task, TaxBreakdownRow, TaxClass, Team, TeamAccessCatalog, TeamAccessConfig, TeamBrand, TeamCategory, TeamCurrencySource, TeamEarning, TeamEarningsBalance, TeamFeature, TeamFeatureAccess, TeamFeatureArea, TeamFeatureUsage, TeamManageAccess, TeamMember, TeamMeta, TeamOrderStats, TeamPayout, TeamPayoutAddress, TeamPlace, TeamPrivate, TeamSettings, TeamUsage, TeamViewAccess, TerminalConnectionToken, TerminalPaymentIntent, Tier, TierFeature, TierName, ToggleKvFieldResult, TranscriptEntry, TranscriptionCorrection, TranscriptionResponse, TranslatableValue, UNIFIED_MCP_SERVER_NAME, Update, UpdateCreatePayload, UpdateRelation, UpdateStats, UpdateStatus, UpdateType, UpdateUpdatePayload, Upgrade, UpgradeSourceType, UpgradeStatus, User, UserInterest, UserMode, type UserPermission, UserPermissions, UserPrivate, type UserRole, UserRoles, UserSettings, UserSocialAccount, UserStats, VolumePrice, Wallet, WalletList, WarpApprovable, WarpBackend, WarpBackendStatus, WarpBatchItem, WarpBatchable, WarpCloudExecutable, WarpCreateable, WarpExecutable, WarpExecutionBackend, WarpExtras, WarpExtrasFaq, WarpInputable, WarpScreenshotVariant, WarpSearchHit, WarpSelectable, WarpSelectableDetails, WarpSuggestion, WarpTestable, WarpViewable, WebHookTriggerEvent, WorkspaceCloudFile, WorkspaceContext, WorkspaceInfo, WorkspaceSettings, XIntegrationStatus, abbreviateNumber, addressTypeValues, assignableTeamRoles, automationSendChannel, buildAgentMcpServerName, buildAgentSetupClipboardText, buildAppSetupClipboardText, buildFeatureSetupClipboardText, buildMcpServerName, buildReturnCreatePayloads, canOpenFulfillmentFlow, canTransitionOrderStatus, cartLineTotal, cartPayableTotal, containedImageDimensions, createCursorMcpInstallLink, cropOutputDimensions, defaultInviteTeamRole, documentShareUrl, firstValidationMessage, formatAddressSnapshotLines, fulfillmentMethodValues, fulfillmentStatusValues, getAgentSetupPromptUrl, getAgentsBaseUrl, getApiBaseUrl, getAppBaseUrl, getAssetAppLogoUrl, getAssetChainLogoUrl, getAssetPartnerLogoUrl, getAssetTokenLogoUrl, getAssetWalletLogoUrl, getCortexBaseUrl, getDigestBaseUrl, getDocumentsBaseUrl, getEditableOrderStatuses, getFormsBaseUrl, getFulfillmentFlowAction, getFulfillmentFlowStepperIndex, getGenBaseUrl, getInvoiceEditableStatuses, getLoginUrl, getMcpServerAgentUrl, getMcpServerUrl, getPickupEditableStatuses, getPickupNextAction, getReturnRefundAmount, getReturnableItems, getShippingEditableStatuses, getSiteUrl, getSitesBaseUrl, getSitesRootDomain, getStoreBaseUrl, getWarpScreenshotUrl, hasAllPermissions, hasAllTeamPermissions, hasAnyPermissions, hasPermission, hasTeamPermission, imageCropRectangle, integrationSlugForChannel, inviteableTeamRoles, isAutomationSendChannelId, isCampaignChannelId, isCompleteAddressInput, isContactMessageAction, isContactMessageWarpId, isFileFormatAudio, isFileFormatImage, isFileFormatVideo, isNativeApp, isNativeAppAccessible, isNativeAppGated, isNativeAppLocked, isOrderCanceled, isOrderInFulfillment, isOrderPending, isOrderPostCheckout, isPickupOrderReady, isPickupReady, isSupportedAppLocale, isTeamFeatureAccessible, isTeamFeatureGated, isTeamFeatureLocked, isUnifiedMcpUrl, isUserRole, localize, nativeAppSlugs, normalizeAutomationActionType, ogImageUrl, outboundChannel, permissionPresetRules, resolveAccessCatalog, resolveAgentMcpUrl, resolveConnectMcpUrl, resolveFulfillmentFlowStep, resolveOrderStatusDisplay, resolveTeamCurrency, resolveWarpText, returnStatusValues, returnUpdateStatusValues, sanitizeAlphanumeric, sanitizeNumeric, slugifyMcpSegment, teamCategories, toCurrencyDisplay, toHexEncodedNonce, toNameInitials, toNftId, toPreviewText, userPermissionValues, userRoleValues, validateImageDimensions, validationMessageFor, withRetry };