@itm-studio/partner-sdk 0.2.10 → 0.3.1

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.
package/dist/index.d.mts CHANGED
@@ -4,20 +4,24 @@ type Scalars = {
4
4
  ID: string;
5
5
  String: string;
6
6
  Boolean: boolean;
7
- Int: number;
8
7
  Float: number;
8
+ Int: number;
9
9
  };
10
- type MomentStatus = 'UPCOMING' | 'LIVE' | 'ENDED';
10
+ type ConsentStatus = 'NEVER_SUBSCRIBED' | 'SUBSCRIBED' | 'UNSUBSCRIBED';
11
+ type UserSource = 'BRAND' | 'DICE' | 'ITM';
12
+ type SortDirection = 'ASC' | 'DESC';
11
13
  type BrandAgentEmailSendBatchStatus = 'PENDING' | 'SENDING' | 'SENT' | 'PARTIAL' | 'FAILED' | 'UNKNOWN';
12
14
  type BrandAgentEmailSendMessageStatus = 'PENDING' | 'SENDING' | 'SENT' | 'FAILED' | 'UNKNOWN';
15
+ type PartnerAudienceSortField = 'CITY' | 'CREATED_AT' | 'NAME' | 'NUM_MOMENTS' | 'TOTAL_SPEND_USD' | 'UPDATED_AT';
16
+ type MomentStatus = 'UPCOMING' | 'LIVE' | 'ENDED';
13
17
  type MomentSortOrder = 'ASC' | 'DESC';
14
18
  type BrandDropCtaType = 'EXTERNAL_URL' | 'GATED_LINK' | 'MUSIC_LINK' | 'SUBSCRIBE';
15
19
  type MusicReleaseType = 'ALBUM' | 'EP' | 'SINGLE';
16
20
  type MomentType = 'DIGITAL' | 'HYBRID' | 'IRL';
17
21
  type MomentOnlineProvider = 'GOOGLE_MEET' | 'MS_TEAMS' | 'OTHER' | 'ZOOM';
18
22
  type TicketAttendanceMode = 'IN_PERSON' | 'ONLINE';
