import { OutcomeReason } from '../module'; /** * The distribution mechanism a module owns. Drives mechanism-specific copy * (e.g. the expired re-enter button label) so each module shows terminology * appropriate to its mechanism rather than queue-specific copy. */ /** * A host-provided action for a terminal panel, such as "See what's still * available" after a loss. The widget renders it as a secondary button; the * host decides where it leads. */ export interface OutcomeAction { label: string; onClick: () => void; } export type ParticipationType = "queue" | "draw" | "auction" | "timed_release" | "appointment"; export interface OutcomePanelProps { outcomeReason: OutcomeReason; /** * The mechanism this panel belongs to. Selects the mechanism-specific * re-enter label; when omitted, the mechanism-free fallback is used. */ participationType?: ParticipationType; onReenter?: () => Promise; isReentering?: boolean; /** Secondary action offered once the outcome is final. */ action?: OutcomeAction; class?: string; className?: string; } /** * Re-entry is offered only where the participation ended without the distribution rejecting the * consumer: a lapsed admission (`expired`) or a voluntary exit (`left`). A denial — bot detection, * a validation limit, a draw the consumer simply lost — can leave the distribution open too, so the * eligible reasons are named here rather than inferred from the distribution still accepting entries. */ export declare function outcomeOffersReentry(outcomeReason: OutcomeReason): boolean; export declare function OutcomePanel(props: OutcomePanelProps): import("solid-js").JSX.Element; export declare namespace OutcomePanel { var displayName: string; }