import { Callback, EventHandler } from './EventManager'; import { IAddActionMessageData, IAddButtonInitialMessageData, IAddButtonPermissionsServerModel, IClickedMessageMetadata, IContentComponentClickedMessageData, IContentItemClickedMessageData, IElementClickedMessageData, IFrameMessageType, IRefreshMessageData, IRefreshMessageMetadata, ISDKInitializedMessageData, ISDKStatusMessageData } from './IFrameCommunicatorTypes'; export declare type IFrameMessageMap = { readonly [IFrameMessageType.Initialized]: EventHandler; readonly [IFrameMessageType.Status]: EventHandler; readonly [IFrameMessageType.ElementClicked]: EventHandler; readonly [IFrameMessageType.ContentItemClicked]: EventHandler; readonly [IFrameMessageType.ContentComponentClicked]: EventHandler; readonly [IFrameMessageType.AddInitial]: EventHandler>; readonly [IFrameMessageType.AddAction]: EventHandler; readonly [IFrameMessageType.RefreshPreview]: EventHandler; }; export interface IFrameMessage { readonly type: TMessageType; readonly data: Parameters[0]; readonly metadata?: Parameters[1]; readonly requestId?: string; } export declare class IFrameCommunicator { private readonly events; private readonly callbacks; initialize(): void; destroy(): void; addMessageListener: (type: M, listener: IFrameMessageMap[M]) => void; removeMessageListener: (type: M, listener: IFrameMessageMap[M]) => void; sendMessageWithResponse: (type: M, data: Parameters[0], callback: Parameters[2], metadata?: Parameters[1] | undefined) => void; sendMessage: (type: M, data: Parameters[0], metadata?: Parameters[1] | undefined, requestId?: string | undefined) => void; private onMessage; private registerCallback; private executeCallback; }