19
- type MomentCategory = 'ACTIVATION' | 'CONCERT' | 'DIGITAL' | 'DINING' | 'EDUCATION' | 'EXHIBITION' | 'FASHION' | 'FESTIVAL' | 'LAUNCH' | 'NIGHTLIFE' | 'OTHER' | 'PARTY' | 'PERFORMING_ARTS' | 'SCREENING' | 'SPORTS' | 'WELLNESS';
20
- type MomentSubcategory = 'ACOUSTIC_SET' | 'ADVANCE_SCREENING' | 'AFTER_PARTY' | 'AIRDROP' | 'ALBUM_DROP' | 'ALBUM_RELEASE_SHOW' | 'AMA' | 'ANNIVERSARY' | 'ARTIST_TALK' | 'ART_FAIR' | 'ART_FESTIVAL' | 'ATHLETE_APPEARANCE' | 'AWARDS' | 'BAR_TAKEOVER' | 'BATTLE' | 'BEER_AND_WINE_FESTIVAL' | 'BIENNALE' | 'BIRTHDAY' | 'BLOCK_PARTY' | 'BRAND_EXPERIENCE' | 'BRAND_REVEAL' | 'BREATHWORK' | 'BRUNCH_EVENT' | 'BURLESQUE' | 'CACAO_CEREMONY' | 'CARNIVAL' | 'CELEBRATION' | 'CHAMPIONSHIP' | 'CHEF_DINNER' | 'CHOIR_OR_ENSEMBLE' | 'CLUB_NIGHT' | 'CLUB_SET' | 'COLD_PLUNGE' | 'COLLABORATION_REVEAL' | 'COLLECTION_DROP' | 'COMEDY_FESTIVAL' | 'COMEDY_NIGHT' | 'COMEDY_SHOW' | 'COMMUNITY_MEETUP' | 'CONFERENCE' | 'COOKING_CLASS' | 'CULTURAL_FESTIVAL' | 'DANCE_PERFORMANCE' | 'DAYCLUB' | 'DIRECTORS_CUT' | 'DISCORD_EVENT' | 'DOCUMENTARY' | 'DRAG_SHOW' | 'ECSTATIC_DANCE' | 'ESPORTS' | 'EXHIBITION_GAME' | 'EXTREME_SPORTS' | 'FAN_EXPERIENCE' | 'FAN_FEST' | 'FASHION_FESTIVAL' | 'FASHION_PANEL' | 'FASHION_WEEK' | 'FIGHT_NIGHT' | 'FILM_FESTIVAL' | 'FILM_PREMIERE' | 'FINISSAGE' | 'FIRESIDE_CHAT' | 'FITNESS_CLASS' | 'FITTING_EVENT' | 'FOOD_FESTIVAL' | 'FOOD_PAIRING' | 'GALLERY_OPENING' | 'GAME_DAY' | 'GIVEAWAY' | 'GROUP_EXHIBITION' | 'GUERRILLA' | 'HACKATHON' | 'HEADLINER_SHOW' | 'HOLIDAY_PARTY' | 'HYBRID_EVENT' | 'IMMERSIVE_EXPERIENCE' | 'IMPROV_SHOW' | 'INFLUENCER_EVENT' | 'INSTALLATION' | 'INTERACTIVE_INSTALLATION' | 'JAZZ_NIGHT' | 'JAZZ_SESSION' | 'KARAOKE_NIGHT' | 'KEYNOTE' | 'LATE_NIGHT_SET' | 'LISTENING_PARTY' | 'LIVESTREAM' | 'LOOKBOOK_SHOOT' | 'MASQUERADE' | 'MASTERCLASS' | 'MEDITATION' | 'MEET_AND_GREET' | 'MEMBERS_ONLY' | 'MOBILE_TOUR' | 'MUSEUM_EVENT' | 'MUSICAL' | 'MUSIC_FESTIVAL' | 'MUSIC_VIDEO_PREMIERE' | 'NETWORKING_MIXER' | 'NFT_MINT' | 'ONLINE_DROP' | 'ONLINE_PREMIERE' | 'ONLINE_WATCH_PARTY' | 'OPEN_MIC' | 'OPERA' | 'ORCHESTRA' | 'OTHER' | 'OUTDOOR_CINEMA' | 'PANEL' | 'PERFORMANCE_ART' | 'PHOTO_ACTIVATION' | 'POOL_PARTY' | 'POP_UP_BOUTIQUE' | 'POP_UP_DINING' | 'POP_UP_GALLERY' | 'POP_UP_SHOP' | 'PRESENTATION' | 'PRESS_EVENT' | 'PREVIEW' | 'PRIDE_FESTIVAL' | 'PRIVATE_EVENT' | 'PRODUCT_LAUNCH' | 'RAVE' | 'RELEASE_PARTY' | 'RESIDENCY' | 'RESTAURANT_OPENING' | 'RETREAT' | 'RIVALRY_GAME' | 'ROOFTOP_PARTY' | 'ROUNDTABLE' | 'RUNWAY_SHOW' | 'RUN_CLUB' | 'RUN_OR_RACE' | 'SAMPLE_SALE' | 'SAMPLING' | 'SECRET_DINING' | 'SEMINAR' | 'SHORT_FILM' | 'SHOWCASE' | 'SHOWROOM' | 'SILENT_DISCO' | 'SOCIAL_CHALLENGE' | 'SOLO_EXHIBITION' | 'SOUND_BATH' | 'SPA_EXPERIENCE' | 'SPOKEN_WORD' | 'SPONSORSHIP' | 'SPORTS_CLINIC' | 'SPORTS_WATCH_PARTY' | 'STANDUP_COMEDY' | 'STREET_TEAM' | 'STUDIO_VISIT' | 'SUMMIT' | 'SUPPER_CLUB' | 'TAILGATE' | 'TASTING' | 'THEATER' | 'THEMED_NIGHT' | 'TOURNAMENT' | 'TOUR_STOP' | 'TRIBUTE_SHOW' | 'TRUNK_SHOW' | 'TWITTER_SPACE' | 'VARIETY_SHOW' | 'VENUE_OPENING' | 'VIRTUAL_CONCERT' | 'VIRTUAL_EVENT' | 'WAREHOUSE_PARTY' | 'WATCH_PARTY' | 'WEBINAR' | 'WELLNESS_FESTIVAL' | 'WELLNESS_WORKSHOP' | 'WORKSHOP' | 'YOGA_SESSION';
23
+ type MomentCategory = 'ACTIVATION' | 'BUSINESS' | 'COMMUNITY' | 'CONCERT' | 'DIGITAL' | 'DINING' | 'EDUCATION' | 'EXHIBITION' | 'FASHION' | 'FESTIVAL' | 'LAUNCH' | 'NIGHTLIFE' | 'OTHER' | 'PARTY' | 'PERFORMING_ARTS' | 'SCREENING' | 'SPORTS' | 'WELLNESS';
24
+ type MomentSubcategory = 'ACOUSTIC_SET' | 'ADVANCE_SCREENING' | 'AFTER_PARTY' | 'AIRDROP' | 'ALBUM_DROP' | 'ALBUM_RELEASE_SHOW' | 'AMA' | 'ANNIVERSARY' | 'APP_LAUNCH' | 'ARTIST_POP_UP' | 'ARTIST_RECEPTION' | 'ARTIST_TALK' | 'ART_FAIR' | 'ART_FESTIVAL' | 'ATHLETE_APPEARANCE' | 'AWARDS' | 'BAR_TAKEOVER' | 'BATTLE' | 'BEAUTY_FASHION_EVENT' | 'BEER_AND_WINE_FESTIVAL' | 'BEER_TASTING' | 'BIENNALE' | 'BIRTHDAY' | 'BLOCK_PARTY' | 'BOOK_LAUNCH' | 'BOOK_TALK' | 'BRAND_EXPERIENCE' | 'BRAND_REVEAL' | 'BREATHWORK' | 'BRUNCH_EVENT' | 'BURLESQUE' | 'BUSINESS_MIXER' | 'CACAO_CEREMONY' | 'CAREER_FAIR' | 'CARNIVAL' | 'CELEBRATION' | 'CHAMPIONSHIP' | 'CHARITY_EVENT' | 'CHEF_DINNER' | 'CHOIR_OR_ENSEMBLE' | 'CLASS' | 'CLUB_MEETING' | 'CLUB_NIGHT' | 'CLUB_SET' | 'COLD_PLUNGE' | 'COLLABORATION_REVEAL' | 'COLLECTION_DROP' | 'COMEDY_FESTIVAL' | 'COMEDY_NIGHT' | 'COMEDY_SHOW' | 'COMMUNITY_FESTIVAL' | 'COMMUNITY_MARKET' | 'COMMUNITY_MEETUP' | 'CONFERENCE' | 'COOKING_CLASS' | 'COURSE' | 'CREATOR_POP_UP' | 'CULTURAL_FESTIVAL' | 'CULTURAL_GATHERING' | 'DANCE_PARTY' | 'DANCE_PERFORMANCE' | 'DAYCLUB' | 'DEMO_DAY' | 'DESIGNER_MEET_AND_GREET' | 'DESIGN_EXHIBITION' | 'DINNER_PARTY' | 'DIRECTORS_CUT' | 'DISCORD_EVENT' | 'DOCUMENTARY' | 'DRAG_SHOW' | 'ECSTATIC_DANCE' | 'ESPORTS' | 'EXHIBITION_GAME' | 'EXTREME_SPORTS' | 'FAMILY_EVENT' | 'FAN_EXPERIENCE' | 'FAN_FEST' | 'FASHION_FESTIVAL' | 'FASHION_PANEL' | 'FASHION_WEEK' | 'FIGHT_NIGHT' | 'FILM_FESTIVAL' | 'FILM_PREMIERE' | 'FILM_SCREENING' | 'FINISSAGE' | 'FIRESIDE_CHAT' | 'FITNESS_CLASS' | 'FITTING_EVENT' | 'FOOD_FESTIVAL' | 'FOOD_MARKET' | 'FOOD_PAIRING' | 'FOUNDER_MEETUP' | 'FUNDRAISER' | 'GALLERY_OPENING' | 'GAME_DAY' | 'GAME_LAUNCH' | 'GAMING_STREAM' | 'GIVEAWAY' | 'GROUP_EXHIBITION' | 'GUERRILLA' | 'HACKATHON' | 'HEADLINER_SHOW' | 'HIIT_CLASS' | 'HOLIDAY_PARTY' | 'HYBRID_EVENT' | 'IMMERSIVE_EXPERIENCE' | 'IMPROV_SHOW' | 'INDUSTRY_PANEL' | 'INFLUENCER_EVENT' | 'INSTALLATION' | 'INTERACTIVE_INSTALLATION' | 'INVESTOR_EVENT' | 'JAM_SESSION' | 'JAZZ_NIGHT' | 'JAZZ_SESSION' | 'JOB_FAIR' | 'KARAOKE_NIGHT' | 'KEYNOTE' | 'LATE_NIGHT_SET' | 'LATIN_NIGHT' | 'LECTURE' | 'LISTENING_PARTY' | 'LIVESTREAM' | 'LIVE_AUDIO_ROOM' | 'LIVE_PERFORMANCE' | 'LIVE_PODCAST' | 'LOCAL_MEETUP' | 'LOOKBOOK_SHOOT' | 'MAGIC_SHOW' | 'MASQUERADE' | 'MASTERCLASS' | 'MEDITATION' | 'MEET_AND_GREET' | 'MEMBERS_ONLY' | 'MIXOLOGY_CLASS' | 'MOBILE_TOUR' | 'MUSEUM_EVENT' | 'MUSICAL' | 'MUSIC_FESTIVAL' | 'MUSIC_VIDEO_PREMIERE' | 'NETWORKING_EVENT' | 'NETWORKING_MIXER' | 'NFT_MINT' | 'NUTRITION_WORKSHOP' | 'OFFICE_HOURS' | 'ONLINE_CLASS' | 'ONLINE_COURSE' | 'ONLINE_DROP' | 'ONLINE_LECTURE' | 'ONLINE_OFFICE_HOURS' | 'ONLINE_PREMIERE' | 'ONLINE_WATCH_PARTY' | 'OPEN_DECKS' | 'OPEN_HOUSE' | 'OPEN_MIC' | 'OPERA' | 'ORCHESTRA' | 'OTHER' | 'OUTDOOR_CINEMA' | 'PANEL' | 'PERFORMANCE_ART' | 'PHOTO_ACTIVATION' | 'PHOTO_EXHIBITION' | 'PICKUP_GAME' | 'PILATES_CLASS' | 'PITCH_NIGHT' | 'POOL_PARTY' | 'POP_UP_BOUTIQUE' | 'POP_UP_DINING' | 'POP_UP_GALLERY' | 'POP_UP_SHOP' | 'PRESENTATION' | 'PRESS_EVENT' | 'PREVIEW' | 'PRIDE_FESTIVAL' | 'PRIVATE_EVENT' | 'PRODUCT_DEMO' | 'PRODUCT_LAUNCH' | 'Q_AND_A_SCREENING' | 'RAVE' | 'READING' | 'RELEASE_PARTY' | 'RESIDENCY' | 'RESTAURANT_OPENING' | 'RETREAT' | 'RIVALRY_GAME' | 'ROOFTOP_PARTY' | 'ROUNDTABLE' | 'RUNWAY_SHOW' | 'RUN_CLUB' | 'RUN_OR_RACE' | 'SAMPLE_SALE' | 'SAMPLING' | 'SECRET_DINING' | 'SEMINAR' | 'SERIES_SCREENING' | 'SHORT_FILM' | 'SHOWCASE' | 'SHOWROOM' | 'SILENT_DISCO' | 'SKATE_JAM' | 'SOCIAL_CHALLENGE' | 'SOLO_EXHIBITION' | 'SONGWRITER_ROUND' | 'SOUND_BATH' | 'SPA_EXPERIENCE' | 'SPOKEN_WORD' | 'SPONSORSHIP' | 'SPORTS_CLINIC' | 'SPORTS_TRAINING' | 'SPORTS_WATCH_PARTY' | 'STANDUP_COMEDY' | 'STORYTELLING' | 'STREAMING_RELEASE' | 'STREET_TEAM' | 'STUDIO_VISIT' | 'STUDY_GROUP' | 'STYLING_SESSION' | 'SUMMIT' | 'SUPPER_CLUB' | 'TAILGATE' | 'TASTING' | 'TECH_FESTIVAL' | 'THEATER' | 'THEMED_NIGHT' | 'TOURNAMENT' | 'TOUR_STOP' | 'TOWN_HALL' | 'TRADE_SHOW' | 'TRAINING' | 'TRIBUTE_SHOW' | 'TRUNK_SHOW' | 'TV_PREMIERE' | 'TWITTER_SPACE' | 'VARIETY_SHOW' | 'VENUE_OPENING' | 'VIRTUAL_CONCERT' | 'VIRTUAL_EVENT' | 'VIRTUAL_EXPO' | 'VIRTUAL_MEETUP' | 'VIRTUAL_NETWORKING' | 'VIRTUAL_SUMMIT' | 'VIRTUAL_WORKSHOP' | 'VOLUNTEER_EVENT' | 'WAREHOUSE_PARTY' | 'WATCH_PARTY' | 'WEBINAR' | 'WELLNESS_FESTIVAL' | 'WELLNESS_WORKSHOP' | 'WINE_TASTING' | 'WORKSHOP' | 'YOGA_SESSION';
21
25
  type MomentLineupStatus = 'APPROVED' | 'PENDING' | 'REJECTED';
