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 {};