@seatlayer/js 0.61.0 → 0.63.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.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { PickerSeat, PickerGAArea, PickerSelectionValidator, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerTransport, PickerMapTheme } from '@seatlayer/core';
1
+ import { PickerSeat, PickerGAArea, PickerSelectionValidator, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerMapTheme, PickerTransport } from '@seatlayer/core';
2
2
  export { ExpandedSeat, PickerMapTheme, PickerSelectionValidator, PickerSelectionValidity, PickerSelectionViolation, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
3
3
  export { A as AccessIntentForbidsDetails, a as AccessLinkRecord, b as AccessLinkReveal, c as AccessLinkState, d as AccessLinkStatus, e as AccessLinkStatusRecord, f as ArchiveBlockedDetails, g as AssignmentBuckets, h as AssignmentDropDetails, i as AssignmentResult, B as BucketRow, C as ChannelAccessIntent, j as ChannelAccessSummary, k as ChannelAllocationPage, l as ChannelAttribution, m as ChannelAuditEntry, n as ChannelAuditPage, o as ChannelCounts, p as ChannelListResult, q as ChannelPreviewProjection, r as ChannelRecord, s as ChannelReport, t as ChannelReportLinkRecord, u as ChannelReportLinkReveal, v as ChannelReportResult, w as ChannelReportRow, x as ChannelSeatStatus, y as ChannelState, z as ChannelsCapabilities, D as ChannelsClient, E as ChannelsMode, F as ChannelsModeHost, G as ChannelsRowView, H as ChannelsSeatView, I as ControlRoomActivityEntry, J as ControlRoomSectionMetric, K as ControlRoomSnapshot, L as EventCategoryAssignmentResult, M as EventScopedManageToken, N as EventTableBookingMode, O as EventTableBookingResult, P as IntentSwitchBlockedDetails, Q as InventoryBooking, R as InventoryBookingActivity, S as InventoryBookingDetail, T as InventoryBookingObject, U as InventoryBookingState, V as InventoryBookingsPage, W as InventoryBookingsQuery, X as LogEntry, Y as LogPage, Z as ManageApi, _ as ManageApiError, $ as ReportByStatus, a0 as ReportCategoryMeta, a1 as ReportCategoryRow, a2 as ReportResult, a3 as SeatManager, a4 as SeatManagerActionResult, a5 as SeatManagerActivity, a6 as SeatManagerCapability, a7 as SeatManagerConnection, a8 as SeatManagerFilteredSection, a9 as SeatManagerMode, aa as SeatManagerOptions, ab as SeatManagerSelectionValidity, ac as SeatManagerTallies, ad as SelectionSourceRow } from './channelsMode-2z9HBOAX.cjs';
4
4
 
@@ -7,7 +7,8 @@ export { A as AccessIntentForbidsDetails, a as AccessLinkRecord, b as AccessLink
7
7
  * (`docs/sales-channels-integration-guide-2026-08-01.md` §6, §9, §10).
8
8
  *
9
9
  * A promoter's own backend mints a short-lived, opaque buyer-access session
10
- * (`bse_…`) that grants exactly one event's private channel scope. That bearer
10
+ * (`bse_…` for one Event or `bsg_…` for one Performance Group) that grants a
11
+ * bounded private inventory scope. That bearer
11
12
  * reaches the browser, and only the browser — this module is where it lives,
12
13
  * and the rules it enforces are the ones the guide states outright:
13
14
  *
@@ -46,7 +47,7 @@ type BuyerAccessRefreshReason =
46
47
  /** What a `buyerAccessTokenProvider` resolves to — the response body of the
47
48
  * host's own mint endpoint, unchanged. */
48
49
  interface BuyerAccessToken {
49
- /** The opaque `bse_…` buyer-access session bearer. */
50
+ /** The opaque buyer-access session bearer (`bse_…` or `bsg_…`). */
50
51
  token: string;
51
52
  /** Epoch ms. Optional — absent means "trust the server", and the SDK then
52
53
  * refreshes only reactively on a 401. */
@@ -71,6 +72,8 @@ type BuyerAccessUnavailableReason =
71
72
  | 'origin_mismatch'
72
73
  /** 403 `buyer_access_event_mismatch`. */
73
74
  | 'event_mismatch'
75
+ /** 403 `buyer_access_group_mismatch`. */
76
+ | 'group_mismatch'
74
77
  /** 403 `buyer_access_mode_mismatch` (test bearer on a live event or v.v.). */
75
78
  | 'mode_mismatch'
76
79
  /** 403 `channel_access_denied`. */
@@ -1975,6 +1978,7 @@ declare class SeatPicker implements GaPromptPicker {
1975
1978
  private lastSelectionValidity;
1976
1979
  /** Original host pricing, kept separate from live server offer overrides. */
1977
1980
  private readonly hostPricing;
1981
+ private readonly performanceGroup;
1978
1982
  /** @internal */ root: HTMLDivElement | null;
1979
1983
  private mapHost;
1980
1984
  private rendered;
@@ -2554,6 +2558,8 @@ declare class SeatPicker implements GaPromptPicker {
2554
2558
  deselectObjects(objects: string[]): void;
2555
2559
  /** Clear every unheld selection. */
2556
2560
  clearSelection(): void;
2561
+ /** @internal */ refreshAvailability(): Promise<void>;
2562
+ /** @internal */ refreshPerformanceGroupComposition(): void;
2557
2563
  /** Select every selectable object in the named categories. */
2558
2564
  selectCategories(categoryKeys: string[]): PickerSeat[];
2559
2565
  /** Deselect every selected object in the named categories. */
@@ -2768,6 +2774,152 @@ declare class SeatPicker implements GaPromptPicker {
2768
2774
  destroy(): void;
2769
2775
  }
2770
2776
 
2777
+ /** Buyer transport for one fixed-inclusion Performance Group. */
2778
+
2779
+ type PerformanceGroupOperationState = 'preparing' | 'commit_pending' | 'committed' | 'abort_pending' | 'aborted' | 'expire_pending' | 'expired' | 'booked';
2780
+ interface PerformanceGroupDescriptor {
2781
+ key: string;
2782
+ name: string;
2783
+ state: 'active' | 'closing' | 'closed' | 'archived';
2784
+ mode: 'live' | 'test';
2785
+ currency: string;
2786
+ venue: string;
2787
+ timezone: string | null;
2788
+ inventoryModelVersion: 2;
2789
+ performanceCount: number;
2790
+ performances: Array<{
2791
+ position: number;
2792
+ eventKey: string;
2793
+ name: string;
2794
+ startsAt: number;
2795
+ endsAt: number | null;
2796
+ venue: string;
2797
+ timezone: string | null;
2798
+ salesState: string;
2799
+ }>;
2800
+ }
2801
+ interface PerformanceGroupHold {
2802
+ operationId: string;
2803
+ holdId: string;
2804
+ expiresAt: number;
2805
+ items: HoldLineItem[];
2806
+ }
2807
+ type PerformanceGroupSelectionMode = 'same_seat' | 'per_performance';
2808
+ interface PerformanceGroupHoldAllocation {
2809
+ eventKey: string;
2810
+ items: HoldLineItem[];
2811
+ }
2812
+ interface PerformanceGroupOperationEvent {
2813
+ operationId: string;
2814
+ state: PerformanceGroupOperationState;
2815
+ decision: 'commit' | 'abort' | null;
2816
+ }
2817
+
2818
+ interface PerformanceGroupSeatAllocation {
2819
+ eventKey: string;
2820
+ seatLabels: string[];
2821
+ }
2822
+ interface PerformanceGroupCheckoutHandoff {
2823
+ operationId: string;
2824
+ holdId: string;
2825
+ expiresAt: number;
2826
+ performanceGroup: PerformanceGroupDescriptor;
2827
+ selectionMode: PerformanceGroupSelectionMode;
2828
+ /** Logical booking identities only. Re-inspect the opaque hold on your server. */
2829
+ seatLabels: string[];
2830
+ /** Present for per-performance selection. Prices and child hold IDs remain server-only. */
2831
+ allocations?: PerformanceGroupSeatAllocation[];
2832
+ }
2833
+ interface PerformanceGroupPickerOptions {
2834
+ container: string | HTMLElement;
2835
+ performanceGroup: string;
2836
+ /** `same_seat` renders one shared choice; `per_performance` renders one chart with date tabs. */
2837
+ selectionMode?: PerformanceGroupSelectionMode;
2838
+ apiBase?: string;
2839
+ buyerAccessTokenProvider?: BuyerAccessTokenProvider;
2840
+ buyerAccessToken?: string | BuyerAccessToken;
2841
+ maxSelection?: number;
2842
+ selectedObjects?: string[];
2843
+ selectableObjects?: string[] | null;
2844
+ numberOfPlacesToSelect?: number;
2845
+ selectionValidators?: PickerSelectionValidator[];
2846
+ locale?: string;
2847
+ messages?: Record<string, string>;
2848
+ languages?: string[];
2849
+ colorblindSafe?: boolean;
2850
+ initialView?: RendererViewMode;
2851
+ enable3D?: boolean;
2852
+ max3DSeats?: number;
2853
+ onBuyerViewChange?: (state: {
2854
+ view: SeatPickerBuyerView;
2855
+ seatId?: string;
2856
+ }) => void;
2857
+ hideBadge?: boolean;
2858
+ theme?: SeatPickerTheme;
2859
+ holdTtlMs?: number;
2860
+ initialHoldId?: string;
2861
+ initialOperationId?: string;
2862
+ restoreHold?: boolean;
2863
+ confirmSelection?: boolean;
2864
+ seatView?: boolean;
2865
+ onSelectionChange?: (seats: PickerSeat[]) => void;
2866
+ onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
2867
+ onSelectionValid?: (seats: PickerSeat[]) => void;
2868
+ onSelectionInvalid?: (state: PickerSelectionValidity) => void;
2869
+ onSelectionLimit?: (maxSelection: number) => void;
2870
+ onHold?: (handoff: PerformanceGroupCheckoutHandoff) => void;
2871
+ onHoldChange?: (handoff: PerformanceGroupCheckoutHandoff | null) => void;
2872
+ onCheckout?: (handoff: PerformanceGroupCheckoutHandoff) => void;
2873
+ onHoldExpired?: () => void;
2874
+ onAccessExpired?: (event: BuyerAccessExpiredEvent) => void;
2875
+ onAccessUnavailable?: (event: BuyerAccessUnavailableEvent) => void;
2876
+ onError?: (error: unknown) => void;
2877
+ }
2878
+ declare class PerformanceGroupPicker {
2879
+ private readonly options;
2880
+ private readonly access;
2881
+ private readonly api;
2882
+ private descriptorValue;
2883
+ private picker;
2884
+ private root;
2885
+ private innerHost;
2886
+ private tabsHost;
2887
+ private heldSummary;
2888
+ private live;
2889
+ private rendered;
2890
+ private destroyed;
2891
+ private continued;
2892
+ private switchingPerformance;
2893
+ private operationPending;
2894
+ private activePerformanceKey;
2895
+ private readonly selectionsByEvent;
2896
+ private readonly validByEvent;
2897
+ private refreshingComposition;
2898
+ private activeHandoff;
2899
+ constructor(options: PerformanceGroupPickerOptions);
2900
+ get descriptor(): PerformanceGroupDescriptor | null;
2901
+ get currentHold(): PerformanceGroupCheckoutHandoff | null;
2902
+ render(): Promise<this>;
2903
+ release(): Promise<void>;
2904
+ close(): void;
2905
+ destroy(): void;
2906
+ private copy;
2907
+ private performanceTabs;
2908
+ private submissionState;
2909
+ private selectionChanged;
2910
+ private selectionValidityChanged;
2911
+ private refreshComposition;
2912
+ private tabState;
2913
+ private updateTabs;
2914
+ private switchPerformance;
2915
+ private operationChanged;
2916
+ private handoff;
2917
+ private renderHeldAllocations;
2918
+ private resetPerPerformanceSelection;
2919
+ private holdChanged;
2920
+ private checkout;
2921
+ }
2922
+
2771
2923
  /**
2772
2924
  * Host-side helper for embedding the SeatLayer picker as an iframe.
2773
2925
  *
@@ -2807,4 +2959,4 @@ interface AttachPickerFrameOptions {
2807
2959
  */
2808
2960
  declare function attachPickerFrame(iframe: HTMLIFrameElement, opts?: AttachPickerFrameOptions): () => void;
2809
2961
 
2810
- export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
2962
+ export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type PerformanceGroupCheckoutHandoff, type PerformanceGroupDescriptor, type PerformanceGroupHold, type PerformanceGroupHoldAllocation, type PerformanceGroupOperationEvent, type PerformanceGroupOperationState, PerformanceGroupPicker, type PerformanceGroupPickerOptions, type PerformanceGroupSeatAllocation, type PerformanceGroupSelectionMode, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PickerSeat, PickerGAArea, PickerSelectionValidator, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerTransport, PickerMapTheme } from '@seatlayer/core';
1
+ import { PickerSeat, PickerGAArea, PickerSelectionValidator, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerMapTheme, PickerTransport } from '@seatlayer/core';
2
2
  export { ExpandedSeat, PickerMapTheme, PickerSelectionValidator, PickerSelectionValidity, PickerSelectionViolation, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
3
3
  export { A as AccessIntentForbidsDetails, a as AccessLinkRecord, b as AccessLinkReveal, c as AccessLinkState, d as AccessLinkStatus, e as AccessLinkStatusRecord, f as ArchiveBlockedDetails, g as AssignmentBuckets, h as AssignmentDropDetails, i as AssignmentResult, B as BucketRow, C as ChannelAccessIntent, j as ChannelAccessSummary, k as ChannelAllocationPage, l as ChannelAttribution, m as ChannelAuditEntry, n as ChannelAuditPage, o as ChannelCounts, p as ChannelListResult, q as ChannelPreviewProjection, r as ChannelRecord, s as ChannelReport, t as ChannelReportLinkRecord, u as ChannelReportLinkReveal, v as ChannelReportResult, w as ChannelReportRow, x as ChannelSeatStatus, y as ChannelState, z as ChannelsCapabilities, D as ChannelsClient, E as ChannelsMode, F as ChannelsModeHost, G as ChannelsRowView, H as ChannelsSeatView, I as ControlRoomActivityEntry, J as ControlRoomSectionMetric, K as ControlRoomSnapshot, L as EventCategoryAssignmentResult, M as EventScopedManageToken, N as EventTableBookingMode, O as EventTableBookingResult, P as IntentSwitchBlockedDetails, Q as InventoryBooking, R as InventoryBookingActivity, S as InventoryBookingDetail, T as InventoryBookingObject, U as InventoryBookingState, V as InventoryBookingsPage, W as InventoryBookingsQuery, X as LogEntry, Y as LogPage, Z as ManageApi, _ as ManageApiError, $ as ReportByStatus, a0 as ReportCategoryMeta, a1 as ReportCategoryRow, a2 as ReportResult, a3 as SeatManager, a4 as SeatManagerActionResult, a5 as SeatManagerActivity, a6 as SeatManagerCapability, a7 as SeatManagerConnection, a8 as SeatManagerFilteredSection, a9 as SeatManagerMode, aa as SeatManagerOptions, ab as SeatManagerSelectionValidity, ac as SeatManagerTallies, ad as SelectionSourceRow } from './channelsMode-2z9HBOAX.js';
4
4
 
@@ -7,7 +7,8 @@ export { A as AccessIntentForbidsDetails, a as AccessLinkRecord, b as AccessLink
7
7
  * (`docs/sales-channels-integration-guide-2026-08-01.md` §6, §9, §10).
8
8
  *
9
9
  * A promoter's own backend mints a short-lived, opaque buyer-access session
10
- * (`bse_…`) that grants exactly one event's private channel scope. That bearer
10
+ * (`bse_…` for one Event or `bsg_…` for one Performance Group) that grants a
11
+ * bounded private inventory scope. That bearer
11
12
  * reaches the browser, and only the browser — this module is where it lives,
12
13
  * and the rules it enforces are the ones the guide states outright:
13
14
  *
@@ -46,7 +47,7 @@ type BuyerAccessRefreshReason =
46
47
  /** What a `buyerAccessTokenProvider` resolves to — the response body of the
47
48
  * host's own mint endpoint, unchanged. */
48
49
  interface BuyerAccessToken {
49
- /** The opaque `bse_…` buyer-access session bearer. */
50
+ /** The opaque buyer-access session bearer (`bse_…` or `bsg_…`). */
50
51
  token: string;
51
52
  /** Epoch ms. Optional — absent means "trust the server", and the SDK then
52
53
  * refreshes only reactively on a 401. */
@@ -71,6 +72,8 @@ type BuyerAccessUnavailableReason =
71
72
  | 'origin_mismatch'
72
73
  /** 403 `buyer_access_event_mismatch`. */
73
74
  | 'event_mismatch'
75
+ /** 403 `buyer_access_group_mismatch`. */
76
+ | 'group_mismatch'
74
77
  /** 403 `buyer_access_mode_mismatch` (test bearer on a live event or v.v.). */
75
78
  | 'mode_mismatch'
76
79
  /** 403 `channel_access_denied`. */
@@ -1975,6 +1978,7 @@ declare class SeatPicker implements GaPromptPicker {
1975
1978
  private lastSelectionValidity;
1976
1979
  /** Original host pricing, kept separate from live server offer overrides. */
1977
1980
  private readonly hostPricing;
1981
+ private readonly performanceGroup;
1978
1982
  /** @internal */ root: HTMLDivElement | null;
1979
1983
  private mapHost;
1980
1984
  private rendered;
@@ -2554,6 +2558,8 @@ declare class SeatPicker implements GaPromptPicker {
2554
2558
  deselectObjects(objects: string[]): void;
2555
2559
  /** Clear every unheld selection. */
2556
2560
  clearSelection(): void;
2561
+ /** @internal */ refreshAvailability(): Promise<void>;
2562
+ /** @internal */ refreshPerformanceGroupComposition(): void;
2557
2563
  /** Select every selectable object in the named categories. */
2558
2564
  selectCategories(categoryKeys: string[]): PickerSeat[];
2559
2565
  /** Deselect every selected object in the named categories. */
@@ -2768,6 +2774,152 @@ declare class SeatPicker implements GaPromptPicker {
2768
2774
  destroy(): void;
2769
2775
  }
2770
2776
 
2777
+ /** Buyer transport for one fixed-inclusion Performance Group. */
2778
+
2779
+ type PerformanceGroupOperationState = 'preparing' | 'commit_pending' | 'committed' | 'abort_pending' | 'aborted' | 'expire_pending' | 'expired' | 'booked';
2780
+ interface PerformanceGroupDescriptor {
2781
+ key: string;
2782
+ name: string;
2783
+ state: 'active' | 'closing' | 'closed' | 'archived';
2784
+ mode: 'live' | 'test';
2785
+ currency: string;
2786
+ venue: string;
2787
+ timezone: string | null;
2788
+ inventoryModelVersion: 2;
2789
+ performanceCount: number;
2790
+ performances: Array<{
2791
+ position: number;
2792
+ eventKey: string;
2793
+ name: string;
2794
+ startsAt: number;
2795
+ endsAt: number | null;
2796
+ venue: string;
2797
+ timezone: string | null;
2798
+ salesState: string;
2799
+ }>;
2800
+ }
2801
+ interface PerformanceGroupHold {
2802
+ operationId: string;
2803
+ holdId: string;
2804
+ expiresAt: number;
2805
+ items: HoldLineItem[];
2806
+ }
2807
+ type PerformanceGroupSelectionMode = 'same_seat' | 'per_performance';
2808
+ interface PerformanceGroupHoldAllocation {
2809
+ eventKey: string;
2810
+ items: HoldLineItem[];
2811
+ }
2812
+ interface PerformanceGroupOperationEvent {
2813
+ operationId: string;
2814
+ state: PerformanceGroupOperationState;
2815
+ decision: 'commit' | 'abort' | null;
2816
+ }
2817
+
2818
+ interface PerformanceGroupSeatAllocation {
2819
+ eventKey: string;
2820
+ seatLabels: string[];
2821
+ }
2822
+ interface PerformanceGroupCheckoutHandoff {
2823
+ operationId: string;
2824
+ holdId: string;
2825
+ expiresAt: number;
2826
+ performanceGroup: PerformanceGroupDescriptor;
2827
+ selectionMode: PerformanceGroupSelectionMode;
2828
+ /** Logical booking identities only. Re-inspect the opaque hold on your server. */
2829
+ seatLabels: string[];
2830
+ /** Present for per-performance selection. Prices and child hold IDs remain server-only. */
2831
+ allocations?: PerformanceGroupSeatAllocation[];
2832
+ }
2833
+ interface PerformanceGroupPickerOptions {
2834
+ container: string | HTMLElement;
2835
+ performanceGroup: string;
2836
+ /** `same_seat` renders one shared choice; `per_performance` renders one chart with date tabs. */
2837
+ selectionMode?: PerformanceGroupSelectionMode;
2838
+ apiBase?: string;
2839
+ buyerAccessTokenProvider?: BuyerAccessTokenProvider;
2840
+ buyerAccessToken?: string | BuyerAccessToken;
2841
+ maxSelection?: number;
2842
+ selectedObjects?: string[];
2843
+ selectableObjects?: string[] | null;
2844
+ numberOfPlacesToSelect?: number;
2845
+ selectionValidators?: PickerSelectionValidator[];
2846
+ locale?: string;
2847
+ messages?: Record<string, string>;
2848
+ languages?: string[];
2849
+ colorblindSafe?: boolean;
2850
+ initialView?: RendererViewMode;
2851
+ enable3D?: boolean;
2852
+ max3DSeats?: number;
2853
+ onBuyerViewChange?: (state: {
2854
+ view: SeatPickerBuyerView;
2855
+ seatId?: string;
2856
+ }) => void;
2857
+ hideBadge?: boolean;
2858
+ theme?: SeatPickerTheme;
2859
+ holdTtlMs?: number;
2860
+ initialHoldId?: string;
2861
+ initialOperationId?: string;
2862
+ restoreHold?: boolean;
2863
+ confirmSelection?: boolean;
2864
+ seatView?: boolean;
2865
+ onSelectionChange?: (seats: PickerSeat[]) => void;
2866
+ onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
2867
+ onSelectionValid?: (seats: PickerSeat[]) => void;
2868
+ onSelectionInvalid?: (state: PickerSelectionValidity) => void;
2869
+ onSelectionLimit?: (maxSelection: number) => void;
2870
+ onHold?: (handoff: PerformanceGroupCheckoutHandoff) => void;
2871
+ onHoldChange?: (handoff: PerformanceGroupCheckoutHandoff | null) => void;
2872
+ onCheckout?: (handoff: PerformanceGroupCheckoutHandoff) => void;
2873
+ onHoldExpired?: () => void;
2874
+ onAccessExpired?: (event: BuyerAccessExpiredEvent) => void;
2875
+ onAccessUnavailable?: (event: BuyerAccessUnavailableEvent) => void;
2876
+ onError?: (error: unknown) => void;
2877
+ }
2878
+ declare class PerformanceGroupPicker {
2879
+ private readonly options;
2880
+ private readonly access;
2881
+ private readonly api;
2882
+ private descriptorValue;
2883
+ private picker;
2884
+ private root;
2885
+ private innerHost;
2886
+ private tabsHost;
2887
+ private heldSummary;
2888
+ private live;
2889
+ private rendered;
2890
+ private destroyed;
2891
+ private continued;
2892
+ private switchingPerformance;
2893
+ private operationPending;
2894
+ private activePerformanceKey;
2895
+ private readonly selectionsByEvent;
2896
+ private readonly validByEvent;
2897
+ private refreshingComposition;
2898
+ private activeHandoff;
2899
+ constructor(options: PerformanceGroupPickerOptions);
2900
+ get descriptor(): PerformanceGroupDescriptor | null;
2901
+ get currentHold(): PerformanceGroupCheckoutHandoff | null;
2902
+ render(): Promise<this>;
2903
+ release(): Promise<void>;
2904
+ close(): void;
2905
+ destroy(): void;
2906
+ private copy;
2907
+ private performanceTabs;
2908
+ private submissionState;
2909
+ private selectionChanged;
2910
+ private selectionValidityChanged;
2911
+ private refreshComposition;
2912
+ private tabState;
2913
+ private updateTabs;
2914
+ private switchPerformance;
2915
+ private operationChanged;
2916
+ private handoff;
2917
+ private renderHeldAllocations;
2918
+ private resetPerPerformanceSelection;
2919
+ private holdChanged;
2920
+ private checkout;
2921
+ }
2922
+
2771
2923
  /**
2772
2924
  * Host-side helper for embedding the SeatLayer picker as an iframe.
2773
2925
  *
@@ -2807,4 +2959,4 @@ interface AttachPickerFrameOptions {
2807
2959
  */
2808
2960
  declare function attachPickerFrame(iframe: HTMLIFrameElement, opts?: AttachPickerFrameOptions): () => void;
2809
2961
 
2810
- export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
2962
+ export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type PerformanceGroupCheckoutHandoff, type PerformanceGroupDescriptor, type PerformanceGroupHold, type PerformanceGroupHoldAllocation, type PerformanceGroupOperationEvent, type PerformanceGroupOperationState, PerformanceGroupPicker, type PerformanceGroupPickerOptions, type PerformanceGroupSeatAllocation, type PerformanceGroupSelectionMode, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };