import { _CartFragment } from './generated'; declare type EventMap = Record; declare type EventKey = string & keyof T; declare type EventReceiver = (params: T) => void; interface Emitter { on>(eventName: K, fn: EventReceiver): void; off>(eventName: K, fn: EventReceiver): void; emit>(eventName: K, params: T[K]): boolean; once>(eventName: K, fn: EventReceiver): void; removeAllListeners>(eventName?: K): void; listenerCount>(eventName: K): number; } declare type STOREFRONT_EVENT_MAP = { fetchCartError: Error; fetchCartSuccess: _CartFragment | null | undefined; createCartError: Error; createCartSuccess: _CartFragment | null | undefined; addLineItemError: Error; addLineItemSuccess: _CartFragment | null | undefined; updateLineItemError: Error; updateLineItemSuccess: _CartFragment | null | undefined; removeLineItemError: Error; removeLineItemSuccess: _CartFragment | null | undefined; }; declare type ALL_ERRORS_MAP = { allErrors: { type: keyof Pick; error: Error; }; }; declare type ALL_SUCCESSES_MAP = { allSuccesses: { type: keyof Pick; data: _CartFragment | null | undefined; }; }; declare type MAP = STOREFRONT_EVENT_MAP & ALL_ERRORS_MAP & ALL_SUCCESSES_MAP; export declare const storefrontEvents: Emitter; export declare type EventHandler = (args: MAP[K]) => void; export {};