/**
 * @module events
 */
import { Logger } from '../utils/logger';
import { NavigationEventOptions } from './navigation';
import { AddToCartEventOptions } from './add-to-cart';
import EnhancedContentApi from '../enhancedContent';
/** @internal */
export interface EventsApiOptions {
    beforeNavigation?: (options?: NavigationEventOptions) => void;
    onNavigation?: (options?: NavigationEventOptions) => void;
}
/**
 * This class is responsible for handling events.
 *
 * It is responsible for exposing the public methods for triggering each different type of event.
 */
export default class EventsApi {
    #private;
    /** @internal */
    constructor(logger: Logger, options?: EventsApiOptions, ecApi?: EnhancedContentApi);
    /**
     * Triggers the `navigation` event.
     *
     * @example
     * ```typescript
     * salsify.events.navigation({
     *   productIdType: "SKU",
     *   productId: "123",
     * });
     * ```
     *
     * @param options The options to pass to the event handler.
     */
    navigation(options: NavigationEventOptions): void;
    /**
     * Triggers the `addToCart` event.
     *
     * @example
     * ```javascript
     * const salsify = window.salsifyExperiencesSdk;
     * const options = { quantity: 1, productIdType, productId };
     * salsify.events.addToCart(options);
     * ```
     * @param options The options to pass to the event handler.
     */
    addToCart(options: AddToCartEventOptions): void;
}
