import { BaseTransportAdapter } from './transport-adapter';
export interface PostMessageTransportConfig {
    /** Target window to communicate with */
    targetWindow?: Window;
    /** Target origin for postMessage (use '*' for any origin, but be careful!) */
    targetOrigin?: string;
    /** Channel identifier to distinguish messages */
    channel?: string;
    /** Connection timeout in milliseconds */
    timeout?: number;
    /** Debug mode */
    debug?: boolean;
}
/**
 * PostMessage transport adapter using native browser postMessage API
 * Provides cross-origin communication capabilities with better UX than iframe
 */
export declare class PostMessageTransport extends BaseTransportAdapter {
    private config;
    private targetWindow;
    private boundMessageListener;
    private connectPromise;
    private connectionTimeout;
    constructor(config?: PostMessageTransportConfig);
    connect(target?: Window | HTMLIFrameElement): Promise<void>;
    private _connect;
    disconnect(): Promise<void>;
    send(type: string, data: any): void;
    destroy(): void;
    getType(): string;
    private sendRawMessage;
    private handleMessage;
    private cleanup;
}
//# sourceMappingURL=postmessage-transport.d.ts.map