import * as i0 from '@angular/core'; import { OnChanges, EventEmitter, SimpleChanges } from '@angular/core'; import { PickerSelectionValidator, RendererViewMode, SeatingChartOptions, BuyerAccessTokenProvider, BuyerAccessToken, SelectedSeat, PickerSelectionValidity, HoldResult, GAAreaAvailability, SeatHoverDetails, BuyerAccessExpiredEvent, BuyerAccessUnavailableEvent, SelectedObjectUnavailableEvent, BestAvailableResult, SeasonPickerOptions, SeasonCheckoutHandoff, SeasonRenewalIntent, SeasonStatusEvent, SeasonDescriptor, SeasonAvailability } from '@seatlayer/js'; export { AttachPickerFrameOptions, BestAvailableResult, BuyerAccessExpiredEvent, BuyerAccessRefreshReason, BuyerAccessToken, BuyerAccessTokenProvider, BuyerAccessUnavailableEvent, BuyerAccessUnavailableReason, GAAreaAvailability, HoldLineItem, HoldResult, SeasonAvailability, SeasonCheckoutHandoff, SeasonDescriptor, SeasonOperation, SeasonOperationState, SeasonPickerOptions, SeasonRenewalIntent, SeasonStatusEvent, SeatHoverDetails, SeatPicker as SeatPickerWidget, SelectedObjectUnavailableEvent, SelectedSeat, attachPickerFrame } from '@seatlayer/js'; /** * Angular wrapper around the framework-agnostic `@seatlayer/js` SDK. * * Standalone, so it is imported directly rather than through an NgModule. * * The canvas is created once and torn down on destroy. Only the inputs that * change the chart's identity (`SEATING_CHART_IDENTITY_PROPS`: `event`, * `apiBase`, `maxSelection`, `numberOfPlacesToSelect`, `publicKey`, `locale`, `currency`, * `colorblindSafe`, `initialView`, `errorDisplay`) trigger a rebuild, so an * unrelated change-detection pass never destroys the canvas mid-selection. * * @example * ```html * * * ``` */ declare class SeatLayerSeatingChartComponent implements OnChanges { /** Event key to render. Changing it rebuilds the chart. */ event: string; /** API base URL. Defaults to the public API. */ apiBase?: string; /** Cap on how many seats a buyer may select. */ maxSelection?: number; /** Object ids or public labels selected after availability loads. */ selectedObjects?: string[]; /** Object ids or public labels the buyer may select. */ selectableObjects?: string[] | null; /** Exact ticket count required for a valid selection. */ numberOfPlacesToSelect?: number; /** Local buyer selection guards. Changing them rebuilds the chart. */ selectionValidators?: PickerSelectionValidator[]; /** Publishable key, when your integration uses one. */ publicKey?: string; /** BCP-47 locale for built-in copy. */ locale?: string; /** ISO currency for price formatting. */ currency?: string; /** Render with colorblind-safe seat glyphs. */ colorblindSafe?: boolean; /** * Initial canvas projection. Read once when the chart is built, so changing * it rebuilds. * @deprecated `'isometric'` and `'perspective'` are retired in favour of the * real 3D venue view; use `'flat'`. */ initialView?: RendererViewMode; /** * What the BUYER sees when the chart cannot load: `'message'` (default) is a * styleable notice with a Try again button, `'none'` is silent for hosts that * render their own failure UI from `errored`. */ errorDisplay?: 'message' | 'none'; /** Show the built-in seat tooltip. Set false to draw your own from `seatHover`. */ seatTooltip?: boolean; /** Copy overrides, read once per rebuild. */ messages?: SeatingChartOptions['messages']; /** * Sales Channels: mint a buyer access session on demand. Called with a * `reason`; returns `{ token, expiresAt }` from YOUR backend. The token is * held in memory only — never storage, never a URL, never a log. */ buyerAccessTokenProvider?: BuyerAccessTokenProvider; /** One-shot session for hosts that own the lifecycle. Cannot be renewed. */ buyerAccessToken?: string | BuyerAccessToken; /** The buyer's selection changed. */ readonly selectionChange: EventEmitter; /** Exact-count state changed. */ readonly selectionValidityChange: EventEmitter; /** The exact count was reached. */ readonly selectionValid: EventEmitter; /** The selection is not at the exact count. */ readonly selectionInvalid: EventEmitter; /** The active selection cap was reached. */ readonly selectionLimit: EventEmitter; /** A hold succeeded. */ readonly hold: EventEmitter; /** A previous hold was restored on mount. */ readonly holdRestored: EventEmitter; /** The active hold lapsed. */ readonly holdExpired: EventEmitter; /** A GA area was clicked. */ readonly gaClick: EventEmitter; /** Something failed — a network error, a rejected hold. */ readonly errored: EventEmitter; /** A floor deck was tapped in the 3D view. */ readonly deckTap: EventEmitter; /** A transient hint worth showing the buyer, or `null` to clear it. */ readonly hint: EventEmitter; /** The pointer moved onto a seat, or off one (`null`). */ readonly seatHover: EventEmitter; /** The buyer access session lapsed; `refreshed` says whether it recovered. */ readonly accessExpired: EventEmitter; /** Private inventory is unavailable and refreshing will not fix it. */ readonly accessUnavailable: EventEmitter; /** Selected-but-unheld units stopped being selectable. */ readonly selectedObjectUnavailable: EventEmitter; private readonly container; private readonly zone; private chart; /** * Inputs that require tearing the canvas down and rebuilding it. The shared * list from `@seatlayer/js`, not a hand-copied one — this is exactly the place * Angular fell two inputs behind React. */ private static readonly REBUILD_INPUTS; /** * The canonical forwarding object. Every imperative method below is a * one-line delegate to it, so the component cannot forward a method the other * wrappers do not, or miss one they do. */ private readonly handle; constructor(); ngOnChanges(changes: SimpleChanges): void; /** Hold the current selection. Resolves the hold, or `null` on a 409 conflict. */ holdSelection(options?: { ttlMs?: number; }): Promise; /** Restore an active hold by its opaque id. */ resumeHold(holdId: string): Promise; /** Current active hold known to the chart. */ getCurrentHold(): HoldResult | null; /** GA areas with live remaining capacity. */ getGAAreas(): GAAreaAvailability[]; /** Atomically hold a quantity from one GA area. */ holdGA(areaId: string, qty: number, options?: { tierId?: string | null; ttlMs?: number; }): Promise; /** Ask the server for the `qty` best free seats and hold them atomically. */ bestAvailable(qty: number, categoryKey?: string): Promise; /** Release the current hold (if any). */ release(): Promise; /** Release some held labels while keeping the remainder active. */ releaseLabels(labels: string[]): Promise; /** The current selection, with prices resolved from the chart categories. */ getSelection(): SelectedSeat[]; selectObjects(objects: string[]): SelectedSeat[]; deselectObjects(objects: string[]): void; clearSelection(): void; selectCategories(categoryKeys: string[]): SelectedSeat[]; deselectCategories(categoryKeys: string[]): void; setSelectableObjects(objects: string[] | null): void; setMaxSelection(maxSelection: number): void; getSelectionValidity(): PickerSelectionValidity | null; /** Choose a ticket tier for a selected seat; `null` reverts to the default. */ setSeatTier(seatId: string, tierId: string | null): void; /** Floors of a multi-floor chart. Empty before the first render. */ getFloors(): { id: string; name: string; }[]; /** Switch the shown floor (2D). No-ops on single-floor charts. */ setFloor(floorId: string): void; /** Toggle colorblind-safe rendering at runtime. */ setColorblindSafe(on: boolean): void; /** Zoom in one step (same increment as the wheel/pinch gesture). */ zoomIn(): void; /** Zoom out one step. */ zoomOut(): void; /** Reset the camera so the whole chart fits the container. */ zoomToFit(): void; /** * Re-acquire the buyer access session after your app re-authorizes the buyer * (Sales Channels). Resolves false when the chart is not access-scoped. */ refreshAccess(): Promise; private build; private destroy; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** Standalone Angular adapter for the distinct fixed-inclusion Season buyer flow. */ declare class SeatLayerSeasonPickerComponent implements OnChanges { /** Season key to render. */ season: string; /** Public API base override. */ apiBase?: string; /** Publishable account key, accepted for snippet parity. Never sent. */ publicKey?: string; /** Who takes the money once the package is held. Default `'handoff'`. */ checkout?: SeasonPickerOptions['checkout']; /** Where a redirecting gateway returns the buyer, for hosted checkout. */ returnUrl?: string; /** Refreshable one-time browser bearer provider. */ buyerAccessTokenProvider?: SeasonPickerOptions['buyerAccessTokenProvider']; /** One-time Season browser bearer. */ buyerAccessToken?: SeasonPickerOptions['buyerAccessToken']; /** Operation restored after an uncertain create response. */ initialOperationId?: string; /** Maximum recovery polling time. */ recoveryTimeoutMs?: number; /** Test or host fetch implementation. */ fetch?: typeof fetch; /** A same-seat hold reached a safe handoff. */ readonly hold: EventEmitter; /** The active handoff changed or was released. */ readonly holdChange: EventEmitter; /** The buyer continued with an opaque handoff. */ readonly continued: EventEmitter; /** A returning holder recorded browser intent only. */ readonly renewalIntent: EventEmitter; /** Buyer access expired. */ readonly accessExpired: EventEmitter; /** Buyer access cannot be recovered. */ readonly accessUnavailable: EventEmitter; /** Hosted checkout only: the gateway webhook landed and the order is paid. */ readonly orderConfirmed: EventEmitter; /** Buyer-visible operation status changed. */ readonly statusChange: EventEmitter; /** The Season buyer flow failed. */ readonly errored: EventEmitter; private readonly container; private static readonly REBUILD_INPUTS; private readonly zone; private picker; constructor(); ngOnChanges(changes: SimpleChanges): void; /** Holds the same labels across every included occurrence. */ holdSameSeat(labels: readonly string[], operationId: string): Promise; /** Restores a caller-stable Season operation after uncertainty. */ restoreOperation(operationId: string): Promise; /** Releases the active selection with a caller-stable action id. */ release(releaseActionId: string): Promise; /** Records renewal intent; trusted server code still inspects and commits it. */ createRenewalIntent(offerId: string): Promise; /** Current immutable Season descriptor. */ getDescriptor(): SeasonDescriptor | null; /** Current same-seat aggregate availability. */ getAvailability(): SeasonAvailability | null; /** Current opaque checkout handoff. */ getHandoff(): SeasonCheckoutHandoff | null; private build; private current; private destroy; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export { SeatLayerSeasonPickerComponent, SeatLayerSeatingChartComponent };