import { ClaimableSettlement, PreAuthSettlement } from '@fanfare-io/fanfare-sdk-core/experiences'; import { QueueDisplayState } from '@fanfare-io/fanfare-sdk-core/internals'; import { GrantedSelection, SelectionChoice, SelectionDraft, SelectionOptions } from '@fanfare-io/fanfare-sdk-core/selections'; import { ReadableAtom } from 'nanostores'; import { SelectionCheckoutDetails } from '../../lib/selection-display'; import { OutcomeAction } from '../compositions/outcome-panel'; import { OutcomeReason } from '../module'; export interface QueueModuleProps { display$?: ReadableAtom; sequencePhase: "enterable" | "participating" | "granted" | "ended"; /** Hide live rank-derived queue metrics while the canonical queue is still pre-open. */ hideQueueMetrics?: boolean; loyaltyBiasEnabled?: boolean; canEnter: boolean; canLeave: boolean; onEnter: () => Promise; onLeave: () => Promise; isEntering: boolean; isLeaving: boolean; /** When the queue stops accepting entries — drives the "Queue closes in" countdown. */ closeAt?: Date; grant?: string; expiresAt?: number | Date; checkoutUrl?: string; /** * Activating the checkout CTA. Receives the pick the grant settled on, with the catalogue * objects behind it, whenever the panel has loaded the catalogue that carries them. */ onCheckoutClick?: (details?: SelectionCheckoutDetails) => void | Promise; /** Set when `onCheckoutClick` consumes the details, so the CTA waits for a catalogue still loading. */ awaitCheckoutDetails?: boolean; /** Granted-state selection arm; drives the panel's pick, reveal and summary states. */ grantedSelection?: GrantedSelection; /** How the win settles; selects the granted confirm label and payment affordance. */ settlement?: ClaimableSettlement | PreAuthSettlement; /** Bound by the widget against the journey; must be referentially stable. */ loadSelectionOptions?: () => Promise; /** Submits the granted pick or re-pick. */ onSelect?: (choice: SelectionChoice) => Promise; /** Every local pick-surface transition, product-only drafts included; feeds the page-bridge event. */ onDraftChange?: (draft: SelectionDraft) => void; /** Locked copy for a resolved granted summary; "checkout" once checkout has started. */ selectionLockedReason?: "checkout" | "final"; /** Already-translated selection failure from the widget, rendered beside the acting control. */ selectError?: string | null; outcomeReason?: OutcomeReason; /** Host-provided action shown on the terminal panel. */ outcomeAction?: OutcomeAction; onReenter?: () => Promise; isReentering?: boolean; class?: string; className?: string; } export declare function QueueModule(props: QueueModuleProps): import("solid-js").JSX.Element; export declare namespace QueueModule { var displayName: string; }