import { ApolloLink } from "@apollo/client/core";
import { DefaultInitArgs, BusLinkRequestTypes, BusLinkResponseTypes } from "../types";
export declare type RegisterBusFunction = (onRequest: (request: BusLinkRequestTypes, onResponse: (response: BusLinkResponseTypes) => void) => Promise) => void;
export declare type MessageBusBackend = {
initialise: (args: A) => Promise;
listen: () => void;
};
declare type BusLinkOptions = {
registerBus: RegisterBusFunction;
createExecutor: (args: A) => Promise | ApolloLink;
} | {
registerBus: RegisterBusFunction;
executor: ApolloLink;
};
export declare const createBusLinkBackend: (options: BusLinkOptions) => MessageBusBackend;
export {};