import { a as TCartApi } from './cart-contents-CMm57qu0.esm.js';
import { W as WidgetName, a as TId } from './types-zbTZ8-KP.esm.js';

type NetworkEventDetail = {
    url: string;
    method: string;
    type: "fetch";
    response: Response;
} | {
    url: string;
    method: string;
    type: "xhr";
    xhr: XMLHttpRequest;
};
/**
 * beamnetworkcall
 * Emitted by the Beam network listener whenever any API calls are made on the page
 */
declare class BeamNetworkCallEvent extends CustomEvent<NetworkEventDetail> {
    static eventName: "beamnetworkcall";
    constructor(detail: NetworkEventDetail);
}
type NonprofitSelectDetail = {
    selectionId?: string;
    selectedNonprofitId?: number | null;
    nonprofitName?: string | null;
    source?: WidgetName | null;
};
/**
 * beamnonprofitselect
 * Emitted when the end user selects a nonprofit in the Beam widget, and when the previous selection was restored
 * automatically
 */
declare class BeamNonprofitSelectEvent extends CustomEvent<NonprofitSelectDetail> {
    static eventName: "beamnonprofitselect";
    constructor(detail: NonprofitSelectDetail);
}
type CartChangeDetail = TCartApi & {
    cartId?: string;
    subtotal?: number;
    itemCount?: number;
    currencyCode?: string;
};
/**
 * beamcartchange
 * Emitted when Beam detects that cart contents have changed, and when items are added to the cart for the first time
 */
declare class BeamCartChangeEvent extends CustomEvent<CartChangeDetail> {
    static eventName: "beamcartchange";
    constructor(detail: CartChangeDetail);
}
type CartCreatedDetail = CartChangeDetail;
/**
 * beamcartcreated
 * Emitted when a cart is created in Beam for the first time, but NOT when the cart is updated
 * Beam's cart expiration rules are used to determine when a returning visit counts as the same cart
 */
declare class BeamCartCreatedEvent extends CustomEvent<CartCreatedDetail> {
    static eventName: "beamcartcreated";
    constructor(detail: CartCreatedDetail);
}
type OrderCreatedDetail = {
    orderId: TId;
    transactionId: TId;
    cartTotal: number;
    currencyCode: string;
};
/**
 * beamordercreated
 * Emitted when an order is registered with Beam for the first time, but NOT on repeat visits, page refreshes, etc.
 */
declare class BeamOrderCreatedEvent extends CustomEvent<OrderCreatedDetail> {
    static eventName: "beamordercreated";
    constructor(detail: OrderCreatedDetail);
}
/**
 * beamstatuschange
 * Emitted when the Beam config object has finished initializing along with all plugins
 */
type BeamStatusChangeEventDetail = {
    status: "pending";
} | {
    status: "error";
    error: Error;
} | {
    status: "ready";
};
declare class BeamStatusChangeEvent extends CustomEvent<BeamStatusChangeEventDetail> {
    static eventName: "beamstatuschange";
    constructor(detail: BeamStatusChangeEventDetail);
}
type NonprofitSelectionRemovedDetail = {
    previousNonprofitId?: number | null;
    newNonprofitId?: number | null;
    selectionId?: string;
};
/**
 * beamnonprofitselectionremoved
 * Emitted when the nonprofit selection is removed from deselection or due to nonprofit cohort change
 */
declare class BeamNonprofitSelectionRemovedEvent extends CustomEvent<NonprofitSelectionRemovedDetail> {
    static eventName: "beamnonprofitselectionremoved";
    constructor(detail: NonprofitSelectionRemovedDetail);
}

type events_BeamCartChangeEvent = BeamCartChangeEvent;
declare const events_BeamCartChangeEvent: typeof BeamCartChangeEvent;
type events_BeamCartCreatedEvent = BeamCartCreatedEvent;
declare const events_BeamCartCreatedEvent: typeof BeamCartCreatedEvent;
type events_BeamNetworkCallEvent = BeamNetworkCallEvent;
declare const events_BeamNetworkCallEvent: typeof BeamNetworkCallEvent;
type events_BeamNonprofitSelectEvent = BeamNonprofitSelectEvent;
declare const events_BeamNonprofitSelectEvent: typeof BeamNonprofitSelectEvent;
type events_BeamNonprofitSelectionRemovedEvent = BeamNonprofitSelectionRemovedEvent;
declare const events_BeamNonprofitSelectionRemovedEvent: typeof BeamNonprofitSelectionRemovedEvent;
type events_BeamOrderCreatedEvent = BeamOrderCreatedEvent;
declare const events_BeamOrderCreatedEvent: typeof BeamOrderCreatedEvent;
type events_BeamStatusChangeEvent = BeamStatusChangeEvent;
declare const events_BeamStatusChangeEvent: typeof BeamStatusChangeEvent;
declare namespace events {
  export { events_BeamCartChangeEvent as BeamCartChangeEvent, events_BeamCartCreatedEvent as BeamCartCreatedEvent, events_BeamNetworkCallEvent as BeamNetworkCallEvent, events_BeamNonprofitSelectEvent as BeamNonprofitSelectEvent, events_BeamNonprofitSelectionRemovedEvent as BeamNonprofitSelectionRemovedEvent, events_BeamOrderCreatedEvent as BeamOrderCreatedEvent, events_BeamStatusChangeEvent as BeamStatusChangeEvent };
}

export { BeamNonprofitSelectEvent as B, BeamNetworkCallEvent as a, BeamCartChangeEvent as b, BeamCartCreatedEvent as c, BeamOrderCreatedEvent as d, events as e, BeamStatusChangeEvent as f, BeamNonprofitSelectionRemovedEvent as g };
