import FrontApplet from '../FrontApplet';
import ITouchEventMessage from '../Touch/ITouchEventMessage';
/**
 * If some transformer returns undefined, transforming message will not be forwarded to certain target
 * window and next transformers will not be called.
 */
export type Transformer<T> = (data: T, target: Window) => T | undefined;
export default class Iframe {
    private window;
    private messagePrefix;
    private base;
    private transformers;
    private frontAppletWindows;
    /** @internal */
    constructor(window: Window, messagePrefix: string, base: Pick<FrontApplet, 'config' | 'authHash' | 'display' | 'apiJsUri'>, transformers: Transformer<ITouchEventMessage>[]);
    /** @internal */
    registerFrontAppletLoaderWindow(frontAppletWindow: Window): void;
    /** @internal */
    registerBundledFrontAppletWindow(frontAppletWindow: Window): void;
    /** @internal */
    forwardToFrontAppletWindows(originalData: any): void;
    /** @internal */
    forwardFromFrontAppletWindows(frontAppletWindow: Window, data: any): void;
    private getMessage;
}
