/// declare type MessageHandler = (response: any) => void; interface PendingMessage { original: pxt.editor.EditorMessageRequest; resolve: MessageHandler; reject: MessageHandler; } /** * Abstract class for driving communication with an embedded iframe */ export declare abstract class IframeDriver { iframe: HTMLIFrameElement; protected readyForMessages: boolean; protected messageQueue: pxt.editor.EditorMessageRequest[]; protected nextId: number; protected pendingMessages: { [index: string]: PendingMessage; }; protected editorEventListeners: { [index: string]: MessageHandler[]; }; protected port: MessagePort; protected portRequestPending: boolean; protected frameId: string; constructor(iframe: HTMLIFrameElement); protected abstract handleMessage(message: MessageEvent): void; dispose(): void; addEventListener(event: string, handler: (ev: any) => void): void; removeEventListener(event: string, handler: (ev: any) => void): void; protected onMessageReceived: (event: MessageEvent) => void; protected resolvePendingMessage(event: MessageEvent): void; protected fireEvent(event: string, data: any): void; protected sendRequest(message: any): Promise; protected sendMessageCore(message?: any): void; protected createMessagePort(): void; } export {};