import { Container } from '../components/container';
import { EventEmitter } from '../helper/event-emitter';
import { type IAfterpayOnSiteMessagingConfig, type IAfterpayOnSiteMessagingService } from './afterpay-on-site-messaging.interfaces';
/**
 * Afterpay On Site Messaging constructor
 *
 * @param {string} selector - Selector of html element. Container for Afterpay On Site Messaging.
 * @param {IAfterpayOnSiteMessagingConfig} config - Required configuration for the Afterpay On Site Messaging.
 *
 * @example
 * var afterpayOnSiteMessaging = new AfterpayOnSiteMessaging('#afterpayButton', config);
 */
export declare class AfterpayOnSiteMessaging {
    protected container: Container;
    protected eventEmitter: EventEmitter;
    protected service: IAfterpayOnSiteMessagingService;
    /** @constructs */ constructor(selector: string, config?: IAfterpayOnSiteMessagingConfig);
    /**
     * The final method after configuring the AfterpayOnSiteMessaging to
     * start the load process.
     */
    load(): void;
    /**
     * Callback for onError method.
     *
     * @callback OnErrorCallback
     * @param {unknown|null} data
     */
    /**
     * If the process fails, the function passed as parameter will be called.
     * Important: Do not perform thread blocking operations in callback such as window.alert() calls.
     *
     * @example
     * AfterpayOnSiteMessaging.onError((eventData) => console.log('Some error occur'));
     *
     * @param {OnErrorCallback} [callback] - Function to be called when there is an error in the flow.
     */
    onError(callback?: (data?: unknown) => void): () => void;
}
//# sourceMappingURL=afterpay-on-site-messaging.d.ts.map