import { ApolloLink, Observable, Operation, FetchResult } from "@apollo/client/core"; import { BusLinkRequestTypes, DefaultInitArgs, BusLinkResponseTypes } from "../types"; declare type LinkArgs = { requestHandler: (message: BusLinkRequestTypes) => void; registerResponseHandler: (responseHandler: (response: BusLinkResponseTypes) => void) => void; }; export default class MessengeBusLink extends ApolloLink { private counter; private observers; private postMessage; private readyListener?; onResponse: (message: BusLinkResponseTypes) => void; constructor({ registerResponseHandler, requestHandler }: LinkArgs); request(operation: Operation): Observable; /** * Initialise the backend with the provided args. * Will resolve once the backend has been created, * and has responded with ready. * * This doesn't need to be called if you preinitialise * the backend (in electron main for example) */ initialiseBackend(args: A): Promise; } export {};