/**
 * This approach decouples the communication logic from PaymentMethodForm component,
 * making it cleaner, more maintainable, and easier to test
 */
export declare class FrameCommunicationService {
    private iframe;
    private iframeOrigin;
    constructor(iframe: HTMLIFrameElement, iframeOrigin: string);
    postMessage(eventType: string, payload?: any): void;
    addMessageListener(callback: (event: MessageEvent) => void): void;
    removeMessageListener(callback: (event: MessageEvent) => void): void;
    postMessageWithResponseListener(eventType: string, payload?: any): Promise<any>;
}
