import { JsonRpcRequestPayload, MagicIncomingWindowMessage, MagicMessageEvent, MagicMessageRequest, MagicOutgoingWindowMessage } from '../type-defs'; import { JsonRpcResponse } from './json-rpc-response'; interface RemoveEventListenerFunction { (): void; } export declare abstract class ViewController { protected readonly endpoint: string; protected readonly parameters: string; checkIsReadyForRequest: Promise; isReadyForRequest: boolean; protected readonly messageHandlers: Set<(event: MagicMessageEvent) => any>; protected isConnectedToInternet: boolean; /** * Create an instance of `ViewController` * * @param endpoint - The URL for the relevant iframe context. * @param parameters - The unique, encoded query parameters for the * relevant iframe context. */ constructor(endpoint: string, parameters: string); protected abstract init(): void; protected abstract _post(data: MagicMessageRequest): Promise; protected abstract hideOverlay(): void; protected abstract showOverlay(): void; /** * Send a payload to the Magic `