import { FuQuSubscriberOptions, MessageHandler, Subscriber } from "./components/subscriber"; import { FuQuPublisher } from "./components/publisher"; import { MessageLike, SubscriptionOptionsLike, MessageOptionsLike } from "../contracts/pubsub"; import { OverrideJsonType } from "./components/helpers"; export type FuQuInstance< MessageOptions extends MessageOptionsLike, SubscriptionOptions extends SubscriptionOptionsLike, > = { createPublisher: (topicName: string) => FuQuPublisher> createSubscriber: ( subscriptionName: string, handler: MessageHandler, additionalSubscriptionOptions?: SubscriptionOptions & FuQuSubscriberOptions ) => Subscriber }