22
26
  type MomentLineupType = 'CO_HOST' | 'DJ' | 'LINEUP' | 'PROMOTER' | 'SPEAKER' | 'VENDOR';
23
27
  /** Display label for the lineup section on public event pages. */
@@ -26,6 +30,7 @@ type EchoType = 'LINK' | 'POST' | 'IMAGE' | 'VIDEO' | 'GALLERY' | 'MERCH' | 'AUD
26
30
  type ThirdPartyEchoType = 'SPOTIFY' | 'INSTAGRAM' | 'TIKTOK';
27
31
  type PaymentStatus = 'PENDING' | 'SUCCEEDED' | 'FAILED';
28
32
  type TicketExtensionStatus = 'PENDING' | 'APPLIED' | 'CANCELLED' | 'EXPIRED' | 'FAILED' | 'REFUNDED';
33
+ type TagSource = 'MANUAL' | 'AUTO';
29
34
  interface Currency {
30
35
  uid: Scalars['ID'];
31
36
  code: Scalars['String'];
@@ -77,6 +82,27 @@ interface MomentCoverImage {
77
82
  mimeType: Scalars['String'];
78
83
  __typename: 'MomentCoverImage';
79
84
  }
85
+ interface Tag {
86
+ uid: Scalars['ID'];
87
+ name: Scalars['String'];
88
+ createdAt: Scalars['DateTime'];
89
+ updatedAt: Scalars['DateTime'];
90
+ __typename: 'Tag';
91
+ }
92
+ interface MomentTagAssignment {
93
+ tag: Tag;
94
+ source: TagSource;
95
+ isPublic: Scalars['Boolean'];
96
+ confidence: Scalars['Float'];
97
+ __typename: 'MomentTagAssignment';
98
+ }
99
+ interface GetMomentTagAssignmentsResponse {
100
+ assignments: MomentTagAssignment[];
101
+ totalCount: Scalars['Int'];
102
+ hasNextPage: Scalars['Boolean'];
103
+ nextCursor: (Scalars['String'] | null);
104
+ __typename: 'GetMomentTagAssignmentsResponse';
105
+ }
80
106
  interface Moment {
81
107
  uid: Scalars['ID'];
82
108
  name: Scalars['String'];
@@ -101,6 +127,8 @@ interface Moment {
101
127
  /** Cover image for the moment. Null if no cover image is set. */
102
128
  coverImage: MomentCoverImage;
103
129
  venue: (Venue | null);
130
+ /** Public tag assignments owned by the authenticated partner's brand. */
131
+ momentTags: GetMomentTagAssignmentsResponse;
104
132
  ticketTiers: TicketTier[];
105
133
  createdAt: Scalars['DateTime'];
106
134
  updatedAt: Scalars['DateTime'];
@@ -211,6 +239,28 @@ interface PartnerCustomer {
211
239
  tickets: Ticket[];
212
240
  __typename: 'PartnerCustomer';
213
241
  }
242
+ interface PartnerAudienceCustomer {
243
+ uid: Scalars['String'];
244
+ name: (Scalars['String'] | null);
245
+ email: (Scalars['String'] | null);
246
+ emailVerified: Scalars['Boolean'];
247
+ phoneNumber: (Scalars['String'] | null);
248
+ city: (Scalars['String'] | null);
249
+ country: (Scalars['String'] | null);
250
+ source: UserSource;
251
+ isSubscribed: Scalars['Boolean'];
252
+ emailConsentStatus: ConsentStatus;
253
+ smsConsentStatus: ConsentStatus;
254
+ communicationsOptedOut: Scalars['Boolean'];
255
+ isSuppressed: Scalars['Boolean'];
256
+ totalSpendUsdCents: Scalars['Int'];
257
+ numMoments: Scalars['Int'];
258
+ numProducts: Scalars['Int'];
259
+ numEchoes: Scalars['Int'];
260
+ createdAt: Scalars['DateTime'];
261
+ updatedAt: Scalars['DateTime'];
262
+ __typename: 'PartnerAudienceCustomer';
263
+ }
214
264
  interface PartnerMomentStats {
215
265
  generatedAt: Scalars['DateTime'];
216
266
  ticketsCount: Scalars['Int'];
@@ -410,6 +460,13 @@ interface GetPartnerCustomersResponse {
410
460
  nextCursor: (Scalars['String'] | null);
411
461
  __typename: 'GetPartnerCustomersResponse';
412
462
  }
463
+ interface GetPartnerAudienceResponse {
464
+ customers: PartnerAudienceCustomer[];
465
+ hasNextPage: Scalars['Boolean'];
466
+ nextCursor: (Scalars['String'] | null);
467
+ totalCount: (Scalars['Int'] | null);
468
+ __typename: 'GetPartnerAudienceResponse';
469
+ }
413
470
  interface GetBrandEchoesForUserResponse {
414
471
  echoes: Echo[];
415
472
  totalCount: Scalars['Int'];
@@ -606,11 +663,28 @@ interface BrandAgentEmailSendBatch {
606
663
  messages: BrandAgentEmailSendMessage[];
607
664
  __typename: 'BrandAgentEmailSendBatch';
608
665
  }
666
+ interface AgentThreadSeedContext {
667
+ /**
668
+ * Rendered prior-conversation transcript to seed a fresh agent session with,
669
+ * or null when the thread has no renderable history.
670
+ */
671
+ seed: (Scalars['String'] | null);
672
+ includedMessages: Scalars['Int'];
673
+ totalMessages: Scalars['Int'];
674
+ truncated: Scalars['Boolean'];
675
+ __typename: 'AgentThreadSeedContext';
676
+ }
609
677
  interface Query {
610
678
  /** Get details for the brand associated with the partner token. */
611
679
  getPartnerBrand: PartnerBrand;
612
680
  /** Retrieve one AgentMail send batch owned by the authenticated partner brand. */
613
681
  getPartnerAgentEmailBatch: BrandAgentEmailSendBatch;
682
+ /**
683
+ * Seed context for restoring a conversation thread into a fresh agent
684
+ * session. Agent-access-token mode only: admin, brand, and thread scope all
685
+ * derive from the verified token claims, so the operation takes no arguments.
686
+ */
687
+ getAgentThreadSeed: AgentThreadSeedContext;
614
688
  /** Get paginated moments for the brand associated with the partner token. */
615
689
  getPartnerMomentsForBrand: GetPublicMomentsResponse;
616
690
  /** Get paginated drops for the brand associated with the partner token. */
@@ -635,6 +709,11 @@ interface Query {
635
709
  * Sorted by newest first (based on earliest ticket purchase time).
636
710
  */
637
711
  getPartnerCustomersForMoment: GetPartnerCustomersResponse;
712
+ /**
713
+ * Get the authenticated brand's customer audience using an allowlisted profile,
714
+ * effective consent, and aggregate-metrics projection.
715
+ */
716
+ getPartnerAudience: GetPartnerAudienceResponse;
638
717
  /**
639
718
  * Get a moment collection by slug.
640
719
  * Returns the collection with its moments and links.
@@ -796,6 +875,34 @@ interface MomentCoverImageGenqlSelection {
796
875
  __typename?: boolean | number;
797
876
  __scalar?: boolean | number;
798
877
  }
878
+ interface TagGenqlSelection {
879
+ uid?: boolean | number;
880
+ name?: boolean | number;
881
+ createdAt?: boolean | number;
882
+ updatedAt?: boolean | number;
883
+ __typename?: boolean | number;
884
+ __scalar?: boolean | number;
885
+ }
886
+ interface MomentTagAssignmentGenqlSelection {
887
+ tag?: TagGenqlSelection;
888
+ source?: boolean | number;
889
+ isPublic?: boolean | number;
890
+ confidence?: boolean | number;
891
+ __typename?: boolean | number;
892
+ __scalar?: boolean | number;
893
+ }
894
+ interface GetMomentTagAssignmentsResponseGenqlSelection {
895
+ assignments?: MomentTagAssignmentGenqlSelection;
896
+ totalCount?: boolean | number;
897
+ hasNextPage?: boolean | number;
898
+ nextCursor?: boolean | number;
899
+ __typename?: boolean | number;
900
+ __scalar?: boolean | number;
901
+ }
902
+ interface PaginationInput {
903
+ cursor?: (Scalars['String'] | null);
904
+ take?: (Scalars['Float'] | null);
905
+ }
799
906
  interface MomentGenqlSelection {
800
907
  uid?: boolean | number;
801
908
  name?: boolean | number;
@@ -820,6 +927,13 @@ interface MomentGenqlSelection {
820
927
  /** Cover image for the moment. Null if no cover image is set. */
821
928
  coverImage?: MomentCoverImageGenqlSelection;
822
929
  venue?: VenueGenqlSelection;
930
+ /** Public tag assignments owned by the authenticated partner's brand. */
931
+ momentTags?: (GetMomentTagAssignmentsResponseGenqlSelection & {
932
+ __args?: {
933
+ pagination?: (PaginationInput | null);
934
+ sources?: (TagSource[] | null);
935
+ };
936
+ });
823
937
  ticketTiers?: TicketTierGenqlSelection;
824
938
  createdAt?: boolean | number;
825
939
  updatedAt?: boolean | number;
@@ -933,6 +1047,29 @@ interface PartnerCustomerGenqlSelection {
933
1047
  __typename?: boolean | number;
934
1048
  __scalar?: boolean | number;
935
1049
  }
1050
+ interface PartnerAudienceCustomerGenqlSelection {
1051
+ uid?: boolean | number;
1052
+ name?: boolean | number;
1053
+ email?: boolean | number;
1054
+ emailVerified?: boolean | number;
1055
+ phoneNumber?: boolean | number;
1056
+ city?: boolean | number;
1057
+ country?: boolean | number;
1058
+ source?: boolean | number;
1059
+ isSubscribed?: boolean | number;
1060
+ emailConsentStatus?: boolean | number;
1061
+ smsConsentStatus?: boolean | number;
1062
+ communicationsOptedOut?: boolean | number;
1063
+ isSuppressed?: boolean | number;
1064
+ totalSpendUsdCents?: boolean | number;
1065
+ numMoments?: boolean | number;
1066
+ numProducts?: boolean | number;
1067
+ numEchoes?: boolean | number;
1068
+ createdAt?: boolean | number;
1069
+ updatedAt?: boolean | number;
1070
+ __typename?: boolean | number;
1071
+ __scalar?: boolean | number;
1072
+ }
936
1073
  interface PartnerMomentStatsGenqlSelection {
937
1074
  generatedAt?: boolean | number;
938
1075
  ticketsCount?: boolean | number;
@@ -1164,6 +1301,14 @@ interface GetPartnerCustomersResponseGenqlSelection {
1164
1301
  __typename?: boolean | number;
1165
1302
  __scalar?: boolean | number;
1166
1303
  }
1304
+ interface GetPartnerAudienceResponseGenqlSelection {
1305
+ customers?: PartnerAudienceCustomerGenqlSelection;
1306
+ hasNextPage?: boolean | number;
1307
+ nextCursor?: boolean | number;
1308
+ totalCount?: boolean | number;
1309
+ __typename?: boolean | number;
1310
+ __scalar?: boolean | number;
1311
+ }
1167
1312
  interface GetBrandEchoesForUserResponseGenqlSelection {
1168
1313
  echoes?: EchoGenqlSelection;
1169
1314
  totalCount?: boolean | number;
@@ -1348,6 +1493,43 @@ interface PartnerMomentsFiltersInput {
1348
1493
  /** When true, includes private moments owned by the authenticated brand. Default: false. */
1349
1494
  includePrivate?: (Scalars['Boolean'] | null);
1350
1495
  }
1496
+ interface PartnerAudienceFiltersInput {
1497
+ customerUids?: (Scalars['String'][] | null);
1498
+ search?: (Scalars['String'] | null);
1499
+ hasEmail?: (Scalars['Boolean'] | null);
1500
+ hasPhone?: (Scalars['Boolean'] | null);
1501
+ isSubscribed?: (Scalars['Boolean'] | null);
1502
+ emailConsentStatuses?: (ConsentStatus[] | null);
1503
+ smsConsentStatuses?: (ConsentStatus[] | null);
1504
+ communicationsOptedOut?: (Scalars['Boolean'] | null);
1505
+ isSuppressed?: (Scalars['Boolean'] | null);
1506
+ sources?: (UserSource[] | null);
1507
+ cities?: (Scalars['String'][] | null);
1508
+ countries?: (Scalars['String'][] | null);
1509
+ createdAtFrom?: (Scalars['DateTime'] | null);
1510
+ createdAtBefore?: (Scalars['DateTime'] | null);
1511
+ updatedAtFrom?: (Scalars['DateTime'] | null);
1512
+ updatedAtBefore?: (Scalars['DateTime'] | null);
1513
+ minTotalSpendUsdCents?: (Scalars['Int'] | null);
1514
+ maxTotalSpendUsdCents?: (Scalars['Int'] | null);
1515
+ minNumMoments?: (Scalars['Int'] | null);
1516
+ maxNumMoments?: (Scalars['Int'] | null);
1517
+ momentUids?: (Scalars['String'][] | null);
1518
+ ticketTierUids?: (Scalars['String'][] | null);
1519
+ brandListUids?: (Scalars['String'][] | null);
1520
+ membershipTierUids?: (Scalars['String'][] | null);
1521
+ }
1522
+ interface PartnerAudienceSortInput {
1523
+ field: PartnerAudienceSortField;
1524
+ direction: SortDirection;
1525
+ }
1526
+ interface GetPartnerAudienceInput {
1527
+ filters?: (PartnerAudienceFiltersInput | null);
1528
+ sort?: (PartnerAudienceSortInput | null);
1529
+ cursor?: (Scalars['String'] | null);
1530
+ take?: (Scalars['Int'] | null);
1531
+ includeTotalCount?: (Scalars['Boolean'] | null);
1532
+ }
1351
1533
  interface BrandAgentEmailSendMessageGenqlSelection {
1352
1534
  uid?: boolean | number;
1353
1535
  position?: boolean | number;
@@ -1374,6 +1556,18 @@ interface BrandAgentEmailSendBatchGenqlSelection {
1374
1556
  __typename?: boolean | number;
1375
1557
  __scalar?: boolean | number;
1376
1558
  }
1559
+ interface AgentThreadSeedContextGenqlSelection {
1560
+ /**
1561
+ * Rendered prior-conversation transcript to seed a fresh agent session with,
1562
+ * or null when the thread has no renderable history.
1563
+ */
1564
+ seed?: boolean | number;
1565
+ includedMessages?: boolean | number;
1566
+ totalMessages?: boolean | number;
1567
+ truncated?: boolean | number;
1568
+ __typename?: boolean | number;
1569
+ __scalar?: boolean | number;
1570
+ }
1377
1571
  interface QueryGenqlSelection {
1378
1572
  /** Get details for the brand associated with the partner token. */
1379
1573
  getPartnerBrand?: PartnerBrandGenqlSelection;
@@ -1383,6 +1577,12 @@ interface QueryGenqlSelection {
1383
1577
  batchUid: Scalars['String'];
1384
1578
  };
1385
1579
  });
1580
+ /**
1581
+ * Seed context for restoring a conversation thread into a fresh agent
1582
+ * session. Agent-access-token mode only: admin, brand, and thread scope all
1583
+ * derive from the verified token claims, so the operation takes no arguments.
1584
+ */
1585
+ getAgentThreadSeed?: AgentThreadSeedContextGenqlSelection;
1386
1586
  /** Get paginated moments for the brand associated with the partner token. */
1387
1587
  getPartnerMomentsForBrand?: (GetPublicMomentsResponseGenqlSelection & {
1388
1588
  __args: {
@@ -1455,6 +1655,15 @@ interface QueryGenqlSelection {
1455
1655
  take?: (Scalars['Int'] | null);
1456
1656
  };
1457
1657
  });
1658
+ /**
1659
+ * Get the authenticated brand's customer audience using an allowlisted profile,
1660
+ * effective consent, and aggregate-metrics projection.
1661
+ */
1662
+ getPartnerAudience?: (GetPartnerAudienceResponseGenqlSelection & {
1663
+ __args?: {
1664
+ input?: (GetPartnerAudienceInput | null);
1665
+ };
1666
+ });
1458
1667
  /**
1459
1668
  * Get a moment collection by slug.
1460
1669
  * Returns the collection with its moments and links.
@@ -1539,6 +1748,8 @@ interface SendPartnerAgentEmailInput {
1539
1748
  idempotencyKey: Scalars['String'];
1540
1749
  /** One to ten personalized, single-recipient plain-text emails. */
1541
1750
  messages: BrandAgentEmailMessageInput[];
1751
+ /** Brand-agent session callers only; rejected for partner API keys */
1752
+ toolCallId?: (Scalars['String'] | null);
1542
1753
  }
1543
1754
  interface VenueInput {
1544
1755
  name: Scalars['String'];
@@ -1599,6 +1810,10 @@ interface CreatePartnerMomentInput {
1599
1810
  subcategory?: (MomentSubcategory | null);
1600
1811
  /** Ticket tiers to create along with the moment. */
1601
1812
  ticketTiers?: (CreatePartnerTicketTierInput[] | null);
1813
+ /** Brand-agent session callers only; rejected for partner API keys */
1814
+ idempotencyKey?: (Scalars['String'] | null);
1815
+ /** Brand-agent session callers only; rejected for partner API keys */
1816
+ toolCallId?: (Scalars['String'] | null);
1602
1817
  }
1603
1818
  interface GetPartnerTicketTiersForMomentInput {
1604
1819
  /** Moment UID to search ticket tiers for. Provide this or momentSlug. */
@@ -1741,6 +1956,12 @@ interface PostSubscriptionMessageInput {
1741
1956
  }
1742
1957
  interface CreatePartnerBrandSubscriptionInput {
1743
1958
  compliance?: (SubscriptionComplianceInput | null);
1959
+ /**
1960
+ * Exact opt-in disclosure the subscriber accepted, stored as consent evidence
1961
+ * alongside the subscription compliance record. Send the verbatim text shown on
1962
+ * your signup surface — it is the record of what the subscriber agreed to.
1963
+ */
1964
+ consentText?: (Scalars['String'] | null);
1744
1965
  email?: (Scalars['String'] | null);
1745
1966
  /** Optional full name. If provided, include first and last name. */
1746
1967
  fullName?: (Scalars['String'] | null);
@@ -1915,6 +2136,24 @@ type Anify<T> = {
1915
2136
  type FieldsToRemove = '__isUnion' | '__scalar' | '__name' | '__args';
1916
2137
  type Nil = undefined | null;
1917
2138
 
2139
+ declare class GenqlError extends Error {
2140
+ errors: Array<GraphqlError>;
2141
+ /**
2142
+ * Partial data returned by the server
2143
+ */
2144
+ data?: any;
2145
+ constructor(errors: any[], data: any);
2146
+ }
2147
+ interface GraphqlError {
2148
+ message: string;
2149
+ locations?: Array<{
2150
+ line: number;
2151
+ column: number;
2152
+ }>;
2153
+ path?: string[];
2154
+ extensions?: Record<string, any>;
2155
+ }
2156
+
1918
2157
  interface Client {
1919
2158
  query<R extends QueryGenqlSelection>(request: R & {
1920
2159
  __name?: string;
@@ -1940,7 +2179,7 @@ declare const DEFAULT_API_URL = "https://itm-backend-production.up.railway.app/g
1940
2179
  type MaybePromise<T> = T | Promise<T>;
1941
2180
  type ITMPartnerHeadersObject = Record<string, string>;
1942
2181
  type ITMPartnerHeaders = ITMPartnerHeadersObject | (() => MaybePromise<ITMPartnerHeadersObject | undefined>);
1943
- interface ITMPartnerClientConfig {
2182
+ interface ITMPartnerTokenConfig {
1944
2183
  /**
1945
2184
  * Partner API token (from backstage: Settings > Partner API).
1946
2185
  * Sent as `x-partner-api-key` header on every request.
@@ -1958,6 +2197,77 @@ interface ITMPartnerClientConfig {
1958
2197
  */
1959
2198
  headers?: ITMPartnerHeaders;
1960
2199
  }
2200
+ interface ITMPartnerAgentSessionCredentials {
2201
+ /**
2202
+ * Mints a fresh, short-lived workload identity bearer for each request
2203
+ * (e.g. a Vercel workload OIDC token). Called per request so tokens are
2204
+ * never cached beyond their lifetime.
2205
+ */
2206
+ workloadToken: () => MaybePromise<string>;
2207
+ /**
2208
+ * The backend-owned Brand Agent session id. The backend derives the brand
2209
+ * and the operation grants from this session server-side — the SDK never
2210
+ * carries a brand identifier or a partner API key in this mode.
2211
+ */
2212
+ sessionUid: string;
2213
+ /**
2214
+ * Optional one-time session bootstrap secret, forwarded so the backend can
2215
+ * lazily register a session that the lifecycle hook has not bound yet.
2216
+ */
2217
+ bootstrapToken?: string;
2218
+ }
2219
+ /**
2220
+ * First-party Brand Agent session authentication. Only capability-scoped
2221
+ * partner operations approved for agents accept this mode; everything else
2222
+ * remains partner-token-only and fails closed.
2223
+ */
2224
+ interface ITMPartnerAgentSessionConfig {
2225
+ agentSession: ITMPartnerAgentSessionCredentials;
2226
+ /**
2227
+ * Base URL of the ITM GraphQL API.
2228
+ * @default DEFAULT_API_URL
2229
+ */
2230
+ baseUrl?: string;
2231
+ /**
2232
+ * Additional headers to include on every request. Credential headers
2233
+ * always take precedence and cannot be overridden.
2234
+ */
2235
+ headers?: ITMPartnerHeaders;
2236
+ }
2237
+ interface ITMPartnerAgentAccessCredentials {
2238
+ /**
2239
+ * Mints a fresh, short-lived workload identity bearer for each request
2240
+ * (e.g. a Vercel workload OIDC token). Called per request so tokens are
2241
+ * never cached beyond their lifetime.
2242
+ */
2243
+ workloadToken: () => MaybePromise<string>;
2244
+ /**
2245
+ * The short-lived agent access token minted by the backend exchange (as
2246
+ * presented by the caller on the inbound request). The backend derives the
2247
+ * admin, brand, and thread scope from its verified claims server-side.
2248
+ */
2249
+ accessToken: string;
2250
+ }
2251
+ /**
2252
+ * First-party Brand Agent access-token authentication, for the pre-session
2253
+ * moment in the session-create flow when no agent session exists yet (the
2254
+ * thread seed fetch). Only operations guarded for this mode accept it;
2255
+ * everything else remains partner-token- or session-only and fails closed.
2256
+ */
2257
+ interface ITMPartnerAgentAccessConfig {
2258
+ agentAccess: ITMPartnerAgentAccessCredentials;
2259
+ /**
2260
+ * Base URL of the ITM GraphQL API.
2261
+ * @default DEFAULT_API_URL
2262
+ */
2263
+ baseUrl?: string;
2264
+ /**
2265
+ * Additional headers to include on every request. Credential headers
2266
+ * always take precedence and cannot be overridden.
2267
+ */
2268
+ headers?: ITMPartnerHeaders;
2269
+ }
2270
+ type ITMPartnerClientConfig = ITMPartnerTokenConfig | ITMPartnerAgentSessionConfig | ITMPartnerAgentAccessConfig;
1961
2271
  type ITMPartnerClient = Client;
1962
2272
  /**
1963
2273
  * Create a typed ITM Partner API client.
@@ -1990,4 +2300,4 @@ type ITMPartnerClient = Client;
1990
2300
  */
1991
2301
  declare function createITMPartnerClient(config: ITMPartnerClientConfig): ITMPartnerClient;
1992
2302
 
1993
- export { type ApplyDynamicPricingInput, type BrandAgentEmailMessageInput, type BrandAgentEmailSendBatch, type BrandAgentEmailSendBatchStatus, type BrandAgentEmailSendMessage, type BrandAgentEmailSendMessageStatus, type BrandDrop, type BrandDropCtaType, type BrandDropMusicLink, type BrandSubscription, type CreateMomentOnlineConfigInput, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type DynamicPricingActorType, type DynamicPricingAdmissionWindow, type DynamicPricingBatch, type DynamicPricingBatchEvent, type DynamicPricingBatchEventType, type DynamicPricingBatchItem, type DynamicPricingBatchItemStatus, type DynamicPricingBatchStatus, type DynamicPricingContext, type DynamicPricingExecutionMode, type DynamicPricingInventoryGuardInput, type DynamicPricingInventoryGuardMode, type DynamicPricingInventoryMetric, type DynamicPricingMomentInput, type DynamicPricingTierContext, type DynamicPricingTierUpdateInput, type Echo, type EchoMediaAsset, type EchoType, type EditPartnerTicketTiersForMomentInput, type EventImportPlatform, type GetBrandEchoesForUserResponse, type GetMomentLineupsResponse, type GetPartnerCustomersResponse, type GetPartnerDropsResponse, type GetPartnerTicketTiersForMomentInput, type GetPartnerTicketTiersForMomentResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentDynamicPricingPolicy, type MomentDynamicPricingTierRule, type MomentLineup, type MomentLineupDisplayLabel, type MomentLineupResponseResult, type MomentLineupStatus, type MomentLineupType, type MomentOnlineProvider, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type MusicReleaseType, type Mutation, type PartnerBrand, type PartnerCustomer, type PartnerMomentAttendanceCount, type PartnerMomentAttendanceLookupInput, type PartnerMomentAttendanceStats, type PartnerMomentGuestlistAttendance, type PartnerMomentGuestlistLabelAttendance, type PartnerMomentStats, type PartnerMomentTicketAttendance, type PartnerMomentTicketTierAttendance, type PartnerMomentsFiltersInput, type PartnerTicketTier, type PartnerTicketTierUpdateInput, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type PublicMomentLineupInfo, type Query, type RespondToMomentLineupInput, type SendPartnerAgentEmailInput, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketAdmissionWindowSource, type TicketAttendanceMode, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };
2303
+ export { type AgentThreadSeedContext, type ApplyDynamicPricingInput, type BrandAgentEmailMessageInput, type BrandAgentEmailSendBatch, type BrandAgentEmailSendBatchStatus, type BrandAgentEmailSendMessage, type BrandAgentEmailSendMessageStatus, type BrandDrop, type BrandDropCtaType, type BrandDropMusicLink, type BrandSubscription, type ConsentStatus, type CreateMomentOnlineConfigInput, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type DynamicPricingActorType, type DynamicPricingAdmissionWindow, type DynamicPricingBatch, type DynamicPricingBatchEvent, type DynamicPricingBatchEventType, type DynamicPricingBatchItem, type DynamicPricingBatchItemStatus, type DynamicPricingBatchStatus, type DynamicPricingContext, type DynamicPricingExecutionMode, type DynamicPricingInventoryGuardInput, type DynamicPricingInventoryGuardMode, type DynamicPricingInventoryMetric, type DynamicPricingMomentInput, type DynamicPricingTierContext, type DynamicPricingTierUpdateInput, type Echo, type EchoMediaAsset, type EchoType, type EditPartnerTicketTiersForMomentInput, type EventImportPlatform, GenqlError, type GetBrandEchoesForUserResponse, type GetMomentLineupsResponse, type GetMomentTagAssignmentsResponse, type GetPartnerAudienceInput, type GetPartnerAudienceResponse, type GetPartnerCustomersResponse, type GetPartnerDropsResponse, type GetPartnerTicketTiersForMomentInput, type GetPartnerTicketTiersForMomentResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerAgentAccessConfig, type ITMPartnerAgentAccessCredentials, type ITMPartnerAgentSessionConfig, type ITMPartnerAgentSessionCredentials, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type ITMPartnerTokenConfig, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentDynamicPricingPolicy, type MomentDynamicPricingTierRule, type MomentLineup, type MomentLineupDisplayLabel, type MomentLineupResponseResult, type MomentLineupStatus, type MomentLineupType, type MomentOnlineProvider, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentTagAssignment, type MomentType, type MusicReleaseType, type Mutation, type PaginationInput, type PartnerAudienceCustomer, type PartnerAudienceFiltersInput, type PartnerAudienceSortField, type PartnerAudienceSortInput, type PartnerBrand, type PartnerCustomer, type PartnerMomentAttendanceCount, type PartnerMomentAttendanceLookupInput, type PartnerMomentAttendanceStats, type PartnerMomentGuestlistAttendance, type PartnerMomentGuestlistLabelAttendance, type PartnerMomentStats, type PartnerMomentTicketAttendance, type PartnerMomentTicketTierAttendance, type PartnerMomentsFiltersInput, type PartnerTicketTier, type PartnerTicketTierUpdateInput, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type PublicMomentLineupInfo, type Query, type RespondToMomentLineupInput, type SendPartnerAgentEmailInput, type SortDirection, type SubscriptionComplianceInput, type Tag, type TagSource, type ThirdPartyEchoType, type Ticket, type TicketAdmissionWindowSource, type TicketAttendanceMode, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type UserSource, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };