import { Observable } from 'rxjs';
import { PostMessageModel } from "../_models/post-message.model";
import { ThemeService } from "./theme.service";
import { SettingsService } from "./settings.service";
import { EmbedModeService } from "./embed-mode.service";
import * as i0 from "@angular/core";
export declare class PostMessageService {
    private embedModeService;
    private settingsService;
    private themeService;
    constructor(embedModeService: EmbedModeService, settingsService: SettingsService, themeService: ThemeService);
    private onEmbedMode;
    private startListening;
    /**
     * When you've embedded a SPaaS app using an iframe, you can use this method to listen to
     * the messages it will post. Some messages are automatically processed, check the doc.
     */
    listenToPostMessages(): Observable<PostMessageModel>;
    /**
     * When you've embedded a SPaaS app in an iframe and want to reply to some messages it will post,
     * you can use this method to do so.
     *
     * @param source the MessageEventSource of the iframe. You can retrieve its source by using
     * '@ViewChild('your_iframe_div') iframeDiv: ElementRef;' and then get 'this.iframeDiv.nativeElement.contentWindow'
     * @param msg the actual message to send to the child app in the iframe
     */
    postMessage(source: MessageEventSource | Window | null, msg: PostMessageModel): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PostMessageService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PostMessageService>;
}
